千里不留行 发布的文章



10 编码选项

libavcodec提供一些通用的全局选项设置,可在所有的编码器和解码器起效。另外每个编解码器可以支持所谓的私有化设置,以满足特定的编解码要求。

有时,一个全局选项会影响到特定的编解码器,而对其它编解码产生不良影响或者会不被识别,所以你需要了解这些影响编解码选项的具体意义,了解那些只对特定编码或者解码有效的选项。

这些选项大多可以-option value的格式在ffmpeg工具中指定,其中-option是选项名,value是要设置的选项参数值,个别是利用AVCodecContext选项进行额外配置,还有极个别的使用定义在libavutil/opt.h中的API在程序过程中配置使用。

- 阅读剩余部分 -

8 表达式计算/求值

在计算表达式时,ffmpeg通过libavutil/eval.h接口调用内部计算器进行计算。

表达式可以包含一元运算符、运算符、常数和函数

两个表达式expr1和expr2可以组合起来成为"expr1;expr2" ,两个表达式都会被计算,但是新表达式(组合起来的)值实为表达式expr2的值。

- 阅读剩余部分 -

7 语法

这个章节介绍采用ffmpeg库和工具时的一些语法和格式要求。

引用与转义(Quoting and escaping)

ffmpeg采用如下的引用和转义机制,除非明确规定,以下规则都适用:

"'"和"\"分别用于(引用和转义)特殊字符。除了它们可能还有其它特殊字符,但这只在特定的语法中有效。

一个特殊字符必须有转义前缀"\"

- 阅读剩余部分 -

6 例子

视频和音频抓取

如果你指定了输入格式和设备,ffmpeg可以直接抓取视频和音频:

ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
或者采用ALSA音频源(单声道,卡的id是1)替代OSS:

- 阅读剩余部分 -