速通FFmpeg入门

2024-09-08 21:39:21 浏览数 (3)

初识:

ffmpeg是一款非常好用处理音视频的工具包。那什么是ffmpeg呢?FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,可以结合开发一些处理视频音频的功能。

安装:

  1. 在官网上下载安装压缩包,解压到本地,添加环境变量
  2. 在cmd终端中输入 ffmpeg -version ,查看是否能正确输出版本号。

使用:

基本指令:

一.查看FFmpeg支持的编码器
代码语言:bash复制
ffmpeg configure -encoders
二.查看FFmpeg支持的解码器
代码语言:bash复制
ffmpeg configure -decoders
三.查看FFmpeg支持的通信协议
代码语言:bash复制
ffmpeg configure -protocols
四.查看FFmpeg所支持的音视频编码格式、文件封装格式与流媒体传输协议
代码语言:bash复制
ffmpeg configure --help

FFplay:

介绍:

ffplay是以FFmpeg框架为基础,外加渲染音视频的库libSDL构建的媒体文件播放器。

播放音频文件的命令:
代码语言:bash复制
ffplay shy.mp3

这时候就会弹出来一个窗口,一边播放MP3文件,一边将播放音频的图画到该窗口上。针对该窗口的操作如下:

  1. 点击该窗口的任意一个位置,ffplay会按照点击的位置计算出时间的进度,然后seek到计算出来的时间点继续播放。
  2. 按下键盘的左键默认快退10s,右键默认快进10s,上键默认快进1min,下键默认快退1min。
  3. 按ESC就退出播放进程,按W会绘制音频的波形图。播放视频文件的命令:
代码语言:bash复制
ffplay pm.mp4

这时候,就会在新弹出的窗口上播放该视频了。

  1. 如果想要同时播放多个文件,只需在多个命令行下同时执行ffplay就可以了。
  2. 如果按s键就可以进入frame-step模式,即按s键一次就会播放下一帧图像。

相关指令:

  1. 循环播放
代码语言:bash复制
ffplay pm.mp4 -loop 10

上述命令代表播放视频结束之后会从头再次播放,共循环播放10次。

  1. 播放 pm.mp4 ,播放完成后自动退出
代码语言:bash复制
ffplay -autoexit pm.mp4
  1. 以 320 x 240 的大小播放 test.mp4
代码语言:bash复制
ffplay -x 320 -y 240 pm.mp4
  1. 将窗口标题设置为 "myplayer",循环播放 2 次
代码语言:bash复制
ffplay -window_title myplayer -loop 2 pm.mp4
  1. 播放 双通道 32K 的 PCM 音频数据
代码语言:bash复制
ffplay -f s16le -ar 32000 -ac 2 test.pcm

播放示例:

代码语言:bash复制
ffplay -loop 1 -window_title ffplaytest -autoexit D:MyFolderMyDatavideo天才的发明,电力变压器的 内部结构,以及它是如何工作的?.mp4

音画同步

ffplay也是一个视频播放器,所以不得不提出来的一个问题是:音画同步。ffplay的音画同步的实现方式其实有三种,分别是:以音频为主时间轴作为同步源,以视频为主时间轴作为同步源,以外部时钟为主时间轴作为同步源。

代码语言:bash复制
ffplay pm.mp4 -sync audio

上面这个命令显式的指定了使用以音频为基准进行音视频同步的方式播放视频文件,当然这也是ffplay的默认播放设置。

代码语言:bash复制
ffplay pm.mp4 -sync video

上面这个命令显式的指定了使用以视频为基准进行音视频同步的方式播放视频文件。

代码语言:bash复制
ffplay pm.mp4 -sync ext

上面这个命令显式的指定了使用外部时钟为基准进行音视频同步的方式播放视频文件。

0 人点赞