目录

    

    前言

    实战

    播放音频

    播放视频

    总结



前言

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



实战

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



播放音频

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

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

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

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

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

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

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

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

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

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

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

答案是肯定的!

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

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

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



播放视频

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

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

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

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

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

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

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

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

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

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

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



总结

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


本文分享自微信公众号 - 玩转音视频(gh_5da216074f34)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

05-04 20:09