FFmpeg 是一个视频、音频处理工具。
例子
录屏
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 output.mp4
录音
ffmpeg -f pulse -i default output.wav
可使用 pulsemixer
设置 default 设备。
加速
可用于音频和视频。加速音频 1.2 倍[1]:
ffmpeg -i input.mp3 -filter:a atempo=1.2 -vn output.mp3
音频去噪
可以使用 afftdn
filter 进行去噪。
示例:
ffmpeg -i input.webm -af afftdn=nr=50:nf=-40 output.webm
-af
表示使用 audio filterafftdn
是 filter 的名字nr=50
和nf=-40
是afftdn
的两个参数,其他参数可在 详细的说明 中查看,或者在man ffmpeg-filters
中搜索afftdn
两个视频左右拼接
ffmpeg -i input1.mov -i input2.mov -filter_complex hstack output.mov
需要上下拼接则将 hstack
改为 vstack
。
连接视频
先创建一个文件 inputs
cat > inputs <<EOF
file '/path/to/input1.mp4'
file './relative/input2.mp4'
EOF
然后执行命令 [2]
ffmpeg -f concat -safe 0 -i inputs -c copy output.mp4
或者使用 bash 写一个脚本 vidcat。
vidcat input1.mp4 input2.mp4 -o output.mp4
从视频中提取音频
ffmpeg -i input.flv -vn -acodec copy output.aac
-vn
: no video-acodec copy
: use the same audio stream that's already in there
剪裁
可用于音频和视频。从第 10 秒开始,持续 6.5 秒:
ffmpeg -ss 10 -t 6.5 -i input.mp3 output.mp3
给视频去抖动
https://github.com/georgmartius/vid.stab
ffmpeg -i input.mp4 -vf vidstabdetect -f null - ffmpeg -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 output.mp4