使用ffmpeg连接视频,覆盖空音频流

时间:2020-04-03 01:45:13

标签: python ffmpeg

我有4个要覆盖和连接的电影文件:

  1. 音频文件通道为空的介绍文件(使用lavfi生成)
  2. 需要串联和修剪的主要电影文件
  3. 需要叠加在2之上的水印
  4. 一部电影也有一个空的频道。

这是我用来执行所有操作的命令:

printf("%.*s", (int)bufferSize, buffer);

尽管它看起来很丑陋,但大多数情况下都可以工作-除了音频。简介片段开始播放后,音频即开始播放。我无法使用覆盖的影片创建输出文件,因为我还需要为前奏和外奏添加淡出和淡入效果。我只能重新编码一次,因为每晚我都会在多个大文件上进行编码。

请提出我可能如何解决音频问题。

1 个答案:

答案 0 :(得分:0)

解决方案很容易-只需在第二个concat中显式连接文件的音频和视频即可。这是命令:

ffmpeg -i temp_intro.mp4 -f concat -i tempFile.txt -i scoreboard.mp4 -i temp_outro.mp4 \
-filter_complex "[1]trim=end=24:start=12[s0];[s0]setpts=PTS-STARTPTS[s1];[1]atrim=end=24:start=12[s2];[s2]asetpts=PTS-STARTPTS[s3]; \
[2]format=yuva444p[s4];[s4]colorchannelmixer=aa=0.5[s5]; \
[s1][s5]overlay=eof_action=repeat:x=(main_w-overlay_w)/2:y=main_h-overlay_h-20[s7]; \
[0:v:0][0:a:0] [s7][s3] [3:v:0][3:a:0]concat=n=3:v=1:a=1[s8]" -map [s8] test.mp4