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

FFmpeg音视频合并:实现视频延迟2秒、音频延迟5秒的方法

FFmpeg音视频延迟合并实现

要给视频添加2秒延迟、音频添加5秒延迟,只需在FFmpeg命令中为对应的输入流添加-itsoffset参数即可,该参数需要放在目标输入文件的-i选项之前。

修改后的合并命令数组

将你原有的String[] c替换为以下内容:

String[] c = {
        "-itsoffset", "2",          // 视频延迟2秒
        "-i", videoPath,
        "-itsoffset", "5",          // 音频延迟5秒
        "-i", audioPath,
        "-c:v", "copy", "-c:a", "aac", 
        "-map", "0:v:0", "-map", "1:a:0", 
        "-shortest",
        videoOutPut
};

参数说明

  • -itsoffset <seconds>:为紧随其后的输入流设置时间偏移,正数表示该流延迟指定秒数后开始播放。这里分别给视频流设置2秒延迟、音频流设置5秒延迟。
  • 其余参数保持你原有配置:视频流直接复制(-c:v copy)、音频转码为AAC(-c:a aac)、映射视频和音频流、以较短的流长度作为输出时长(-shortest)。

完整的Merge方法代码

public void Merge() {
    String videoId = String.valueOf(Calendar.getInstance().getTimeInMillis());
    String videoPath = Environment.getExternalStorageDirectory().getPath() + "/Download/silent_video.mp4";
    String audioPath = Environment.getExternalStorageDirectory().getPath() + "/Download/wa_audio.wav";
    String videoOutPut = Environment.getExternalStorageDirectory().getPath() + "/Download/" + "Merged Video " + videoId + ".mp4";
    
    String[] c = {
            "-itsoffset", "2",
            "-i", videoPath,
            "-itsoffset", "5",
            "-i", audioPath,
            "-c:v", "copy", "-c:a", "aac", 
            "-map", "0:v:0", "-map", "1:a:0", 
            "-shortest",
            videoOutPut
    };

    MergeVideo(c);
}

private void MergeVideo(String[] co){
    FFmpeg.executeAsync(co, new ExecuteCallback() {
        @Override
        public void apply(long executionId, int returnCode) {
            Log.d("File Tag", "return  " + returnCode);
            Log.d("File Tag", "executionID  " + executionId);
            Log.d("File Tag", "FFMPEG  " + new FFmpegExecution(executionId, co));
        }
    });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:10:31