FFmpeg命令行工具系列一------ffmpeg.exe概述

一、概述

 FFmpeg是一个开源免费平台的视频和音频流方案,属于自由软件。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。具体可以参考官方网址:http://ffmpeg.org/,或者我的博客:http://blog.csdn.net/gameloft9/article/details/44807439。

由于FFmpeg有命令行工具FFmpeg.exe,可以很方便的在自己的工程中通过调用批处理命令使用它。虽然对于项目整合这并不是最佳的方案,但小项目这样确实可以节省许多时间。所以研究它的命令及参数,还是很有必要的。至于源码分析和二次开发,以后有时间再细细研究。

二、语法格式

ffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_options] output_file} ...


三、ffmpeg工具简介

ffmpeg是一个非常快速的音视频转换工具。除此之外它可以在音视频源中抓取数据,它也可以转换采样率,还可以通过高质量的多相过滤器快速的改变视频大小。ffmpeg从多个源中读取数据,可以是常规的文件,管道,网络流媒体,抓取设备等等,这通过命令行中的-i参数识别。ffmpeg也可以 输出到 不同的目标,通过准确的文件名指定,注意命令行中任何非参数的字符将被认为是输出文件的文件名。 每个输入输出文件,原则上都会包含多个不同类型的流,比如视频流,音频流,字幕,附件,数据。允许的流的数量和类型通过容器格式来限定。选择 哪个输入源,输出到哪个目标是自动完成的,也可以通过-map参数指定。

若要使用可用的输入源,必须引用它们的序号(从0开始)。例如第一个输入文件是0,第二个是1,以此类推。类似的,文件中的流也是通过他们的序号引用。例如:2:3表示第三个输入文件的第四个流。通常参数对到下一个文件起作用,因此顺序很重要。可以在命令行中重复包含同一个参数。参数每出现一次,将对紧跟后面的下个输入输出文件起作用。但是全局参数例如:verbosity 级别,这样的参数需要首先指定。不要将输入输出文件混淆,第一个指定的全部都是输入文件,然后全是输出文件。同样不要混淆不同文件的参数。所有的参数仅对跟在后面的文件有效。

几个简单例子:
1.将输出的视频的比特率设置为64 kbit/s:
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi

2.将输出文件的帧率设置为24 fps:
ffmpeg -i input.avi -r 24 output.avi

3.将输入文件的帧率(仅对raw格式有效)强置为1 fps,并将输出文件的帧率设置为24 fps:
ffmpeg -r 1 -i input.m2v -r 24 output.avi
对于raw格式的输入文件可能需要格式参数。


你可能感兴趣的:(FFmpeg)