本文目录导读:

可以的!实用脚本完全可以用来给视频加字幕,而且有多种方式,取决于你的具体需求:
使用 FFmpeg(最常用)
FFmpeg 可以通过硬编码(将字幕嵌入视频)或软编码(作为独立流)添加字幕:
# 硬编码字幕(将字幕永久嵌入画面) ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt" output.mp4 # 软编码字幕(保留为可切换字幕流) ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4
使用 Python 脚本
通过 moviepy 库可以更灵活地控制字幕:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
video = VideoFileClip("input.mp4")
# 创建字幕剪辑
txt_clip = TextClip("Hello World",
fontsize=24,
color='white',
bg_color='black',
duration=2)
txt_clip = txt_clip.set_position(('center', 'bottom')).set_start(5)
# 合成视频
final = CompositeVideoClip([video, txt_clip])
final.write_videofile("output.mp4")
自动生成字幕(ASR)
结合语音识别 API 自动生成字幕:
# 使用 Whisper 自动识别并生成字幕
import whisper
model = whisper.load_model("base")
result = model.transcribe("video.mp4")
# 导出为 SRT 格式
with open("subtitle.srt", "w") as f:
for i, segment in enumerate(result["segments"]):
start = format_time(segment["start"])
end = format_time(segment["end"])
f.write(f"{i+1}\n{start} --> {end}\n{segment['text']}\n\n")
字幕样式调整脚本
更复杂的脚本可以控制颜色、位置、动画效果:
# 使用 ass 格式支持高级样式
# 可以设置字体、大小、颜色、阴影、轮廓等style = {
'fontname': 'Microsoft YaHei',
'fontsize': 18,
'primary_color': '&H00FFFFFF',
'outline_color': '&H00000000',
'bold': '1'
}
实用建议:
- 简单场景:直接用 FFmpeg 命令,一行搞定
- 批量处理:写个循环脚本处理多个视频
- 实时字幕:结合语音识别做直播字幕
- 多语言:支持中英双语字幕并排显示
需要我帮你写一个特定场景的字幕脚本吗?比如批量添加字幕、自动生成字幕,或者制作特殊的字幕效果?