FFMPEG将视频-音频替换为滤波器\ U复合体

FFMPEG将视频-音频替换为滤波器\ U复合体,ffmpeg,ffmpeg-php,Ffmpeg,Ffmpeg Php,我想要这样一个输出视频,其中使用ffmpeg-filter_复杂机制创建输出音频 /usr/local/Cellar/ffmpeg/3.2.2/bin/ffmpeg -i /uploads/videos/1487684390-lg9htt0RW2.mov -i /uploads/audios/1487664761-SCPbo6Tkac.mp3 -filter_complex " [0:a]atrim=0:8.70824980736,asetpts=PTS-STARTPTS[aud1];

我想要这样一个输出视频,其中使用ffmpeg-filter_复杂机制创建输出音频

/usr/local/Cellar/ffmpeg/3.2.2/bin/ffmpeg 
-i /uploads/videos/1487684390-lg9htt0RW2.mov 
-i /uploads/audios/1487664761-SCPbo6Tkac.mp3 
-filter_complex "
[0:a]atrim=0:8.70824980736,asetpts=PTS-STARTPTS[aud1]; 
[1:a]atrim=0:12.9567301273,asetpts=PTS-STARTPTS[aud2];
[0:a]volume=0.3,atrim=start=8.70824980736:21.6649799347,asetpts=PTS-STARTPTS[slow_aud]; 
[aud2][slow_aud] amerge=inputs=2[a_merged];
[0:a]atrim=start=21.6649799347:31.6410098076 [remaining_audio]; 
[aud1][a_merged][remaining_audio]concat=n=3:v=0:a=1[aout]" 
-map 0:v -map "[aout]" -c:v copy -acodec mp3 
/uploads/output/1487684390-lg9htt0RW2.mov
基于UTC时间戳录制的原始音频与基于UTC时间戳录制的原始视频

            13:00-------- Original Event Audio -------- 13:20
       12:50------------- Event Video Recorded --------------13:30
这是我的要求

因此,输出视频的音频应该包含

  • 前10秒(12:50-13:00)是活动视频的音频记录
  • 接下来的20秒(13:00-13:20)是合并音频(原始音频+原始视频,其中原始视频的音量为0.3)
  • 剩余10秒(13:21-13:30)的视频将播放视频的剩余音频
  • 我通过以上命令获得的信息

  • 前10秒(12:50-13:00)是录制的活动视频音频已实现
  • 接下来的20秒(13:00-13:20)是合并音频(原始音频+原始视频,其中原始视频的音量为.3)已实现
  • 剩余10秒(13:21-13:30)的视频将播放未实现的视频的剩余音频

  • 您没有按照concat筛选器的要求重置剩余音频的时间戳。所以,应该是这样

    [0:a]atrim=start=21.6649799347:31.6410098076,asetpts=PTS-STARTPTS[remaining_audio]; 
    

    实现相同结果的较短方法是

    -filter_complex
    "[1:a]adelay=12956.7301273|12956.7301273[mp3];
     [0:a]volume=0.3:enable='between(t,8.70824980736,21.6649799347)'[vid];
     [vid][mp3]amix[aout]"
    

    谢谢@Mulvya,asetpts适合我。较短的方法不起作用