ffmpeg concat vidoes 找不到流 1 的编解码器参数
ffmpeg concat vidoes Could not find codec parameters for stream 1
我正在尝试连接 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 秒),没有音频。
第二个带有音频的视频通过 运行ning 这个命令从 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,但没有成功。
我做错了什么吗?
由于我的第一个和第三个视频不包含任何音频流,我需要先添加一些虚拟音频。所以在@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 分离器:
-f concat -i videos.txt -c copy -y final.mp4
所以如果有办法解决失真的视频,直接使用 mp4 将是最快的方法。
我正在尝试连接 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 秒),没有音频。 第二个带有音频的视频通过 运行ning 这个命令从 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,但没有成功。
我做错了什么吗?
由于我的第一个和第三个视频不包含任何音频流,我需要先添加一些虚拟音频。所以在@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 分离器:
-f concat -i videos.txt -c copy -y final.mp4
所以如果有办法解决失真的视频,直接使用 mp4 将是最快的方法。