一、安装ffmpeg
- 安装homebrew
打开https://brew.sh/,复制/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"输入到终端。 - 安装ffmpeg
在终端输入如下命令:brew install ffmpeg - 验证是否安装成功
在终端输入该命令可查看版本:ffmpeg -version,注意输入时要有空格,否则会报错
[NULL @ 0x7f9f84808800] Unable to find a suitable output format for ‘version’
version: Invalid argument
这种安装方式的好处是可以不配置环境变量。
二、Ffmpeg:
[提供转码/转封装等功能]
- 视频格式转换:ffmpeg -i input.avi output.mp4(avi文件转换成mp4)
- 提取音频:ffmpeg -i input.mp4 -acodec copy -vn output.aac
- 提取视频:ffmpeg -i input.mp4 -vcodec copy -an output.mp4
- 音视频合成:ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
- 视频剪辑:ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
- 视频无损旋转:ffmpeg -i input.mp4 -metadata:s:v rotate="-90" -codec copy output_success.mp4
- 将视频转为图片:ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
- 音频替换:ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental -map 0:v :0 -map 1:a : 0 output.mp4
三、Ffprobe:
[多媒体分析器]
-
查看视频容器的信息,使用-show_format
ffprobe -show_format output.mp4 -
查看视频流的信息,使用-show_streams
ffprobe -show_streams output.mp4 -
使用-print_format参数可以设置输出内容的格式化形式,如json、xml或csv等
ffprobe -show_format -print_format json=compact=0 output.mp4 -
如果不使用-hide_banner参数,输出内容中将包含程序编译信息
ffprobe -hide_banner -show_format output.mp4
-
如果不使用-v quiet参数,输出内容中将包含调试信息。调试信息的详细程度也可以通过-v info/-v verbose/-v debug等具体参数来调节
ffprobe -v quiet -show_format output.mp4
四、Ffplay:
[负责播放相关操作]
参数 | 说明 |
---|---|
-ss | 设置初始播放位置 |
-t | 设置播放时长 |
-window_title | 自定义窗口标题 |
-x | 强制窗口显示宽度 |
-y | 强制窗口显示长度 |
-fs | 强制全屏播放 |
-noborder | 窗口无边框播放 |
-an | 屏蔽音频 |
-vn | 屏蔽视频 |
-nodisp | 关闭图形化显示窗口 |
-autoexit | 退出视频播放窗口 |
-showmode | 设置视频播放模式 |
-sn | 屏蔽字幕(暂时没发现效果) |
-loop | 设置循环播放次数 |
-left | 设置播放器窗体在电脑屏幕的初始横坐标,单位为像素 |
-top | 设置播放器窗体在电脑屏幕的初始纵坐标,单位为像素 |
-volume | 设置视频播放音量 |
- 播放视频:ffplay input.mp4
- 从视频的第30秒开始播放,播放10秒后停止(ss设定开始位置,t代表播放时长):ffplay -ss 30 -t 10 input.mp4
- 自定义窗口显示名称:ffplay -window_title "自定义窗口名称" input.mp4
- 强制设置视频显示窗口的宽高:ffplay -x 1000 -y 1000 input.mp4
- 强制全屏显示:ffplay -fs input.mp4
- 窗口无边框:ffplay -noborder input.mp4
- 屏蔽音频:ffplay -an input.mp4
- 屏蔽视频:ffplay -vn input.mp4
- 关闭图形化显示窗口:ffplay -nodisp input.mp4
- 退出视频播放:ffplay -autoexit output.mp4
- 设置循环播放该视频3次:ffplay input.mp4 -loop 3
- 设置播放窗口在电脑屏幕左侧:ffplay input.mp4 -left 0
- 设置播放窗口在电脑屏幕顶部:ffplay input.mp4 -top 0
- 设置视频播放音量50:ffplay input.mp4 -volume 50
- 查看视频如何运动:ffplay -flags2 +export_mvs output.mp4 -vf codecview=mv=pf+bf+bb
参数 | 说明 |
---|---|
pf | P帧向前运动估计显示 |
bf | B帧向前运动估计显示 |
bb | B帧向后运动估计显示 |
如果按s键则可以进入 frame-step模式,即按s键一次就会播放下一帧图像。
-showmode
这个选项可以控制播放器显示模式。-showmode 0表示显示视频, -showmode 1表示显示音频波形,-showmode 2表示显示音频带宽(实时离散傅里叶变换)。在ffplay播放视频时,可以通过按键w来控制显示模式切换。
- 将视频数据以视频的形式显示出来(默认播放形式):ffplay -showmode 0 output.mp4
- 将音视频数据以音频波形的形式显示出来:ffplay -showmode 1 output.mp4
- 将音视频数据以音视频带宽形式显示:ffplay -showmode 2 output.mp4