You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FFmpeg-Python在指定时间戳为MP4添加SRT字幕

修改FFmpeg-Python代码实现字幕延迟显示

要让SRT字幕从指定时间戳(如00:00:25)开始显示,有两种简单的修改方式:

方法1:直接在subtitles滤镜中添加start_time参数

FFmpeg的subtitles滤镜支持start_time选项,可直接指定字幕开始显示的时间点,格式支持HH:MM:SS或秒数(如25代表25秒)。修改后的代码如下:

import ffmpeg

# 输入视频文件
video_clip = ffmpeg.input("background_video.mp4")
# 应用字幕滤镜并设置延迟时间
video_with_sub = video_clip.filter(
    "subtitles",
    f"Subtitles/{post_id}/sub.srt",
    fontsdir="fonts/Roboto-Black.ttf",
    force_style="Alignment=10,FontName=Roboto-Regular,FontSize=12",
    start_time="00:00:25"  # 指定字幕开始显示的时间戳
)
# 输出带字幕的视频
ffmpeg.output(video_with_sub, "output_video.mp4").run()

方法2:单独偏移字幕输入时间轴

如果start_time参数不生效(部分FFmpeg版本可能存在兼容问题),可以单独将字幕作为输入源,用itsoffset滤镜偏移其时间轴,再应用到视频上:

import ffmpeg

# 输入视频
video_clip = ffmpeg.input("background_video.mp4")
# 输入字幕并设置25秒的时间偏移
subtitle_clip = ffmpeg.input(f"Subtitles/{post_id}/sub.srt").filter("itsoffset", "00:00:25")
# 将偏移后的字幕叠加到视频
video_with_sub = video_clip.filter(
    "subtitles",
    subtitle_clip,
    fontsdir="fonts/Roboto-Black.ttf",
    force_style="Alignment=10,FontName=Roboto-Regular,FontSize=12"
)
# 输出结果
ffmpeg.output(video_with_sub, "output_video.mp4").run()

注意事项

  • 确保你的FFmpeg版本支持对应滤镜参数,若出现报错可尝试升级FFmpeg。
  • 原代码缺少输出步骤,必须添加ffmpeg.output(...).run()才能生成最终带字幕的视频文件。

内容的提问来源于stack exchange,提问作者grilo13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:15:04