FFmpeg常用命令讲解及实战二(1)https://developer.aliyun.com/article/1472399
二、ffprobe 常用参数
ffprobe 常用参数比较多, 可以用过 ffprobe --help
来查看详细的信息.
ffprobe -show_packets "input_file"
:查看的多媒体包信息使用 PACKET 标签所包括起来, 其中包含的信息主要如下:
codec_type
:多媒体类型,例如视频包,音频包等;stream_index
:多媒体的 stream 索引;pts
:多媒体的显示时间值;//presentation timestamppts_time
:根据不同格式计算过后的多媒体的显示时间;dts
:多媒体解码时间值; //decoding timestampduration
:多媒体包占用的时间值;duration_time
:根据不同格式计算过后的多媒体包占用的时间值;size
:多媒体包的大小;pos
:多媒体包所在的文件偏移位置;flags
:多媒体包标记,关键包与非关键包的标记;
1、show_format
除了 packets 与 data 外,ffprobe 还可以分析多媒体的封装格式,通过 show_format 参数可以查看多媒体的封装格式,封装格式使用 FORMAT 标签括起来显示:
ffprobe -show_format "input_file" • 1
通过读取 format 信息,可以看到这个视频文件有两个流通道,起始时间是 0.000000,长度为 105.282000,文件大小为 21045377 字节,码率为 1599162 字节每秒。
2、show_frames
通过 ffprobe 的 show_frames 的参数可以查看视频文件中的帧信息, 输出的帧信息使用 FRAME 标签括起来
通过 -show_frames 参数查看到如图的信息, 能够看到每一帧的信息, 下面介绍一下重要的信息:
3、show_streams
通过 -show_streams 参数可以查看到多媒体文件中的流信息,流的信息使用 STREAMS 标签括起来:
如图所示,可以看到流的信息:
4、print_format
ffprobe 使用前面的参数可以获得到对应的 key-value,但是阅读起来因习惯不同,所以有的人认为方便,有的人认为不方便,这样就需要用到 ffprobe 的 print_format 参数来进行相应的格式输出,下面举几种输出的例子:
ffprobe -show_frames "input_file" -print_format json
最后一项可选:xml
,json
,ini
,csv
,flat
5、select_streams
如果只查看音频流或视频流,使用 select_streams 参数即可,例如只查看视频流的 frames 信息
ffprobe -show_frames -select_streams v -of xml "input_file"
三、ffplay 的常用命令
通常使用 ffplay 作为播放器,其实 ffplay 不但可以做播放器,同样可以作为很多图像化音视频数据的分析根据,通过 ffplay 可以看到视频图像的运动估计方向,音频数据的波形等。
1、ffplay 常用参数
ffplay 不仅仅是播放器,同时也是测试 ffmpeg 的 codec 引擎,format 引擎,以及 filter 引擎的工具,并且也可以做可视化的媒体参数分析,可以通过 ffplay --help 进行查看:
常见参数可以手动进行尝试:
- 如果希望从视频的第 30 秒开始播放,播放 10 秒钟的文件,则可以使用如下命令:
ffplay -ss 30 -t 10 input.mp4
- 如果希望视频播放时播放器的窗口显示标题为自定义标题,则使用如下命令:
ffplay -window_title "Hello World, This is a sample" output.mp4
- 使用 ffplay 打开网络直播流,可以使用命令:
ffplay -window_title "播放测试" rtmp://up.v.test.com/live/stream
2、ffplay 高级参数
通过使用 ffplay --help 参数看到帮助信息比较多,其中包含了高级参数介绍,下面详细介绍一下
3、ffplay 的数据可视化分析应用
使用 ffplay 除了可以播放视频流媒体文件之外,还可以作为可视化的视频流媒体分析工具,例如当播放音频文件时,不确定文件的声音是否正常,噪声数据等分析,可以直接使用 ffplay 播放音频文件,播放的时候将会把解码后的音频数据以音频波形显示出来:
ffplay -showmode 1 1.mp3
从图中可以看到,音频的播放时的波形可以通过振幅显示出来,可以用来看到音频的播放情况