速通FFmpeg入门

初识:

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次。

  2. 播放 pm.mp4 ,播放完成后自动退出

    bash 复制代码
    ffplay -autoexit pm.mp4
  3. 以 320 x 240 的大小播放 test.mp4

    bash 复制代码
    ffplay -x 320 -y 240 pm.mp4
  4. 将窗口标题设置为 "myplayer",循环播放 2 次

    bash 复制代码
    ffplay -window_title myplayer -loop 2 pm.mp4
  5. 播放 双通道 32K 的 PCM 音频数据

    bash 复制代码
    ffplay -f s16le -ar 32000 -ac 2 test.pcm

播放示例:

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

音画同步

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

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

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

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

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

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

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

相关推荐
GeniuswongAir8 小时前
苹果电脑上启动一个 RTSP 推流,用来做测试
ffmpeg
Benny的老巢11 小时前
n8n工作流通过Execute Command用FFmpeg处理音频,报错 stderr maxBuffer length exceeded的解决方案
ffmpeg·音频合成·n8n·n8n工作流·execute command
七夜zippoe2 天前
Spring Data JPA原理与实战 Repository接口的魔法揭秘
java·ffmpeg·事务·jpa·repository
Benny的老巢2 天前
n8n工作流中FFmpeg 视频截取失败排查:文件路径和参数顺序错误解决方案
chrome·ffmpeg·音视频
RockWang.3 天前
【配置】FFmpeg配置环境ubuntu踩坑记录。
ffmpeg
王者鳜錸3 天前
Java使用FFmpeg获取音频文件时长:完整实现与原理详解
java·开发语言·ffmpeg·音频时长
桃杬3 天前
用现代 C++ 封装 FFmpeg:从摄像头采集到 H.264 编码的完整实践
c++·ffmpeg·h.264
cvcode_study4 天前
FFmpeg 工具基础
ffmpeg
1nv1s1ble4 天前
记录一个`ffmpeg`的`swscale`库crash的例子
ffmpeg
CodeOfCC4 天前
C++ 实现ffmpeg解析hls fmp4 EXT-X-DISCONTINUITY并支持定位
开发语言·c++·ffmpeg·音视频