组成:
1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;
2、libavcodec:用于各种类型声音/图像编解码;
3、libavutil:包含一些公共的工具函数;
4、libswscale:用于视频场景比例缩放、色彩映射转换;
5、libpostproc:用于后期效果处理;
6、ffmpeg:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;
7、ffsever:是一个HTTP多媒体实时广播流服务器,支持时光平移;
8、ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
命令参数:
1.-vf:视频过滤器
2.-af:音频过滤器
3.-r:设置帧率
4.-b:设置码率(其中-b:a设置音频,-b:v设置视频)
5.-fs:控制输出文件大小
6.-s:设置视频分辨率
-vf详解:
pad=iw:ih:0:0:填充视频
hflip:视频视频翻转
vflip:视频垂直翻转
transpose={0,1,2,3}:旋转
0:逆时针旋转90°然后垂直翻转
1:顺时针旋转90°
2:逆时针旋转90°
3:顺时针旋转90°然后水平翻转
以上参考文章:http://blog.csdn.net/doublefi123/article/details/24325159
7.-y:覆盖输出文件
8.-i:视频/音频源文件路径
9.-title:在PSP中显示的影片的标题
10.-aspect:设定画面的比例
-acodec 详解:
acc:音频编码(libaacplus在3.0版本后已经删除)
-ac:声道数(1或2)
-ar:声音采集频率(PSP只能支持24000Hz)
-ab:音频数据流量,一般选择32、64、96、128
-vol:音量(如200表示200%的音量)
以上参考文章:http://www.cnblogs.com/chen1987lei/archive/2010/12/03/1895242.html
11. -crf:在优先保证画面质量(也不太在乎转码时间)的情况下,使用-crf参数来控制转码是比较适宜的。这个参数的取值范围为0~51,其中0为无损模式,数值越大,画质越差,生成的文件却越小。从主观上讲,18~28是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。
以上参考资料:http://blog.csdn.net/happydeer/article/details/52610060
其他参考资料:
比较详细的命令参数文档:https://linux.die.net/man/1/ffmpeg
ffmpeg常用的基本命令:https://my.oschina.net/u/1983790/blog/490524
ffmpeg多线程转码:http://blog.csdn.net/real_myth/article/details/43489697
关于preset的:https://trac.ffmpeg.org/wiki/Encode/H.264
ffmpeg官方文档:http://ffmpeg.org/documentation.html