简介

根据雷神介绍,使用FFmpeg进行音视频处理的步骤分为如下: 解协议,解封装,解码,像素转换,编码,封装,发送。这些步骤又可以分为几个不同的层次,如协议层,封装层,编码层,像素层。

图解

存在某协议的数据,在协议层读取数据(可以从设备中读取Device或者从内存中读取Mem Handler),然后在解封装层进行音视频分离(此时也可进行转换封装格式),得到几个不同的音视频位流。现在可以在解编码层进行解码播放音视频,得到原始数据。此时到了像素层,这里可以进行像素格式转换和添加滤镜等效果,这里还是原始数据,到编码层时,可以进行音视频编码,得到音视频位流,再进行音视频封装或者转换得到封装好的数据,最后进行流推送即可。

  • 协议层(Protocol Layer):该层处理的数据为符合特定流媒体协议规范的数据,例如http,rtmp,file等。

  • 封装层(Format Layer):该层处理的数据为符合特定封装格式规范的数据,例如mkv,mp4,flv,mpegts,avi等。

  • 编码层(Codec Layer):该层处理的数据为符合特定编码标准规范的数据,例如h264,h265,mpeg2,mpeg4等。

  • 像素层(Pixel Layer):该层处理的数据为符合特定像素格式规范的数据,例如yuv420p,yuv422p,yuv444p,rgb24等。

    原文链接:https://blog.csdn.net/leixiaohua1020/article/details/42658139

协议层处理包含以下项目:

  • simplest ffmpeg device:使用FFmpeg读取设备中的媒体数据。

  • simplest ffmpeg mem handler:使用FFmpeg读取内存中的数据。

  • simplest ffmpeg streamer:使用FFmpeg发送流媒体数据。

    封装层处理包含以下项目:

  • simplest ffmpeg format:使用FFmpeg分离音视频(demux),封装音视频(mux),转换封装格式(remux)。

    编码层处理包含以下项目:

  • simplest ffmpeg player:使用FFmpeg解码播放视频数据。

  • simplest ffmpeg audio player:使用FFmpeg解码播放音频数据。

  • simplest ffmpeg video encoder:使用FFmpeg编码视频数据。

  • simplest ffmpeg audio encoder:使用FFmpeg编码音频数据。

  • simplest ffmpeg picture encoder:使用FFmpeg编码图片。

    像素层处理包含以下项目:

  • simplest ffmpeg swscale:使用FFmpeg转换像素格式。

  • simplest ffmpeg video filter:使用FFmpeg给视频添加滤镜效果。

原文链接:https://blog.csdn.net/leixiaohua1020/article/details/42658139

解协议的作用,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。

解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

原文链接:https://blog.csdn.net/leixiaohua1020/article/details/18893769