FFmpeg

Weirane讨论 | 贡献2021年4月14日 (三) 06:14的版本 (创建页面,内容为“FFmpeg 是一个视频、音频处理工具。 == 例子 == === 录屏 === ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 output.mp4 === 录…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

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]。可用于音频和视频。加速音频 1.2 倍:

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 filter
  • afftdn 是 filter 的名字
  • nr=50` 和 `nf=-40` 是 `afftdn` 的两个参数,其他参数可在 详细的说明 中查看,或者在 `man ffmpeg-filters` 中搜索 `afftdn

两个视频左右拼接

ffmpeg -i input1.mov -i input2.mov -filter_complex hstack output.mov

需要上下拼接则将 hstack 改为 vstack

连接视频

参考 [2]。先创建一个文件 inputs

cat > inputs <<EOF
file '/path/to/input1.mp4'
file './relative/input2.mp4'
EOF

然后执行命令

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

参考