分类
工具

FFMPEG 笔记

记录一些用到的 FFMPEG 命令。

截取视频

ffmpeg -i abc.mp4 -ss 3:13 -to 2:41:13 -c copy output.mp4
  • -i 输入文件
  • -ss 开始时间
  • -to 结束时间
  • -c copy 直接截取

这样的截取方式,如果源视频的关键帧间隙很大,可能出现因缺失第一个关键帧导致的黑屏。此时,可以考虑用 -c:v libx264 之类的参数重新编码。

合并

ffmpeg -f concat -safe 0 -i files.txt -c copy -y output.wav

其中,files.txt 是所有待合并的文件,以以下的形式记录:

file /path/to/wav/1.wav
file /path/to/wav/2.wav
....

转换格式

转换格式很简单,有输入有输出,ffmpeg 会根据它们的扩展名自动选择合适的编码器,生成通用性最好的目标文件。比如 wav 2 mp3:

ffmpeg -i a.wav a.mp3

如果需要截取或者使用特定的编码器,那么就按照一般的用法添加参数即可,比如 flv 2 mp4:

ffmpeg -i 1.flv -c:v libx264 -crf 19 -strict experimental 1.mp4

其中,-c:v 是“视频编码器”的意思,音频编码器就是 -c:acrf 是质量,最小越好,取值范围是 18 -28。类似的,rm 2 MP4:

ffmpeg -i ss.rm -c:v libx264 -c:a aac -b:a 32k -strict experimental ss.avi

在 Ubuntu 下不能使用 libfaac,只能使用 aac。还要调整级别,-strict -2 不行,必须是 -strict experimental

缩放

ffmpeg -i input.mp4 -vf scale=320:-1 -strict -2 output.mp4

好吧,这次 -strict -2 好使了。如果报错,可以试着把 -1 改成 -2

裁剪画面

ffmpeg -i input.mp4 -filter:v "crop=500:1080:1420:0" output.mp4

调整声音

有些视频声音太小,需要调整一下:

ffmpeg -i input.mp4 -filter:a "volume=N" output.mp4

其中,N 可以是百分比,比如 1.0(一倍,不变),2.0(两倍);或者是加减的分贝,比如 10dB(增加10分贝),-20dB(减少20分贝)。不过根据我实地测试,调整后的视频的平均音量并不完全是调整的分贝。

获取平均音量:

ffmpeg -i input.mp4 -filter:a volumedetect -f null /dev/null 

meathill

爱编程,爱旅游,爱吐槽。
今年的目标是完成并运营至少一个 Side Project。
《Electron + Vue 实战开发》龟速创作中……

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据