在 Python 中,可以使用 moviepy 和 ffmpeg 库来将字幕文件添加到原视频文件中。每日教程当前录制的视频是包含声音,没有显示字幕,想要显示字幕到原视频正下方,下面是具体的实现代码:
步骤概述:
- 读取视频文件和字幕文件。
- 使用
ffmpeg将字幕文件嵌入到视频中,确保字幕在下方正中显示。 - 导出一个新的包含字幕的视频文件。
代码实现:
使用PyCharm新建一个文件video_auto_subtitle.py,该文件实现的功能是使用python代码调用ffmpeg命令,详细代码如下:
import moviepy.editor as mp
import os
import subprocess
def add_subtitle_to_video(video_path, subtitle_path, output_path):
# 检查输入文件是否存在
if not os.path.exists(video_path):
raise FileNotFoundError(f"Video file not found: {video_path}")
if not os.path.exists(subtitle_path):
raise FileNotFoundError(f"Subtitle file not found: {subtitle_path}")
# 使用 ffmpeg 添加字幕
try:
command = [
'ffmpeg', '-i', video_path,
'-vf', f"subtitles={subtitle_path}:force_style='Alignment=2,Fontsize=24'",
'-c:a', 'copy', output_path
]
subprocess.run(command, check=True)
print(f"字幕已成功添加到视频中,输出文件为: {output_path}")
except subprocess.CalledProcessError as e:
print(f"Error occurred while adding subtitle: {e}")
# 输入视频和字幕路径
video_path = 'input_video.mp4' # 替换为你的视频文件路径
subtitle_path = 'input_subtitle.srt' # 替换为你的字幕文件路径
output_path = 'output_video_with_subtitles.mp4' # 输出文件路径
# 执行添加字幕操作
add_subtitle_to_video(video_path, subtitle_path, output_path)
代码说明:
- 检查文件路径:代码会首先检查视频和字幕文件是否存在,以避免路径错误。
- FFmpeg 命令:
-vf选项用于指定视频滤镜,将字幕文件嵌入视频。Alignment=2表示字幕居中显示在视频下方,Fontsize=24可调整字幕大小。 - 音频拷贝:
-c:a copy表示不重新编码音频,仅复制音频轨道,以减少处理时间和保持音质。
依赖库安装:
确保安装了 moviepy 和 ffmpeg:
pip install moviepy
在命令行中安装 ffmpeg:
# 对于 Windows 用户
choco install ffmpeg
# 对于 Mac 用户
brew install ffmpeg
运行验证
命令运行python video_auto_subtitle.py,如下图:

原视频和字幕合并完成

关于如何提取原视频的字幕,可以参考另一篇文章《python原视频一键自动分离画面、音频并保存本地过程实现》
当前文章价值0.37元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章
分类:python
标签:python视频自动添加字幕, subtitle字幕识别
评论已关闭!