017-python实现原视频自动添加字幕功能,字幕跟随声音自动显示

2024-11-13 11:56 017-python实现原视频自动添加字幕功能,字幕跟随声音自动显示已关闭评论

在 Python 中,可以使用 moviepyffmpeg 库来将字幕文件添加到原视频文件中。每日教程当前录制的视频是包含声音,没有显示字幕,想要显示字幕到原视频正下方,下面是具体的实现代码:

步骤概述:

  1. 读取视频文件和字幕文件。
  2. 使用 ffmpeg 将字幕文件嵌入到视频中,确保字幕在下方正中显示。
  3. 导出一个新的包含字幕的视频文件。

代码实现:

使用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)

代码说明:

  1. 检查文件路径:代码会首先检查视频和字幕文件是否存在,以避免路径错误。
  2. FFmpeg 命令-vf 选项用于指定视频滤镜,将字幕文件嵌入视频。Alignment=2 表示字幕居中显示在视频下方,Fontsize=24 可调整字幕大小。
  3. 音频拷贝-c:a copy 表示不重新编码音频,仅复制音频轨道,以减少处理时间和保持音质。

依赖库安装:

确保安装了 moviepyffmpeg

pip install moviepy

在命令行中安装 ffmpeg:

# 对于 Windows 用户
choco install ffmpeg

# 对于 Mac 用户
brew install ffmpeg

运行验证

命令运行python video_auto_subtitle.py,如下图:

原视频和字幕合并完成

关于如何提取原视频的字幕,可以参考另一篇文章《python原视频一键自动分离画面、音频并保存本地过程实现

当前文章价值0.37元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3700.html ,谢谢支持!

资源分享

python字符串格式化的方式 python字符串格式化的方式
微信开放平台开发之闪退问题解决办法 微信开放平台开发之闪退问题解决
项目中提示“AndroidManifest.xml file missing”解决办法 项目中提示“AndroidManifest.
sql server存储过程基础语法 sql server存储过程基础语法

评论已关闭!