【音视频】FFmpeg入门

术语 全称 说明
ffmpeg Fast forword mpeg 音视频转换器
ffplay Fast forword play 用ffmpeg实现的播放器
ffserver Fast forword server 用ffmpeg实现的rtsp服务器
ffprobe Fast forword probe 用来输入分析输入流
2. FFMPEG介绍与安装 2.1 FFmpeg简介
【【音视频】FFmpeg入门】FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或 GPL 许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方 案。它包含了非常先进的音频/视频编解码库 libavcodec,为了保证高可移植性和编解 码质量,libavcodec 里很多 codec 都是从头开发的。
ffmpeg 项目由以下几部分组成:
  1. ffmpeg 视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件.
  2. ffserver 基于 HTTP、RTSP 用于实时广播的多媒体服务器.也支持时间平移
  3. ffplay 用 SDL 和 FFmpeg 库开发的一个简单的媒体播放器
  4. libavcodec 一个包含了所有 FFmpeg 音视频编解码器的库.为了保证最优性能和 高可复用性,大多数编解码器从头开发的.
  5. libavformat 一个包含了所有的普通音视格式的解析器和产生器的库
2.2 FFmpeg安装
  • yum
# 1.升级系统 sudo yum install epel-release -y # 2.安装Nux Dextop Yum 源 (centos7) sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm # 3.安装FFmpeg 和 FFmpeg开发包 sudo yum install ffmpeg ffmpeg-devel -y # 4.测试是否安装成功 ffmpeg

3. FFmpeg参数说明 3.1 通用选项
-L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的。 -f fmt 强迫采用格式fmt -i filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持 -title string 设置标题 -author string 设置作者 -copyright string 设置版权 -comment string 设置评论 -target type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码 以及缓冲区大小)自动设置 ,只需要输入如下的就可以了: ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg -hq 激活高质量设置 -itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该 偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset 秒。 [-]hh:mm:ss[.xxx]的格式也支持

3.2 视频选项
-b bitrate 设置比特率,缺省 200kb/s -r fps 设置帧频 缺省 25 -s size 设置帧大小 格式为 WXH 缺省 160X128.下面的简写也可以直接使用: Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576 -aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777 -croptop size 设置顶部切除带大小 像素单位 -cropbottom size –cropleft size –cropright size 底部,左边,右边切除带大小。 -padtop size 设置顶部补齐的大小 像素单位 -padbottom size –padleft size –padright size –padcolor color 设置补齐条大小和颜 色(hex,6 个 16 进制的数,红:绿:兰排列,比如 000000 代表黑色) -vn 不做视频记录 -bt tolerance 设置视频码率容忍度 kbit/s -maxrate bitrate 设置最大视频码率容忍度 -minrate bitreate 设置最小视频码率容忍度 -bufsize size 设置码率控制缓冲区大小 -vcodec codec 强制使用 codec 编解码方式。 如果用 copy 表示原始编解码数据必须 被拷贝。 -sameq 使用同样视频质量作为源(VBR) -pass n 选择处理遍数(1 或者 2)。两遍编码非常有用。第一遍生成统计信息,第 二遍生成精确的请求的码率 -passlogfile file 选择两遍的纪录文件名为 file

3.3 高级视频选项
参考文章
  • CentOS中yum安装ffmpeg

    推荐阅读