音视频学习之ffplay基础命令整理

简介: 音视频学习之ffplay基础命令整理

查看网站:ffplay Documentation (ffmpeg.org)

1:ffplay基础命令:

ffplay -version
ffplay -h

2:ffplay播放控制:

'q, ESC'            退出
'f'                 全屏
'p, SPC'            暂停
'w'                 切换显示模式(视频/音频波形/音频频带)
's'                 步进到下一帧
'left/right'        快退/快进 10 秒
'down/up'           快退/快进 1 分钟
'page down/page up' 跳转到前一章/下一章(如果没有章节,快退/快进 10 分钟)
'mouse click'       跳转到鼠标点击的位置(根据鼠标在显示窗口点击的位置计算百分比)

3:ffplay命令选项:

基本格式: ffplay [选项] [‘输入文件’]

相关主要选项:

1:主要操作基础命令:

-x width          强制显示宽带
-y height           强制显示高度
-video_size size      设置帧尺寸 设置帧尺寸大小。
  适用于类似原始YUV等没有包含帧大小(WxH)的视频。
  例如:ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
-pixel_format format    设置像素格式。
-volume vol         设置起始音量。音量范围[0 ~100]
-window_title title     设置窗口标题(默认为输入文件名)
-loop number        设置播放循环次数
-showmode mode        设置显示模式,可用的模式值:0 显示视频,1 显示音频波形,2 显示音频频谱。缺省为0,如果视频不存在则自动选择2
-vf filtergraph       设置视频滤镜
-af filtergraph       设置音频滤镜
-f fmt            强制使用设置的格式进行解析。比如-f s16le
-fs           以全屏模式启动
-an           禁用音频(不播放声音)
-vn           禁用视频(不播放视频)
-sn           禁用字幕(不显示字幕)
-nodisp         关闭图形化显示窗口,视频将不显示
-noborder         无边框窗口
-t duration     设置播放视频/音频长度,时间单位如 -ss选项
-ss pos       跳转到指定的位置,注意时间单位:
    比如:'55' 55 seconds, 
      '12:03:45' ,12 hours, 03 minutes and 45 seconds, 
      '23.189' 23.189 second
-bytes              按字节进行跳转(0=off 1=on -1=auto)。
-seek_interval interval     自定义左/右键定位拖动间隔(以秒为单位),默认值为10秒(代码没有看到实现)

2:较高级的命令:

-stats          打印多个回放统计信息,包括显示流持续时间,编解码器参数,流中的当前位置,以及音频/视频同步差值。
  默认情况下处于启用状态,要显式禁用它则需要指定-nostats。。
-fast           非标准化规范的多媒体兼容优化。
-genpts         生成pts。
-sync type        同步类型 将主时钟设置为audio(type=audio),video(type=video)或external(type=ext),默认是audio为主时钟。
-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解码
◼ -acodec codec_name          强制使用设置的音频解码器进行音频解码
◼ -vcodec codec_name          强制使用设置的视频解码器进行视频解码
◼ -scodec codec_name          强制使用设置的字幕解码器进行字幕解码
◼ -autorotate         根据文件元数据自动旋转视频。值为0或1 ,默认为1。
◼ -framedrop          如果视频不同步则丢弃视频帧。当主时钟非视频时钟时默认开启。
    若需禁用则使用 -noframedrop
◼ -infbuf             不限制输入缓冲区大小。尽可能快地从输入中读取尽可能多的数据。
    播放实时流时默认启用,如果未及时读取数据,则可能会丢弃数据。
    此选项将不限制缓冲区的大小。若需禁用则使用 -noinfbuf

3:ffplay 播放视频样例:

◼ 播放本地文件
  ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4
  ffplay buweishui.mp3
◼ 播放网络流
  ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc
◼ 强制解码器
  mpeg4解码器:ffplay -vcodec mpeg4 test.mp4
  h264解码器:ffplay -vcodec h264 test.mp4 
