其他分享
首页 > 其他分享> > ffmpeg 文档阅读笔记

ffmpeg 文档阅读笔记

作者:互联网

1.ffmpeg简介

1.1.命令格式

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

-i:指定输入。输入可以是视频文件、网络流、音视频设备等。可以使用-i指定任意数量的输入。
输出:命令行上任意不能被解释成选项的东西,都被认为是输出。可以有任意数量的输出。
-map:一条ffmpeg命令中,可能有多个输入和输出。-map指定哪个输入对应哪个输出。如果没有使用-map进行指定,那么会使用默认的方法进行指定

-i后面跟索引,索引值从0开始。2:3代表第三个输入文件的第四个流。【不懂??】

ffmpeg的每个选项按顺序对输入进行操作,即选项对输入进行操作的结果,送给下一个选项进行操作,故ffmpeg的选项的顺序很重要。全局选项(例如 verbosity level)是个例外,全局选项的位置不重要,但是一般放在最前面。

选项都只应用于最先遇到的文件。

1.2.ffmpeg的处理流程

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

使用libavformat库读取输入文件,获取到encoded data packets。When there are multiple input files, ffmpeg tries to keep them synchronized by tracking lowest timestamp on any active input stream.【这句英文看不懂】
decoder产生未压缩的帧((raw video/PCM audio/...),然后可以进行filtering

2.Filtering

使用libavfilter库中的filter对decoder产生未压缩的帧进行处理,多个filter形成一个filter graph。filter分为simple和complex

2.1.Simple filtergraphs

Simple filtergraphs结构如下:

 _________                        ______________
|         |                      |              |
| decoded |                      | encoded data |
| frames  |\                   _ | packets      |
|_________| \                  /||______________|
             \   __________   /
  simple     _\||          | /  encoder
  filtergraph   | filtered |/
                | frames   |
                |__________|

通过-vf和-af分别指定视频和音频的filter

2.2. Complex filtergraphs

Complex filtergraphs结构如下

 _________
|         |
| input 0 |\                    __________
|_________| \                  |          |
             \   _________    /| output 0 |
              \ |         |  / |__________|
 _________     \| complex | /
|         |     |         |/
| input 1 |---->| filter  |\
|_________|     |         | \   __________
               /| graph   |  \ |          |
              / |         |   \| output 1 |
 _________   /  |_________|    |__________|
|         | /
| input 2 |/
|_________|

通过-lavfi指定Complex filtergraphs,-lavfi是一个全局选项

标签:选项,__________,ffmpeg,_________,filter,文档,笔记,input
来源: https://www.cnblogs.com/codingbigdog/p/16344239.html