我们拿到一个视频文件,例如MP4
第一步是输入文件demuxer解复用,可以得到两个分离的数据包,就是经过编码的数据包,分别是视频和音频
如video stream AVC audio stream AAC LC 分别是视频 音频
第二步是decoder解码器,我们要根据解复用得到的视频、音频编码数据包,找到对应的解码器,解码之后得到的就是数据帧。
第三步是帧处理,在这里我们可以进行很多处理,如视频分辨率转换、改时间、改帧率,可以丢掉部分数据包
第四步是重新编码,这里可以采用你想要的编码器,如libx264,就可以得到视频AVC格式的编码数据包
第五步是重新封装格式,得到输出文件,如flv格式
这是一个基础的流程 但是很重要 比如这个
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv
acodec是指音频文件不进行处理,直接copy
vcodec是指视频帧采用libx264进行编码
-s 1280*720 改变视频分辨率
flv是指封装格式的改变