FFmpeg 提供了一整套音视频转换、录制、处理的解决方案,很多播放器也使用 FFmpeg 来处理,比如前面介绍过的 VLC 播放器,youtube-dl 和 BBDown 也使用 FFmpeg 对音视频进行处理。
FFmpeg 的安装
1、Windows
Windows 下的安装比较方便,下载一个编译好的 FFmpeg,然后解压到一个文件夹下,把这个文件夹下的 bin 目录添加到环境变量里即可。
2、Linux
Linux 下有两种安装方法,一种是使用包管理工具,比如 yum,但是版本往往比较旧。另一种方法就是自己编译,自己编译比较复杂,可以参考玩客以前写的 FFmpeg 编译安装教程。
3、macOS
macOS 下建议使用 brew 来安装,brew -install ffmpeg
即可。
FFmpeg 常见操作
1、查看文件信息
ffmpeg -i file.mp4 -hide_banner
2、添加字幕
字幕分两种,软字幕和硬字幕,软字幕也称为“外挂字幕”,可以手动选择隐藏或者显示,而硬字幕也称为“内嵌字幕”,像给视频添加了一层滤镜,无法隐藏和分离。youtube-dl 和 yt-dlp 添加的是软字幕,在一些播放器上不能显示。
添加软字幕的命令:
ffmpeg -i video.mp4 -i zimu.srt -c copy output.mp4
添加硬字幕的命令:
ffmpeg -i video.mp4 -vf subtitles=zimu.src output.mp4
3、提取音频
提取音频,添加一个 -vn 参数即可,表示去掉视频;也可以使用其他参数对音频进行更改。
-ab
:音频比特率,常见的有128k、192k、256k、320k
-ar
:音频的采样率,常见的有22050、44100、48000
-ac
:声道数量
-f
:可以指定音频的格式,一般常用的格式会自动识别
ffmpeg -i input.mp4 -vn output.mp3 ffmpeg -i input.mp4 -ab 192k -f mp3 output.mp3
4、更改视频的分辨率
-s
:缩放视频
ffmpeg -i input.mp4 -s 1280x700 -c:a copy output.mp4
示例中添加了 -c:a copy
来保证音频的编码不变
5、旋转视频
将视频顺时针旋转 90 度:
ffmpeg -i input.mp4 -vf "rotate=90*PI/180"
将视频顺时针旋转 180 度,即上下颠倒:
ffmpeg -i input.mp4 -vf "rotate=PI"
6、转换编码格式
将视频转换成 H.264 编码:
ffmpeg -i input.mp4 -c:v libx264 output.mp4
将视频转换成 H.265 编码:
ffmpeg -i input.mp4 -c:v libx265 output.mp4
扩展阅读:
你硬字幕里srt打成src了