ffmpeg简介和常用参数

FFmpeg主要由三个部分构成。

第一部分是四个不同作用的工具软件,分别是:

  • ffmpeg.exe:音视频转码器;

  • ffplay.exe:简单的音视频播放器;

  • ffserver.exe:流媒体服务器;

  • ffprobe.exe:简单的多媒体码流分析器。

第二部分是为各个不同平台编译完成的库,开发者可以根据自己的需求使用这些库开发自己的应用程序。

  • libavcodec:包含音视频编码器和解码器;

  • libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等。

  • libavformat:包含多种多媒体容器格式的封装、解封装工具;

  • libavfilter:包含多媒体处理常用的滤镜功能;

  • libavdevice:用于音视频数据采集和渲染等功能的设备相关;

  • libswscale:用于图像缩放、色彩空间、像素格式转换等功能;

  • libswresample:用于音频重采样和格式转换等功能。

第三部分是整个工程的源代码,无论是编译好的可执行程序还是SDK,都是使用这些源代码进行编译的。FFmpeg的源代码由C语言实现,主要在Linux平台进行开发

常用参数

通用参数

  • -f fmt: 指定格式(音频或者视频格式)。

  • -i filename: 指定输入文件名。

  • -y: 覆盖已有文件。

  • -t duration: 指定时长。

  • -fs limit_size: 设置文件大小的上限。

  • -ss limit_size: 从指定的时间(单位为秒)开始,也支持[-]hh:mm:ss[.xxx]格式

  • -re: 代表按照帧率发送。在作为推流工具的时候一定要加入该参数,否则ffmpeg会按照最高速率向流媒体服务器不停地发送数据。

  • -map: 指定输出文件的流映射关系。如果没有-map选项,则ffmpeg采用默认的映射关系。

视频参数

  • -b: 指定比特率(bit/s),ffmpeg是自动使用VBR的,若指定了该参数则使用平均比特率。

  • -bitexact: 使用标准比特率。

  • -vb: 指定视频比特率(bit/s).

  • -r rate: 帧速率(fps)。

  • -s size: 指定分辨率(320 * 320)

  • -aspect aspect: 设置视频长宽比(4:3,16:9或者1.3333,1.7777)。

  • -croptop size: 设置顶部切除尺寸(in pixels)。

  • -cropbottom size: 设置顶底切除尺寸(in pixels)。

  • -cropleft size: 设置左切除尺寸(in pixels)。

  • -cropright size: 设置右切除尺寸(in pixels)。

  • -padtop size: 设置顶部补齐尺寸(in pixels)。

  • -padbottom size: 设置底部补齐尺寸(in pixels)。

  • -padleft size:设置左补齐尺寸(in pixels)。

  • -padright size:设置右补齐尺寸(in pixels)。

  • -padcolor color: 补齐带颜色(000000-FFFFFF)。

  • -vn: 取消视频的输出。

  • -vcode codec: 强制使用codec编解码方式('copy'代表不进行重新编码)。

音频参数

  • -ab: 设置比特率(单位为bit/s)。

  • -aq quality: 设置音频质量(指定编码)。

  • -ar rate: 设置音频采样率(单位为Hz)。

  • -ac channels: 设置声道数。1就是单声道,2就是立体声。

  • -an: 取消音频轨。

  • -acodec codec: 指定音频编码('copy'代表不做音频转码)。

  • -vol volume: 设置录制音量大小(默认256)<百分比>。

你可能感兴趣的:(ffmpeg简介和常用参数)