使用 FFmpeg 进行视频录制、格式转换与字幕生成的完整工作流程

本文详细记录了在视频录制、格式转换和字幕生成过程中常用的 FFmpeg 命令。首先,介绍了在 OBS 中录制视频时推荐使用 MKV 格式的原因,并提供了将 MKV 格式转换为 MP4 的方法。接着,介绍了如何提取音频并将其转换为适合字幕识别的 16kHz WAV 格式音频,最后,展示了如何使用 Whisper.cpp 生成字幕文件。通过这些步骤,您可以轻松实现视频的完整处理工作流程,帮助提高工作效率。

阅读时长: 2 分钟
共 694字
作者: eimoon.com

在进行视频录制和添加字幕的工作流程中,经常需要使用 FFmpeg 进行各种格式转换。但是不能每次都问chagpt,因此记录一下,加深下记忆,也方便日后查阅。

一、录制视频格式选择

在使用 OBS 进行视频录制时,虽然可以直接设置输出格式为 MP4,但建议使用 MKV 格式。原因如下:

  • MKV 格式更安全,即使录制过程中意外关机,已录制的内容仍然可以播放
  • MKV 支持更多的编码选项
  • 可以轻松转换为其他格式

如果直接设置为 MP4 格式,OBS 会显示警告信息: alt text

二、视频格式转换方法

因为final cut pro 导入不支持mkv,所以在录制完成后,需要将mkv转换为 mp4格式。

1.obs内置转封装

OBS 提供了便捷的转封装功能:

  • 打开 OBS
  • 在菜单中选择"文件" -> “重新封装录像” alt text

2.命令行修改

使用ffmpeg,转换mkvmp4就比较简单,一行命令就可以解决了。

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 生成字幕文件
  • 在视频编辑软件中导入视频和字幕

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计