更多参考: http://www.ffmpeg.org/ffplay.html
ffplay命令
格式:ffplay [选项] [‘输入文件’]
ffplay pixel_format yuv420p video_size 320x240 framerate 5 yuv420p_320x240.yuv
选项:
'-x width' 强制以 "width" 宽度显示
'-y height' 强制以 "height" 高度显示
-pixel_format format 格式设置像素格式。
-fs 以全屏模式启动。
-an 禁用音频(不播放声音)
-vn 禁用视频(不播放视频)
-sn 禁用字幕(不显示字幕)
'-ss pos' 跳转到指定的位置(秒)
'-t duration' 播放 "duration" 秒音/视频
'-bytes' 按字节跳转
'-nodisp' 禁止图像显示(只输出音频)
'-f fmt' 强制使用 "fmt" 格式
'-window_title title' 设置窗口标题(默认为输入文件名)
'-loop number' 循环播放 "number" 次(0将一直循环)
'-showmode mode' 设置显示模式
可选的 mode :
'0, video' 显示视频
'1, waves' 显示音频波形
'2, rdft' 显示音频频带
默认值为 'video',你可以在播放进行时,按 "w" 键在这几种模式间切换
'-i input_file' 指定输入文件
-genpts 生成 pts
-fast 非标准化规范的多媒体兼容优化。
-bytes 按字节进行定位拖动( 0=off 1=on -1=auto )。
-seek_interval interval 自定义左 右键定位拖动间隔(以秒为单位),默认值为 10 秒
//一些高级选项
'-sync type' 设置主时钟为音频、视频、或者外部。默认为音频。主时钟用来进行音视频同步
例如 -sync audio
-sync video
-sync ext
'-threads count' 设置线程个数
'-autoexit' 播放完成后自动退出
'-exitonkeydown' 任意键按下时退出
'-exitonmousedown' 任意鼠标按键按下时退出
'-acodec codec_name' 强制指定音频解码器为 "codec_name"
'-vcodec codec_name' 强制指定视频解码器为 "codec_name"
'-scodec codec_name' 强制指定字幕解码器为 "codec_name"
-video_size size 帧尺寸 设置显示帧存储 WxH 格式 )),仅适用于类似原始 YUV 等没有包含帧大小 WxH 的视频 。
-ss pos
根据设置的秒进行定位拖动,注意时间单位:比如 '55' 55
seconds, '12:03:45' ,12 hours, 03 minutes and 45 seconds, '23.189' 23.189
second
-nodisp 关闭图形化显示窗口,视频将不显示
-noborder 无边框窗口
-volume vol 设置起始音量 。音量范围 [0 ~100]
-f fmt 强制使用设置的格式进行解析。比如 f s16le
-window_title title 设置窗口标题(默认为输入文件名)
-loop number 设置播放循环次数
-showmode mode
设置显示模式,可用的模式值: 0 显示视频,
1 显示音频波形, 2 显示音频频谱。缺省为 0 ,如果视频不存在则自动选择 2
-vf filtergraph 设置视频滤镜
-af filtergraph 设置音频滤镜
-stats
打印多个回放统计信息,包括显示流持续时间,编解码器参数,
流中的当前位置,以及音频 视频同步差值。默认情况下处于启用状
态,要显式禁用它则需要指定 nostats 。。
-ast audio_stream_specifier 指定音频流索引,比如 ast 3 ,播放流索引为 3 的音频流
-vst video_stream_specifier 指定视频流索引,比如 vst 4 ,播放流索引为 4 的视频流
-sst subtitle_stream_specifier 指定字幕流索引,比如 sst 5 ,播放流索引为 5 的字幕流
-autoexit 视频播放完毕后退出。
-exitonkeydown 键盘按下任何键退出播放
-exitonmousedown 鼠标按下任何键退出播放
-codec:media_specifier codec_name
强制使用设置的多媒体解码器,
media_specifier 可用值为 a (音频 v (视频)和 s 字幕。比如
codec:v h264_qsv 强制视频采用 h264_qsv 解码
-autorotate 根据文件元数据自动旋转视频。值为 0 或 1 ,默认为 1 。
-framedrop
如果视频不同步则丢弃视频帧。当主时钟非视频时钟时
默认开启。若需禁用则使用 noframedrop
-infbuf
不限制输入缓冲区大小。尽可能快地从输入中读取尽可能多的数据。
播放实时流时默认启用,如果未及时读取数据,则可能会丢弃数据。此选项
将不限制缓冲区的大小。若需禁用则使用 noinfbuf
快捷键:
'q, ESC' 退出
'f' 全屏
'p, SPC' 暂停
'w' 切换显示模式(视频/音频波形/音频频带)
's' 步进到下一帧 按s键就可以进入frame-step模式,即按s键一次就会播放下一帧图像。
'left/right' 快退/快进 10 秒
'down/up' 快退/快进 1 分钟
'page down/page up' 跳转到前一章/下一章(如果没有章节,快退/快进 10 分钟)
'mouse click' 跳转到鼠标点击的位置(根据鼠标在显示窗口点击的位置计算百分比)
丢帧
默认全局变量:
static int framedrop = -1;
ffplay文档中对"-framedrop"选项的说明:
1、(默认)= -1(命令行不带"-framedrop"选项或"-noframedrop") -----默认:依据主时钟决定是否丢帧
1、若视频主时钟("同步到视频"), 不丢弃失去同步的视频帧,
2、其他2种同步方式: 丢弃失去同步的视频帧。
2、= 1(命令行带"-framedrop") -----打开丢帧功能
均丢弃失去同步的视频帧
3、= 0(命令行带"-noframedrop") -----关闭丢帧功能
均不丢弃失去同步的视频帧