FFmpeg三大工具--ffplay

一、前言

FFmpeg的Static版本的bin文件夹中只有三个.exe文件,分别是: ffmpeg.exe、ffplay.exe、ffprobe.exe,这三个是FFmpeg源代码编译后生成的可执行文件,也就是FFmpeg的三大工具,本文章主要介绍ffplay。

在编译旧版本FFmpeg源代码时,如果系统中包含了SDL-1.2版本,就会默认将ffplay编译生成出来;如果不包含SDL-1.2或者版本不是SDL-1.2时,将无法生成ffplay文件。所以,如果想要使用ffplay进行流媒体播放测试,则需要安装SDL-1.2,而在新版本的FFmpeg源代码中,需要SDL-2.0之后的版本才能有效生成ffplay。

在FFmpeg中通常使用ffplay作为播放器,其实ffplay同样也可以作为很多音视频数据的图形化分析工具,通过ffplay可以看到视频图像的运动估计方向、音频数据的波形等。

ffplay不仅仅是播放器,同时也是测试ffmpeg的codec引擎、format引擎,以及filter引擎的工具,并且还可以进行可视化的媒体参数分析。


二、ffplay命令查询解析

通过ffplay --help可以看到ffmpeg常见的命令

C:\Users\wangjichuan\Desktop>ffplay --help	//输入命令
ffplay version 3.4 Copyright (c) 2003-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Simple media player
usage: ffplay [options] input_file

Main options:	//常用命令
-L                  show license
-h topic            show help
-? topic            show help
-help topic         show help
--help topic        show help
-version            show version
-buildconf          show build configuration
-formats            show available formats
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-codecs             show available codecs
-decoders           show available decoders
-encoders           show available encoders
-bsfs               show available bit stream filters
-protocols          show available protocols
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formats
-colors             show available color names
-loglevel loglevel  set logging level
-v loglevel         set logging level
-report             generate a report
-max_alloc bytes    set maximum size of a single allocated block
-sources device     list sources of the input device
-sinks device       list sinks of the output device
-x width            force displayed width	//强制设置视频显示窗口的宽度
-y height           force displayed height	//强制设置视频显示窗口的高度
-s size             set frame size (WxH or abbreviation)	//设置视频显示的宽高
-fs                 force full screen	//强制全屏显示
-an                 disable audio		//屏蔽音频
-vn                 disable video		//屏蔽视频
-sn                 disable subtitling	//屏蔽字幕
-ss pos             seek to a given position in seconds	//根据设置的秒进行定位拖动
-t duration         play  "duration" seconds of audio/video		//设置播放视频/音频的长度
-bytes val          seek by bytes 0=off 1=on -1=auto	//设置定位拖动的策略,0为不可拖动,1
-nodisp             disable graphical display	//关闭图形化显示窗口
-noborder           borderless window
-volume volume      set startup volume 0=min 100=max	//设置音量
-f fmt              force format	//强制使用设置的格式进行解析
-window_title window title  set window title	//设置显示窗口的标题
-af filter_graph    set audio filters		//设置音频的滤镜
-showmode mode      select show mode (0 = video, 1 = waves, 2 = RDFT)
-i input_file       read specified file
-codec decoder_name  force decoder	//强制使用设置的codec进行解码
-autorotate         automatically rotate video	//自动旋转视频

Advanced options:	//高级命令
-cpuflags flags     force specific cpu flags
-hide_banner hide_banner  do not show program banner
-ast stream_specifier  select desired audio stream	//设置将要播放的音频流
-vst stream_specifier  select desired video stream	//设置将要播放的视频流
-sst stream_specifier  select desired subtitle stream	//设置将要播放的字幕流
-pix_fmt format     set pixel format
-stats              show status		//输出多媒体播放状态
-fast               non spec compliant optimizations	//非标准化规范的多媒体兼容优化
-genpts             generate pts
-drp                let decoder reorder pts 0=off 1=on -1=auto
-lowres
-sync type          set audio-video sync. type (type=audio/video/ext)	//音视频同步设置可根据音频时间、视频时间或者外部扩展时间进行参考
-autoexit           exit at the end		//多媒体播放完毕之后自动退出ffplay,ffplay默认播放完毕之后不退出播放器
-exitonkeydown      exit on key down	//当有按键按下事件产生时退出ffplay
-exitonmousedown    exit on mouse down	//当有鼠标按键事件产生时退出ffplay
-loop loop count    set number of times the playback shall be looped	//设置多媒体文件循环播放的次数
-framedrop          drop frames when cpu is too slow	//当CPU资源占用过高时,自动丢帧
-infbuf             don't limit the input buffer size (useful with realtime streams)	//设置无极限的播放器buffer,这个选项常见于实时流媒体播放场景
-vf filter_graph    set video filters	//视频滤镜设置
-rdftspeed msecs    rdft speed	
-default            generic catch all option
-acodec decoder_name  force audio decoder	//强制使用设置的音频解码器
-scodec decoder_name  force subtitle decoder	//强制使用设置的字幕解码器
-vcodec decoder_name  force video decoder	//强制使用设置的视频解码器
-find_stream_info   read and decode the streams to fill missing information with heuristics

......
......
......

三、命令测试实例

1、视频从第30秒开始播放,播放10秒钟:ffplay -ss 30 -t 10 1.mp4
在这里插入图片描述
2、设置播放器的窗口显示标题:ffplay -window_title "Hello World" 1.mp4
在这里插入图片描述
3、打开网络直播流:ffplay -window_title "播放测试" rtmp://up.v.test.com/live/stream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝勒里恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值