You need to enable JavaScript to run this app. 使用ffmpeg拼接双视频保留原音频时第二路音频丢失如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用ffmpeg拼接双视频保留原音频时第二路音频丢失如何解决

问题原因

你当前使用的ffmpeg命令仅配置了视频流的拼接逻辑,没有对两路输入的音频流做拼接处理,ffmpeg默认只会取第一路输入的音频作为输出,因此会丢失第二个视频的音频。

调整方案

需要修改filter_complex参数,新增音频流的处理和拼接逻辑,同时显式映射拼接后的音视频流到输出文件,调整后的完整命令如下:

applyCommand(new String[]{
    "-y", 
    "-ss", valuefrom, "-t", valueto, "-i", path1, 
    "-ss", valuefrom2, "-t", valueto2, "-i", path2, 
    "-strict", "experimental", 
    "-filter_complex", 
    "[0:v]scale=320x240,setsar=1:1[v0];[1:v]scale=320x240,setsar=1:1[v1];[0:a]aformat=sample_fmts=fltp:sample_rates=22050:channel_layouts=stereo[a0];[1:a]aformat=sample_fmts=fltp:sample_rates=22050:channel_layouts=stereo[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[outv][outa]",
    "-map", "[outv]",
    "-map", "[outa]",
    "-ab", "48000", 
    "-ac", "2", 
    "-ar", "22050", 
    "-s", "320x240", 
    "-r", "15", 
    "-b", "2097k", 
    "-vcodec", "mpeg4", 
    Saving_path
});

核心改动说明

  • 新增两路输入音频的格式化处理:通过aformat过滤器统一两路音频的采样格式、采样率、声道布局,避免因音频参数不匹配导致拼接失败
  • 修改concat过滤器配置:新增a=1参数标识需要输出1路拼接后的音频,同时按「视频流0+音频流0+视频流1+音频流1」的顺序传入concat过滤器
  • 新增-map参数:显式指定输出使用拼接完成的视频流和音频流,避免ffmpeg默认选流逻辑导致的内容异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 06:24:05