Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ffplay的正确打开方式(三剑客之一)

ffplay的正确打开方式(三剑客之一)

作者头像
liuzhen007
发布于 2021-06-29 07:48:52
发布于 2021-06-29 07:48:52
6K00
代码可运行
举报
文章被收录于专栏:流媒体音视频流媒体音视频
运行总次数:0
代码可运行

目录

前言

实战

播放音频

播放视频

总结


前言

FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffplay,它是FFmpeg用于播放音视频文件的播放器。


实战

ffplay既可以播放音频,又可以播放视频,是从事音视频相关开发的工作人员常用的基础工具之一。掌握ffpaly的使用是非常有必要的。接下来,我们就一起看一下具体怎么使用ffplay。


播放音频

首先我们直接用ffplay播放一首音乐,这首音乐就选我自己比较喜欢的《少年》。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay 少年.mp3

播放过程中会动态的展示一些数据,表明音乐文件的基本媒体信息,比如,音频编码格式是LAME,音频采样率44.1KHz,立体声双声道,采样格式是fltp,码率是128kb/s。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Input #0, mp3, from '少年.mp3':
  Duration: 00:03:56.15, start: 0.025057, bitrate: 128 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -8.000000, track peak - unknown, album gain - unknown, album peak - unknown,
 319.48 M-A:  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0

同时,播放过程中还会出现一个频谱图,用来实时显示音频的频谱情况,具体如下图所示:

其实,图像模式也是可以选择的,如果想看波形图的话,可以运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay -showmode 1 少年.mp3

就会出现如下图所示的动态波形图:

播放图形的显示模式有两种,一种是波形图,showmode=1,一种是频谱图,showmode=2,音乐默认播放的是频谱图。如果你不想显示任何播放图形,也是可以的,取showmode=0,运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay -showmode 0 少年.mp3

这样就只有终端的输出内容了,看图:

了解音频的同学应该都知道音频的原始格式是PCM数据,那么问题来了,ffplay可不可以播放PCM数据的音频文件呢?

答案是肯定的!

但是需要明确指定格式、采样率、声道数三个重要参数,如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay audio-pcm.pcm -f f32le -channels 2 -ar 48000

audio-pcm.pcm文件的采样格式必须是f32le,声道数是2,采样率是48kHz才能正常播放。

如果缺少PCM实验数据,可以从这里下载:https://download.csdn.net/download/liuzehn/12585149。


播放视频

接下来看看怎样播放视频文件,运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.mp4

这样,一个从抖音上截取的视频就自动播放了:

不仅如此,当视频文件存在多路音频或者多路视频时,ffplay还可以指定播放哪路音频或者视频,默认播放index=0的音频和视频,比如指定播放第二路音频:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.mp4 -ast 1

比如指定播放第二路视频:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.mp4 -vst 1

另外,大家都知道音频和视频同时存在时,播放的时候就面临音画同步的问题,那么ffplay是怎么处理的呢?其实ffplay默认是以音频时间戳为基准的,当然我们也可以指定以视频或者系统时间戳为基准,对应的命令如下:

以视频时间戳为播放基准的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.mp4 -sync video

以系统时间戳为播放基准的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.mp4 -sync ext

刚才,我们已经知道ffplay可以播放音频原始数据PCM格式文件,那么ffplay可以播放视频原始数据YUV格式的视频文件吗?

答案也是可以的。命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay test.yuv -f rawvideo -pixel_format yuv420p -s 544*960

如果缺少YUV实验数据,可以从这里下载:https://download.csdn.net/download/liuzehn/12596648 。


总结

