ffmpeg细节整理记录


 ffmpeg细节整理记录

1、-vcodec、-code:v、-c:v

ffmpeg的官方文档 -vcodec 是 -code:v 别名。

-vcodec codec (output)
  Set the video codec. This is an alias for -codec:v.

 也就是说-vcodec-codec:v等价。但是并没有说和-c:v等价啊。看一下-codec:v的文档

-c[:stream_specifier] codec (input/output,per-stream)
-codec[:stream_specifier] codec (input/output,per-stream)

For example 
ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT 
encodes all video streams with libx264 and copies all audio streams. 

-codec 和 -c 是等价的。所以 -vcodec 和 -code:v 是等价的。

文档说明 -codec 可以为指定的流设置编码器,具体通过stream_specifier来指定。

2、调整视频分辨率

1、用-s参数设置视频分辨率,参数值 wxh,w 宽度单位是像素,h 高度单位是像素

ffmpeg -i input_file -s 320x240 output_file

2、预定义的视频尺寸,下面两条命令有相同效果

ffmpeg -i input.avi -s 640x480 output.avi
ffmpeg -i input.avi -s vga output.avi

Scale filter调整分辨率

Scale filter的优点是可以使用一些额外的参数:Scale=width:height[:interl={1|-1}]

下面两条命令有相同效果 (-1保持看高比,也可为 -1:1080)

ffmpeg -i input.mpg -s 320x240 output.mp4 
ffmpeg -i input.mpg -vf scale=320:240 output.mp4
ffmpeg -i input.mpg -vf scale=1080:-1 output.mp4

-vf是调用video filter,此处用scale filter来改变分辨率进行转码。

对输入视频成比例缩放,改变为源视频一半大小

ffmpeg -i input.mpg -vf scale=iw/2:ih/2 output.mp4

改变为原视频的90%大小:

ffmpeg -i input.mpg -vf scale=iw*0.9:ih*0.9 output.mp4

注:scale只能接受偶数,否则height not divisible by 2。