FFmpeg工具使用及参数说明

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.

【视音频图像技术、人工智能、机器人技术探索】

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180613G0A5TU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券