嵌牛IT观察

FFmpeg参数

2020-06-29  本文已影响0人  羽翼深蓝_2387

姓名:王一帆

学号:20011110225

转载自https://blog.csdn.net/qjh5606/article/details/85233971

【嵌牛导读】介绍ffmpeg的基础语法语流程

【嵌牛正文】

ffmpeg [gl-opt] {[input-file-opt] -i input-url} ... {[output-file-opt] output-url} ...

其中, -i 表示输入参数.

主要参数

1.以 <> 包裹的表示由用户具体指定;以 [] 包裹的表示是可选参数,可以指定也可以省略。

2.括号内的 i 表示该参数用于输入流,o 表示用于输出流,i/o 表示均可,global 表示全局参数。

3.关键字 duration, position 或 offset 满足:[-][HH:]MM:SS[.m...] 这种时间戳格式。或者以秒为单位的 SS[.m...] 格式。

常用的如下:

-b[:stream_specifier] (o):输出比特率。

-f <fmt> (i/o):指定 fmt 作为输入或输出的视频格式。一般会根据文件扩展名自动选择,但有时需要手动指定。

-i <filename> (i):指定 filename 作为源文件。

-y (global):文件存在时直接覆盖。

-n (global):文件存在时不覆盖并立即退出。

-bsf[:stream_specifier] <bitstream_filters> (o):设置比特流滤镜。bitstream_filters 是一个逗号分隔的滤镜列表。

-stream_loop <num> (i):指定输入流的循环次数。0 表示不循环,-1 表示无限循环。

-c[:stream_specifier] <codec> (i/o):-c可写为-codec。选择一个 codec ,即编码器(输出时)或一个解码器(输入时),参与到 stream_specifier 指定的一个或多个流的编码/解码中。在输出时,<codec> 可以被指定为 copy,表示复制数据流。

-t <duration> (i/o):(在参数 -i 之前指定)工作持续 duration 时长。一般用于指定剪辑数据流的范围。 它与 -to 参数相互冲突,但本参数优先。

-to <position> (o):到 position 位置后,终止输出。与 -t 参数冲突,本参数优先级低。

-fs <limit_size> (o):输出文件大小达到 limit_size 后停止输出,单位是 byte.

-ss <position> (i/o):(在参数 -i 之前指定)从 position 指定的位置开始工作。注意:大多数情形下,工作起始位置是不精确的。ffmpeg会找到其前部的一个点作为真正的起始,并在结束工作后将该点与用户指定点之间的内容抛弃。然而,如果你使用了 copy 参数,这部分内容却会被保留。

-sseof <position> (i/o):类似 -ss 参数,只不过是从数据流末端向前寻找 position。此时 0 表示数据流末。

-itsoffset <offset> (i):指定输入流以原时间戳加上 offset 作为其输入时间戳。

-metadata[:metadata_specifier] key=value (o):以键值对的形式设置元数据。

-frames[:stream_specifier] <num> (o):在输出 num 帧后停止写入。

-qscale[:stream_specifier] q (o):使用固定质量(VBR)。

stats (global):输出编码过程,是系统默认值。可以使用 -nostats 关闭。

-attach <filename> (o):将 filename 文件附加到输出文件。附件流作为文件的最后一个流,只有很少的文件类型被支持(例如字体)。

视频参数

-vframes <num>:文件的总帧数。-frames:v 的别名。

-r[:steam_specifier] <fps> (i/o):文件的帧率。

-s[:steam_specifier] <size> (i/o):帧尺寸。参数 size 需要满足格式 <width>x<height>,例如320x240。 -aspect[:steam_specifier] <asp> (o):宽高比,例如 4:3。如果使用了 -vcodec copy,那么指定容器的宽高比而不是视频的。

-vn (o):禁止输出视频。

-vcodec <codec> (o):设置视频编码器。-codec:v 的别名。

音频参数

-aframes <num> (o):文件的总帧数。-frames:a 的别名。

-ar[:stream_specifier] <freq> (i/o):采样率。默认输出等于输入。仅当输入文件为真实设备或者 raw 数据时,该参数才能用于输入过程。

-aq <q> (o):音频品质(VBR)。 -q:a 的别名。

-ac[:stream_specifier] <channel> (i/o):设置音频通道数。默认输出等于输入。仅当输入文件为真实设备或者 raw 数据时,该参数才能用于输入过程。

-an (o):禁止输出音频。

-acode <codec> (i/o):设置音频的解码器或编码器。-codec:a 的别名。

其他参数

以下直接在 ffmpeg 后使用,例如:ffmpeg -version

-bsfs:可用的比特流滤镜。

-h [arg]:帮助。arg 的内容可以是:

decoders:可用的解码器。或特指:decoder=。

encoders:可用的编码器。或特指:encoder=。

filters:所有滤镜。或特指:filter=。

formats:可用的分流器与混流器。或特指分流器:demuxer=,或特指混流器:muxer=。

-protocols:支持的协议。

-version:版本信息。

上一篇下一篇

猜你喜欢

热点阅读