使用 whisper和ffmpeg
来烧录中英文双语字幕,可以通过以下几个步骤来修改你的代码。主要修改的地方是生成字幕的方式,将字幕通过 ffmpeg
的命令行工具烧录到视频中。通过生成字幕文件(.srt
)然后用 ffmpeg
将字幕直接烧录到视频里。
主要步骤:
- 生成英文和简体中文字幕的
.srt
文件。 - 使用
ffmpeg
将字幕烧录到视频中。
代码:
import whisper
import os
from datetime import
import torch
from deep_translator import GoogleTranslator
import subprocess
def extract_audio(video_path, audio_path):
"""从视频中提取音频"""
try:
video = VideoFileClip(video_path)
video.audio.write_audiofile(audio_path)
video.close()
except Exception as e:
print(f"音频提取错误: {
str(e)}")
raise
def generate_srt(segments, output_srt):
"""生成SRT格式字幕文件,同时生成中英文双语字幕"""
# 代理设置
proxies = {
'http': 'http://127.0.0.1:10800', # 根据你的代理设置修改端口
'https': 'http://127.0.0.1:10800' # 根据你的代理设置修改端口
}
# 使用 deep-translator 进行翻译
translator = GoogleTranslator(source='en', target='zh-CN', proxies