在进行视频录制和添加字幕的工作流程中,经常需要使用 FFmpeg 进行各种格式转换。但是不能每次都问chagpt,因此记录一下,加深下记忆,也方便日后查阅。
一、录制视频格式选择
在使用 OBS 进行视频录制时,虽然可以直接设置输出格式为 MP4,但建议使用 MKV 格式。原因如下:
- MKV 格式更安全,即使录制过程中意外关机,已录制的内容仍然可以播放
- MKV 支持更多的编码选项
- 可以轻松转换为其他格式
如果直接设置为 MP4 格式,OBS 会显示警告信息:
二、视频格式转换方法
因为final cut pro 导入不支持mkv,所以在录制完成后,需要将mkv转换为 mp4格式。
1.obs内置转封装
OBS 提供了便捷的转封装功能:
- 打开 OBS
- 在菜单中选择"文件" -> “重新封装录像”
2.命令行修改
使用ffmpeg
,转换mkv
为mp4
就比较简单,一行命令就可以解决了。
ffmpeg -i 1.mkv -c copy 1.mp4
这个命令的特点是:
- 使用 -c copy 参数进行无损转换
- 转换速度快,因为只是更改容器格式
- 不会重新编码视频和音频流
三、提取音频
在进行字幕识别之前,需要提取符合要求的音频。我本地使用的 Whisper.cpp
,它需要 16kHz
采样率的 WAV 格式音频。
从 MKV 提取音频:
ffmpeg -i 11.mkv -vn -ar 16000 -ac 1 -acodec pcm_s16le output.wav
或者从 MP4 提取音频:
ffmpeg -i input.mp4 -vn -ar 16000 -ac 1 -acodec pcm_s16le output.wav
参数说明:
- -vn: 禁用视频
- -ar 16000: 设置音频采样率为 16kHz
- -ac 1: 设置为单声道
- -acodec pcm_s16le: 使用 PCM 16bit 编码
四、字幕生成
使用 Whisper.cpp 生成字幕
./build/bin/whisper-cli -l zh -m models/ggml-model-whisper-medium-q5_0.bin -f /your/folder/output.wav -osrt
重要参数说明:
- -l zh: 设置识别语言为中文
- -m: 指定模型文件路径
- -f: 指定音频文件路径
- -osrt: 输出 SRT 格式字幕文件
五、完整工作流程
- 使用 OBS 录制视频,选择 MKV 格式
- 将 MKV 转换为 MP4(如果需要)
- 提取并转换音频为 16kHz WAV 格式
- 使用 Whisper.cpp 生成字幕文件
- 在视频编辑软件中导入视频和字幕
关注我获取更多资讯

📢 公众号

💬 个人号