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

如何通过Python调用FFmpeg合并视频、音频与字幕流?

FFmpeg-python 同时实现视频叠加字幕与替换音频方案

你不需要分开处理字幕和音频,直接在一个流程里完成即可。核心思路是先给背景视频添加字幕滤镜,再将处理后的视频流与音频流一起输出,无需使用concat(concat适用于媒体片段拼接,不是合并音视频流)。

完整代码示例:

import ffmpeg

# 替换为你的实际文件路径
background_video = "background.mp4"
audio = "input.mp3"
subtitle_file = "subs.srt"
output_video = "final_output.mp4"

# 读取背景视频并添加居中字幕滤镜
video_with_subtitles = ffmpeg.input(background_video).filter(
    "subtitles", subtitle_file, force_style="Alignment=2"  # Alignment=2 强制字幕居中
)

# 读取目标音频流
audio_input_stream = ffmpeg.input(audio)

# 合并带字幕的视频与音频并执行输出
(
    ffmpeg
    .output(video_with_subtitles, audio_input_stream, output_video)
    .run(overwrite_output=True)  # 添加overwrite_output=True可覆盖已存在的输出文件
)

关键细节说明:

  • 用filter("subtitles")处理视频流,比直接在output中传递vf参数更清晰,也更方便后续和音频流合并
  • force_style参数可以自定义字幕样式,比如添加FontSize=24,PrimaryColour=&HFFFFFF可调整字号和颜色
  • 若字幕文件存在编码问题,可在subtitles滤镜中补充编码参数:subtitles=subtitle_file:encoding=utf-8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:32:33