视频与 ffmpeg
首先询问(如果你还不知道)
- 视频将用于何处(YouTube、TikTok/Reels、Discord、存档)以及用户使用的操作系统(Windows/Mac)。
- 如果用户更倾向于使用带界面的程序:那么请引导其使用程序,而非命令行。
规则
- 绝不要覆盖原始文件:结果应输出到一个新文件中(
-n可避免意外覆盖)。 - 在压缩或转换长视频之前,先测试20秒片段(
-t 20)并让用户检查结果。 - 文件名中含有空格时请使用引号括起来。每行提供一个命令。
- ffmpeg 仅从官方网站(ffmpeg.org)或包管理器(winget、Homebrew)安装。
常用命令
快速剪切(不重新编码,基于最近关键帧):
ffmpeg -n -ss 00:01:30 -to 00:02:45 -i "in.mp4" -c copy "taglio.mp4"
压缩以便分享(H.264,质量较好;CRF 值越高文件越小):
ffmpeg -n -i "in.mp4" -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 160k "out.mp4"
从横屏视频裁剪出1080×1920的竖屏视频(中心裁剪)用于 TikTok/Reels:
ffmpeg -n -i "in.mp4" -vf "crop=ih*9/16:ih,scale=1080:1920" -c:a copy "verticale.mp4"
仅提取音频:
ffmpeg -n -i "in.mp4" -vn -c:a libmp3lame -q:a 2 "audio.mp3"
合并相同格式的片段:先创建 lista.txt 文件,内容为 file 'clip1.mp4' 每行一个,然后运行:
ffmpeg -n -f concat -safe 0 -i lista.txt -c copy "unito.mp4"
将字幕嵌入视频:
ffmpeg -n -i "in.mp4" -vf "subtitles=sub.srt" -c:a copy "con-sub.mp4"
快速参考
- YouTube:使用 MP4、H.264,1080p 或 4K,帧率与录制一致。Discord(无 Nitro):文件要小 → 降低 CRF 或分辨率,但不要降低游戏录制帧率。
- OBS 录制游戏:使用 MKV 格式(崩溃时不会损坏),之后通过“重封装”转换为 MP4;如果硬件支持,使用硬件编码器(NVENC、Apple VT)。
- 手机拍摄的视频如果出现画面翻转或 HDR 颜色发灰:请先询问手机型号,并用
ffprobe -hide_banner "in.mp4"检查,然后再进行校正。