至此,我们已经见识了ffplay的强大之处,更多技能还没有陈述完,大家自己尝试解锁吧。 最后推荐大家使用如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./ffplay -h
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玩转音视频 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ffprobe的正确打开方式(三剑客之一)
FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffprobe,它是FFmpeg用于查看媒体文件格式信息的强大工具。
liuzhen007
2021/06/29
9.1K0
音视频八股文(3)--ffmpeg常见命令(2)
* 播放本地 MP4 视频文件 `test.mp4` 的命令,从第 2 秒位置开始播放,播放时长为 10 秒,并且在窗口标题中显示 "test time":
福大大架构师每日一题
2023/04/22
2.2K0
ffmpeg的正确打开方式(三剑客之一)
FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffmpeg,它是FFmpeg用于音视频转码,转封装、转推流的基础工具。
liuzhen007
2021/06/29
3.4K0
ffplay 命令_ffprobe命令
-x width 强制显示宽带。 -y height 强制显示高度。 -s size 帧尺寸 设置显示帧存储(WxH格式),仅适用于类似原始YUV等没有包含帧大小(WxH)的视频。该参数已经被废弃,请尝试用-video_size代替 -fs 以全屏模式启动。 -an 禁用音频(不播放声音) -vn 禁用视频(不播放视频) -sn 禁用字幕(不显示字幕) -ss pos 根据设置的秒进行定位拖动,注意时间单位:比如’55’ 55 seconds, ’12:03:45′ ,12 hours, 03 minutes and 45 seconds, ‘23.189’ 23.189 second -t duration 设置播放视频/音频长度,时间单位如 -ss选项 -bytes 按字节进行定位拖动。 -seek_interval interval 自定义左/右键定位拖动间隔(以秒为单位),默认值为10秒 -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 设置音频滤镜
全栈程序员站长
2022/11/17
2.6K0
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。
音视频开发进阶
2020/03/26
1.2K0
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
FFmpeg开发笔记(三)FFmpeg的可执行程序介绍
外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。 开源的FFmpeg框架提供了三个可执行程序,分别是ffmpeg、ffplay和ffprobe,下面分别展开详细介绍。
aqi00
2023/04/28
1.4K0
FFmpeg开发笔记(三)FFmpeg的可执行程序介绍
速通FFmpeg入门
ffmpeg是一款非常好用处理音视频的工具包。那什么是ffmpeg呢?FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,可以结合开发一些处理视频音频的功能。
Echo_Wish
2024/09/08
2640
速通FFmpeg入门
【FFmpeg】ffplay 命令行参数 ④ ( 修改窗口标题 -window_title 参数 | 设置播放循环次数 | 设置显示模式 -showmode 参数 | 设置视频滤镜 -vf 参数 )
ffplay 命令的 -window_title 参数 用于设置 播放视频窗口 的 标题 , 在 同时 打开多个 播放器 窗口时 , 可用于识别 不同的 窗口 ;
韩曙亮
2024/02/05
1K0
【FFmpeg】ffplay 命令行参数 ④ ( 修改窗口标题 -window_title 参数 | 设置播放循环次数 | 设置显示模式 -showmode 参数 | 设置视频滤镜 -vf 参数 )
音视频编码相关名词详解
PAR - pixel aspect ratio(像素宽高比)大多数情况为1:1,就是一个正方形像素,否则为长方形像素
用户2929716
2018/08/23
1.7K0
音视频编码相关名词详解
FFmpeg使用手册 - ffplay 的常用命令
在编译FFmpeg源代码时,如果系统中包含了SDL-1.2版本时,会默认将ffplay编译生成出来,如果不包含SDL-1.2或者版本不是SDL-1.2时,无法生成ffplay文件,所以,生成如果想使用ffplay进行流媒体播放测试,是需要安装SDL-1.2的。 通常使用ffplay作为播放器,其实ffplay不但可以做播放器,同样可以作为很多图像化音视频数据的分析根据,通过ffplay可以看到视频图像的运动估计方向,音频数据的波形等,在本节将会有更多的参数进行介绍并举例。
用户3765803
2019/03/05
4.6K0
FFmpeg使用手册 - ffplay 的常用命令
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
(本文基本逻辑:ffmpeg 常用命令介绍 → ffplay 常用命令介绍 → ffprobe 常用命令介绍)
关键帧
2022/06/13
2.5K0
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
FFmpeg命令也就这几类了吧
FFmpeg作为多媒体处理领域的强大开源工具,提供了丰富的音视频处理命令,广泛用于视频转换、格式处理、流媒体传输等。FFmpeg操作基于命令行,灵活而高效,涵盖多种应用场景。本文将为您提供最全的FFmpeg命令讲解,从基础命令结构到各类详细应用示例,帮助您轻松掌握FFmpeg的实用技巧。
程序员的园
2024/11/14
4750
FFmpeg命令也就这几类了吧
Android FFmpeg系列05--音频解码与播放
在前面的连载系列中,我们分别用FFmpeg的软解和硬解两种方式解码了本地mp4文件的视频流并使用OpenGL渲染上屏
雪月清
2022/09/21
1.6K0
Android FFmpeg系列05--音频解码与播放
1.ffmpeg、ffplay、ffprobe命令使用
ffmpeg命令- 用于转码的应用程序, 也可以从url/现场音频/视频源抓取输入源
诺谦
2020/05/18
2.8K0
1.ffmpeg、ffplay、ffprobe命令使用
ffplay播放器移植VC的工程:ffplay for MFC
本文介绍一个自己做的FFPLAY移植到VC下的开源工程:ffplayfor MFC。本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。并且使用MFC做了一套简单的界面。它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等;以及一些简单的视频码流分析功能:视频解码分析和音频解码分析。通过本程序可以学习视频播放器原理,以及SDL和Windows消息机制。
全栈程序员站长
2022/09/12
1.2K0
ffplay播放器移植VC的工程:ffplay for MFC
《音视频开发进阶指南》—— 读书笔记
前言 之前偶然看到一个PPT,是一些视频特效的讲解。首页如下: PPT解析了模糊镜像、电击效果、灵魂出窍、动态晕影等视频处理效果,最后推荐作者自己写的书: 在“音视频进阶”、“唱吧核心架构开发”
落影
2018/04/27
2.6K0
《音视频开发进阶指南》—— 读书笔记
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
博客源码下载 : https://download.csdn.net/download/han1202012/89734548
韩曙亮
2024/09/17
1.3K0
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
音视频八股文(2)--ffmpeg常见命令(1)
2.将下载得到的包中的执行文件ffmpeg.exe、ffplay.exe和ffprobe.exe拷贝到C:\Windows目录下。这样,在命令行窗口中便可以直接访问这些可执行文件。
福大大架构师每日一题
2023/06/08
1.3K0
音视频八股文(2)--ffmpeg常见命令(1)
ffplay使用
简单的说,ffplay 是一个使用了 ffmpeg 和 sdl 库的、一个简单的可移植的媒体播放器。
全栈程序员站长
2022/07/04
6950
ffmpeg常用命令集锦
     在实际工作中,通常需要ffmpeg作为工具来验证一个问题,比如播放一个视频,提取一个码流,转码视频,转封格式等,用的时候才发现忘记了相关命令,Google一番花老大的力气才找到自己需要的命令行。本文总结常用的命令,并演示如何通过命令行的help用法去构建新的命令。
用户4148957
2022/06/14
4330
ffmpeg常用命令集锦
推荐阅读
相关推荐
ffprobe的正确打开方式(三剑客之一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验