ffplay常用命令

编译旧版本的FFmpeg源代码,如果系统中包含SDL-1.2版本,会生成ffplay,如果不包含就无法生成ffplay文件;新版本FFmpeg需要SDL-2.0版本;想要用ffplay进行流媒体播放测试,需要系统支持SDL然后编译源码生成ffplay。

ffplay的功能

ffplay不仅仅是播放器,也可以作为音视频数据图形化分析工具,ffplay也可以看到视频图像的运动估计方向、音视频波形等,同时也是测试ffmpeg的codec引擎、format引擎、filter引擎工具,还可以进行可视化的媒体参数分析,可以通过ffplay --help来查看:

image.png

字段 说明
x 强制设置视频显示窗口的宽度
y 视频显示窗口的高度
s 设置视频显示的宽高
fs 强制设置全屏显示
an 屏蔽音频
vn 屏蔽视频
sn 屏蔽字幕
ss 根据设置的秒进行定位拖动
t 设置播放长度
bytes 设置定位拖动的策略,0不可拖动,1为可拖动,-1为自动
nodisp 关闭图形化显示窗口
f 强制使用设置的格式进行解析
window_title 设置窗口的标题
af 设置音频的滤镜
codec 强制使用设置的codec进行解码
autorotate 自动旋转视频

举个栗子:
ffplay -window_title "caterpillar404" input.mp4

image.png

ffplay打开网络直播视频

通过ffplay打开网络直播视频,可以使用如下命令:
** ffplay -window_title "直播测试" rtmp://47.254.42.238:1935/live/caterpillar ** 这是我自己的测试直播流

image.png

高级参数

上面基础参数介绍完毕,一样ffplay --help查看,我就不截图了,如下表所示:

字段 说明
ast 设置将要播放的音频流
vst 设置将要播放的视频流
sst 设置将要播放的字幕
stats 输出多媒体播放状态
fast 非标准化规范的多媒体兼容优化
sync 音视频同步设置可根据音频时间、视频时间或者外部扩展时间进行参考
autoexit 播放完毕后自动退出
exitonkeydown 当有按下事件的时候退出ffplay
exitonmousedown 当有鼠标按键的时候退出ffplay
loop 设置多媒体文件循环播放的次数
framedrop 当CPU资源占用过高时,自动丢帧
infbuf 设置无极限的播放器buffer,这个选项常见与实时流媒体播放场景
vf 视频滤镜设置
acodec 强制设置音频解码器
vcodec 强制设置视频解码器
scodec 强制设置字幕解码器

从上述参数进行一些参数组合,举个栗子:
例如从第5秒开始播放一个视频,播放10秒钟,播放完成后自动退出ffplay,播放窗口标题为“绿帽子”,为了确认播放时长正确,可以通过系统命令time 来查看运行时长:
time ffplay -ss 5 -t 10 -autoexit input.mp4
命令执行完毕之后输出如下:

image.png

从输出内容上看,实际消耗时间为12.335s,用户空间消耗0.801s,情况基本相符。

通过filter将字幕文件加载到播放数据中

可以加载ASS和SRT格式的字幕文件
ffplay -window_title "胖胖胖" -vf "subtitles=input.srt" input.mp4

ffplay的数据可视化分析应用

使用ffplay除了可以播放视频流媒体文件之外,还可以作为可视化的视频流媒体分析工具,例如播放音频文件,如果不确定文件的声音是否正常,可以使用ffplay播放音频文件,播放的时候将解码后的音频数据以音频波形的形式显示出来,执行效果如下:
ffplay -showmode 1 input.mp3

image.png

上图可以看到,音频播放时的波形可以通过振幅显示出来,可以用来查看音频的播放情况。

查看B帧和P帧预测信息

ffplay -vismv pf input.mp4
目前vismv这个参数已经被替换掉了,现在使用codecview这个滤镜来进行设置,命令如下:
ffplay input.mp4 -vf codecview=mv=pf+bf+bb
运动向量显示参数:

参数 说明
pf P帧向前运动估计显示
bf B帧向前玉栋估计显示
bb B帧向后运动估计显示

你可能感兴趣的:(ffplay常用命令)