3详细说明-FFmpeg文档教程-多媒体-IT技术博客

ffmpeg中每个输出的转码过程可以通过下图描述:

 _______              ______________
|       |            |              |
| input |  demuxer   | encoded data |   decoder
| file  | ---------> | packets      | -----+
|_______|            |______________|      |
                                           v
                                       _________
                                      |         |
                                      | decoded |
                                      | frames  |
                                      |_________|
 ________             ______________       |
|        |           |              |      |
| output | <-------- | encoded data | <----+
| file   |   muxer   | packets      |   encoder
|________|           |______________|

ffmpeg调用libavformat库(包含解复用器)以读取输入文件并从中获取包含编码数据的数据包。 当有多个输入文件时,ffmpeg尝试通过跟踪任何活动输入流上的最低时间戳来使它们保持同步。


然后,已编码的数据包将传递到解码器(除非为流选择了流复制,否则请参见说明)。 解码器产生未压缩的帧(原始视频/ PCM音频/ ...),可以通过过滤进一步处理(请参阅下一节)。 过滤后,将帧传递到编码器,编码器对其进行编码并输出编码后的数据包。 最终,这些被传递到复用器,该复用器将编码的数据包写入输出文件。


标签: FFmpegffmpeg教程ffmpeg命令ffmpeg参数ffmpeg文档ffmpeg手册