FFmpeg中常用的工具主要是ffmpeg、ffprobe、ffplay,它们分别用作多媒体的编解码工具、内容分析工具和播放器。
1 ffmpeg常用命令
在很多场景下转码使用的是ffmpeg,通过ffmpeg --help可以看到ffmpeg常见命令大概分为6个部分,具体包括:
ffmpeg信息查询部分
公共操作参数部分
文件主要操作参数部分
视频操作参数部分
音频操作参数部分
字幕操作参数部分
(1)ffmpeg的封装转换
ffmpeg的封装转换功能包含在AVFormat模块中,通过libavformat库进行Mux和Demux操作。通过查看ffmpeg --help full信息,找到AVFormatContext参数部分,该参数下的所有参数均为封装转换可使用的参数。ffmpeg AVFormatContext的主要参数及说明。
这些都是通用的封装、解封装操作时使用的参数,上述参数可以与对应的命令行参数搭配使用。
(2)ffmpeg的转码参数
ffmpeg编解码部分的功能主要是通过模块AVCodec来完成的,通过libavcodec库进行Encode与Decode操作。AVcodecContext参数列表信息。通过命令ffmpeg --help full可以看到AVCodecContext参数列表信息。
举例:使用ffmpeg命令进行转码操作
输出信息:
从输出信息中可以看到,参数发生了参数发生了改变,具体如下:
转封装格式从RMVB格式转换为MP4格式
视频编码从rv40 转换为mpeg4 格式
视频码率从原来的87 kb/s转换为200 kb/s
视频帧率从原来的30fps转换为15fps
转码后的文件中不包括音频(-an参数)
2 ffprobe常用命令
ffprobe多媒体信息查看工具主要用来查看多媒体文件的信息。ffprobe常用的参数比较多,可以通过ffprobe --help来查看详细的帮助信息。
列举几个例子。
(1)查看多媒体数据包信息,多媒体数据包信息使用PACKET标签括起来。
(2)查看包中的具体数据
(3)查看多媒体封装格式,使用FORMAT标签括起来
(4)查看视频文件中的帧信息,使用FRAME标签括起来
(5)查看多媒体文件中的流信息,使用STREAM标签括起来
如果要进行格式化的显示,需要用到ffprobe -print_format或者ffprobe -of参数来进行相应的格式输出,支持多种格式输出,包括XML、INI、JSON、CSV、FLAT等。
3 ffplay常用命令
FFmpeg中通常使用ffplay作为播放器,其可以通过ffplay --help进行查看帮助信息。
举例:
从视频的第30秒开始播放,播放10秒钟的文件
如果希望视频播放时播放器的窗口显示标题为自定义标题
使用ffmpeg打开网络直播流
另外,ffplay还有一些高级参数以及数据可视化分析应用。
参考文献:
[1] 刘歧,赵文杰.FFmpeg从入门到精通[M].北京:机械工业出版社,2018:30-60.
【视音频图像技术、人工智能、机器人技术探索】
领取专属 10元无门槛券
私享最新 技术干货