◼ 禁用音频或视频
  禁用音频:ffplay test.mp4 -an
  禁用视频:ffplay test.mp4 -vn
◼ 播放YUV数据
  ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
◼ 播放RGB数据
  ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb
  ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb
◼ 播放PCM数据
  ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
    -ar set audio sampling rate (in Hz) (from 0 to INT_MAX) (default 0)
    -ac set number of audio channels (from 0 to INT_MAX) (default 0)

4:ffplay简单过滤器:

◼ 视频旋转
  ffplay -i test.mp4 -vf transpose=1
◼ 视频反转
  ffplay test.mp4 -vf hflip
  ffplay test.mp4 -vf vflip
◼ 视频旋转和反转
  ffplay test.mp4 -vf hflip,transpose=1
◼ 音频变速播放
  ffplay -i test.mp4 -af atempo=2
◼ 视频变速播放
  ffplay -i test.mp4 -vf setpts=PTS/2
◼ 音视频同时变速
  ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
◼ 更多参考
  http://www.ffmpeg.org/ffmpeg-filters.html

参考免费课程链接:https://ke.qq.com/course/417774?flowToken=1040954

目录
相关文章
|
2月前
|
Windows
【音视频 学习 ffmpeg】环境准备
【音视频 学习 ffmpeg】环境准备
|
2月前
|
Ubuntu
音视频ubuntu安装ffmpeg6.0简略笔记
音视频ubuntu安装ffmpeg6.0简略笔记
119 0
|
2天前
|
Web App开发 缓存 Linux
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
《FFmpeg开发实战》书中第10章提及轻量级流媒体服务器MediaMTX,适合测试RTSP/RTMP协议,但不适合生产环境。推荐使用SRS或ZLMediaKit,其中SRS是国产开源实时视频服务器,支持多种流媒体协议。本文简述在华为欧拉系统上编译安装SRS和FFmpeg的步骤,包括安装依赖、下载源码、配置、编译以及启动SRS服务。此外,还展示了如何通过FFmpeg进行RTMP推流,并使用VLC播放器测试拉流。更多FFmpeg开发内容可参考相关书籍。
11 2
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
|
1月前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
41 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
1月前
|
Web App开发 安全 Linux
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
《FFmpeg开发实战》书中介绍轻量级流媒体服务器MediaMTX,但其功能有限,不适合生产环境。推荐使用国产开源的ZLMediaKit,它支持多种流媒体协议和音视频编码标准。以下是华为欧拉系统下编译安装ZLMediaKit和FFmpeg的步骤,包括更新依赖、下载源码、配置、编译、安装以及启动MediaServer服务。此外,还提供了通过FFmpeg进行RTSP和RTMP推流,并使用VLC播放器拉流的示例。
57 3
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
|
1月前
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
64 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
2月前
|
存储 缓存 调度
FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频
《FFmpeg开发实战》第10章示例playsync.c在处理音频流和视频流交错的文件时能实现同步播放,但对于分开存储的格式,会出现先播放全部声音再快速播放视频的问题。为解决此问题,需改造程序,增加音频处理线程和队列,以及相关锁,先将音视频帧读入缓存,再按时间戳播放。改造包括声明新变量、初始化线程和锁、修改数据包处理方式等。代码修改后在playsync2.c中,编译运行成功,控制台显示日志,SDL窗口播放视频并同步音频,证明改造有效。
46 0
FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频
|
2月前
|
编解码 索引 Windows
FFMPEG常用指令整理(未完结)
ffmpeg是通用的媒体转换器,可以将广泛的输入(包括实时的抓取和记录设备)-过滤和转换为我们想要的输出格式文件。
73 0
|
2月前
【音视频 ffmpeg 学习】 跑示例程序 持续更新中
【音视频 ffmpeg 学习】 跑示例程序 持续更新中
|
2月前
|
存储 编解码 算法
ffmpeg笔记(一)音视频基础
ffmpeg笔记(一)音视频基础
100 0