FFmpeg命令行工具系列六----使用ffmpeg.exe的一些例子

来源:互联网 发布:手机免费对讲机软件 编辑:程序博客网 时间:2024/05/16 07:18

一、概述

        前面讲了很多基础性的知识,偶尔会有一些例子,但不多。这一章就专门讲解一些应用例子,对于不懂的参数,可以使用ffmpeg -? 或者ffmpeg -help查看帮助,也可去官网查阅资料。

      另外你最好对多媒体有一个大概的了解,比如常用的音视频编码方式,常用的音视频文件格式等等。

二、主要内容

       任何支持的文件格式和协议都可以作为ffmpeg的输入源:
你可以使用yuv文件作为输入:
ffmpeg  -i  /tmp/test%d.Y  /tmp/out.mpg
它将使用下列文件
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, 等等
Y文件使用的分辨率是U和V文件的分辨率两倍。他们是原始文件,没有头。他们可以通过所有的视频解码器生成,最好通过-s参数指定的图像的大小。

你可以使用原始YUV420P文件作为输入
ffmpeg -i /tmp/test.yuv /tmp/out.avi
test.yuv文件包含原始yuv数据。

你可以输出到原始的yuv420p文件中去:
ffmpeg -i mydivx.avi hugefile.yuv

也可有多个输入和输出
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
将a.wav和a.yuv合成到a.mpg文件中去。

同样可以做音视频之间的转换
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
把a.wav转换为采样率为22050Hz的mpeg音频文件。

可以编码为不同的格式,并在输入输出之间使用映射
ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
将a.wav以64kb的码率转换为a.mp2文件,以128kb的码率转换为b.mp2文件。'-map 文件:序号'指出每个输出使用哪个文件作为输入。

可以从视频中抓取图片,或者从许多图片中创建视频
1.从视频中抓取图片:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
这将每一秒抓取一帧,并输出到foo-001.jpeg,foo-002.jpeg。。。
如果你想抓取限定个数的帧,可以使用-vframes或者-t参数
2.从许多图片创建视频
ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s 480*320  foo.avi
这会把foo-001.jpeg,foo-002.jpeg。。。图片组成一个帧率为12的foo.avi

"%03d"的语法类似于c语言中的printf语法。

0 0
原创粉丝点击