ffmpeg concat vidoes无法找到流1的编解码器参数

时间:2017-02-25 09:28:06

标签: audio video merge ffmpeg concat

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

Could not find codec parameters for stream 1 (Audio: mp2, 0 channels): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize'  options
Input #0, mpeg, from 'concat:intermediate1.mpg|intermediate2.mpg|intermediate3.mpg':
Duration: 00:00:25.73, start: 0.540000, bitrate: 2626 kb/s
Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 480x414 [SAR 1:1 DAR 80:69], 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc
Stream #0:1[0x1c0]: Audio: mp2, 0 channels
[mpeg @ 0000000002766ba0] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'intermediate_all.mpg':
Metadata:
encoder  : Lavf57.50.100
Stream #0:0: Video: mpeg1video, yuv420p(tv), 480x414 [SAR 1:1 DAR 80:69], q=2-31, 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mpeg @ 0000000002766ba0] Timestamps are unset in a packet for stream 0.  This is deprecated and will stop working in the future. Fix your code to set the   timestamps properly
frame= 1151 fps=0.0 q=-1.0 Lsize=    7834kB time=00:00:40.81  bitrate=1572.5kbits/s speed= 346x
video:7792kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.535638%

第一和第三个视频只由一张图片制作(第一张10秒,第三张长度为5秒)并且没有音频。 具有Audio的第二个视频,通过运行此命令从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

最终输出“intermediate_all.mpg”根本没有音频。

我还尝试将'analyzeuration'和'probesize'设置为100M,但是没有用。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

我的第一个视频(没有音频):

-i Begining.mp4 -f lavfi -i anullsrc -ac 2 -qscale:v 1 -shortest -y intermediate1.mpg

我的第三个视频(没有音频):

-i Ending.mp4 -f lavfi -i anullsrc -ac 2 -qscale:v 1 -shortest -y intermediate3.mpg

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

-i test.mov  -qscale:v 1 -y intermediate2.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将是最快的方式。