Audio ffmpeg concat vidoes找不到流1的编解码器参数

Audio ffmpeg concat vidoes找不到流1的编解码器参数,audio,video,merge,ffmpeg,concat,Audio,Video,Merge,Ffmpeg,Concat,我正在尝试concat 3个视频,每个视频都事先转换为mpg,当我运行concat命令时,它会给我这个错误(但仍然生成没有音频的输出) 第一个和第三个视频仅由一张图片制作(第一个10秒,第三个5秒长),没有音频。 第二个有音频的视频通过运行以下命令从mov转换为mpg: -i test.mov -qscale:v 1 -y intermediate2.mpg 我用这个命令将它们合并在一起: -i concat:\"intermediate1.mpg|intermediate2.mpg|inte

我正在尝试concat 3个视频,每个视频都事先转换为mpg,当我运行concat命令时,它会给我这个错误(但仍然生成没有音频的输出)

第一个和第三个视频仅由一张图片制作(第一个10秒,第三个5秒长),没有音频。 第二个有音频的视频通过运行以下命令从mov转换为mpg:

-i test.mov -qscale:v 1 -y intermediate2.mpg
我用这个命令将它们合并在一起:

-i concat:\"intermediate1.mpg|intermediate2.mpg|intermediate3.mpg\" -c copy -y intermediate_all.mpg
-i concat:\"intermediate1.mpg|intermediate2.mpg|intermediate3.mpg\" -c copy -y intermediate_all.mpg
最终输出“intermediate_all.mpg”完全没有音频

我还尝试将“analyzeduration”和“probesize”的值设置为1亿,但没有成功


我做错了什么吗?

因为我的第一个和第三个视频不包含任何音频流,所以我需要先添加一些虚拟音频。在@Mulvya的帮助下,答案如下:

我的第一个视频(无音频):

我的第三个视频(无音频):

我的第二个视频(带音频):

然后把它们放在一起:

-i concat:\"intermediate1.mpg|intermediate2.mpg|intermediate3.mpg\" -c copy -y intermediate_all.mpg
-i concat:\"intermediate1.mpg|intermediate2.mpg|intermediate3.mpg\" -c copy -y intermediate_all.mpg
最后,将intermediate_all.mpg转换为final.mp4:

 -i intermediate_all.mpg -qscale:v 1 -y final.mp4
虽然有人建议不要转换成mpg,但我尝试了这种方法,最终的mp4有点失真。我使用了concat demuxer:

 -f concat -i videos.txt -c copy -y final.mp4

因此,如果有办法解决失真的视频,直接使用mp4将是最快的方法。

您的第一个文件没有音频,因此第二个文件的音频流头肯定超出了默认的探测大小。但为什么要改成MPG呢?在向没有它们的文件中添加虚拟音轨后使用concat解复用器。@Mulvya我需要将它们转换为mpg,因为并非所有的“第一个视频”都具有相同的大小和格式,我在某处查找它,说要先将它们转换为mpg。我也把探针改成了100米,这还不够吗?你能给我举个例子吗?Probesize要求取决于第一个视频的持续时间。在任何情况下,其他文件仍然需要一个虚拟音频。不要转换为MPG,而是使用MP4。如果源没有音频,则在转换时在
-i video
之后添加
-f lavfi-i anullsrc-ac 2
。@Mulvya所以我这样做了。现在,当我想使用'-I concat:\'intermediate1.mp4 | intermediate2.mp4 | intermediate3.mp4\'-c copy-y intermediate(所有.mp4)进行concat时,它不起作用。它停止时没有正确的输出…您必须使用带有MP4s的concat。
 -i intermediate_all.mpg -qscale:v 1 -y final.mp4
 -f concat -i videos.txt -c copy -y final.mp4