【发布时间】:2017-07-16 04:59:09
【问题描述】:
我正在尝试连接 3 个视频,每个视频都预先转换为 mpg,当我运行命令连接时,它给了我这个错误(但仍然产生没有音频的输出)
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 秒长),并且没有音频。 通过运行以下命令将第二个具有音频的视频从 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”根本没有音频。
我还尝试将 'analyzeduration' 和 'probesize' 设置为 100M,但没有奏效。
我在这里做错了什么?
【问题讨论】:
-
您的第一个文件没有音频,因此第二个文件的音频流标头肯定超出了默认探测大小。但为什么要转换成 MPG?在将虚拟音轨添加到没有它们的文件后使用 concat demuxer。
-
@Mulvya 我需要将它们转换为 mpg,因为并非我所有的“第一个视频”都具有相同的大小和格式,我在某处查找说首先将它们转换为 mpg。我也把probesize改成了100M,还不够吗?可以举个例子吗?
-
探测大小要求取决于第一个视频的持续时间。无论如何,您仍然需要其他文件的虚拟音频。不要转换为 MPG,而是使用 MP4。如果源没有音频,则在转换时在
-i video之后添加-f lavfi -i anullsrc -ac 2。 -
@Mulvya 所以我做到了。现在,当我想与 '-i concat:\"intermediate1.mp4|intermediate2.mp4|intermediate3.mp4\" -c copy -y intermediate_all.mp4' 连接时,它不起作用。它没有正确的输出就停止了......
-
您必须将 concat demuxer 与 MP4 一起使用。
标签: audio video merge ffmpeg concat