• 【音视频开发之起始】


    因为博主一直从事的是专业音响、乐器等音频领域行业,后面博主准备转行专心做音视频开发,后面会记录一系列学习过程。

    音视频整体开发流程按照功能划分分为:采集、预处理、编码、封装、传输、解封装、解码、渲染等很多环节

    网上学习资料很多,但是都不太完整系统化,后面的学习方式会按照这个流程走,一边学习每个模块的功能然后一边做项目将所有模块功能串联起来。

    将这些功能做一个简单的介绍:

    1、采集:数据的收集

    音频采集:直接获取已有音频、利用音频处理软件捕获截取声音、用麦克风录制声音。(模拟信号转换为数字信号)

    视频采集:直接获取已有视频、利用视频处理软件捕获截取视频、用摄像头拍摄视频。(光信号转电信号、电信号转模拟信号)

    2、预处理:

    音频:增益、回声消除、降噪等

    视频:滤镜、美颜、加字幕、绿幕抠图等

    3、编码

    音频:将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。

    名称

    推出机构

    推出时间

    目前使用领域

    AAC

    MPEG

    1997

    各个领域(新)

    AC-3

    Dolby Inc.

    1992

    电影

    MP3

    MPEG

    1993

    各个领域(旧)

    WMA

    Microsoft Inc.

    1999

    微软平台

    视频:视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。

    名称

    推出机构

    推出时间

    目前使用领域

    HEVC(H.265)

    MPEG/ITU-T

    2013

    研发中

    H.264

    MPEG/ITU-T

    2003

    各个领域

    MPEG4

    MPEG

    2001

    不温不火

    MPEG2

    MPEG

    1994

    数字电视

    VP9

    Google

    2013

    研发中

    VP8

    Google

    2008

    不普及

    VC-1

    Microsoft Inc.

    2006

    微软平台

    4、封装

    将视频码流和音频码流按照一定的格式存储在一个文件中。

    AVI、MP4、TS、FLV等

    5、传输

    流媒体传输协议

    • RTP & RTCP (实时传输协议 & 实时传输控制协议)
    • RTSP (实时流协议)
    • RSVP (资源预定协议)
    • RTMP (实时消息传输协议)
    • MMS (微软媒体服务器协议)
    • HLS (HTTP Live Streaming)

    6、解封装

    解封装是上面介绍的封装的逆操作,从音视频的容器中将音频包、视频包分离出来放到各自的队列,等待各自的解码线程去解码渲染视频,播放音频。

    7、解码

    编码的逆操作,将视频包解码成原始的视频帧,将音频包解码成原始的pcm音频数据。

    8、渲染

    视频的渲染 windows 平台下可以使用 Direct3D 技术渲染视频,macOS,Android 和 Linux 可以使用 OpenGL 、OpenGLES 技术渲染视频。

    PS:大致就是这样了,我后面会一个模块一个模块的去啃,任务艰巨,有很多编译器是自带了api解决其中某些功能的,音视频一般是需要跨平台,Windows、MAC、Linux、android、IOS等,如果要学好最后还是要去做跨平台SDK,刚开始学可以只在某个系统上把流程走通,多做几个项目就打通了

  • 相关阅读:
    数仓常用排序详解
    sip可视化触屏话机
    freemarker 生成word,支持循环导出图片 WPS版本
    LeetCode 之 移除元素
    走进Hive
    MySQL的事务使用
    Lazarus网络编程
    Go语言学习笔记-A Tour of Go 练习笔记-Errors
    LED高精度体重秤方案规格书
    在vue3+vite3中使用socket.io-client踩坑记录
  • 原文地址:https://blog.csdn.net/bigtree_mfc/article/details/126209755