相关文章推荐

ffmpeg错误。为输出流缓冲了太多的数据包

0 人关注

我正在开发一个使用ffmpeg的电子应用程序,我在win10机器上开发,所以我使用命令提示符,我已经安装了npm包 "ffmpeg-ffprobe-static"。我可以在终端通过调用该包来运行ffmpeg命令,就像这样。

C:\Users\martin\myproject\node_modules\ffmpeg-ffprobe-static>ffmpeg.exe -h
  built with gcc 9.3.1 (GCC) 20200621

我有一个ffmpeg命令,将两个flac文件合并成一个mp3文件,在我遇到这个错误之前,这个命令一直运行良好。

[mjpeg @ 0000022537ace640] bits 85 is invalid
Error while decoding stream #0:1: Invalid data found when processing input
Too many packets buffered for output stream 0:0.
[libmp3lame @ 0000022537ac3480] 3 frames left in the queue on closing
Conversion failed!

同样的命令也适用于其他的flac文件,所以这些比利-马丁的歌曲在vlc中可以完全正常播放,但却导致ffmpeg崩溃。

//running this command:
ffmpeg.exe -i "G:\RenderTune broken files\broken flac example\05 - Billy Martin - Phillie Dog.flac" -i "G:\RenderTune broken files\broken flac example\08 - Billy Martin - Stax.flac" -y -filter_complex concat=n=2:v=0:a=1 -c:a libmp3lame -b:a 320k "G:\RenderTune broken files\broken flac example\COMBINED_FILES.mp3"
//results in this output:
[mjpeg @ 0000022537ace640] bits 85 is invalid
Error while decoding stream #0:1: Invalid data found when processing input
Too many packets buffered for output stream 0:0.
[libmp3lame @ 0000022537ac3480] 3 frames left in the queue on closing
Conversion failed!

我把这些破损的flac文件上传到这里:https://www.mediafire.com/folder/0v9hbfrap727y/broken+flac

如果我用其他的flac文件运行同样的命令,就能正常工作。

ffmpeg.exe -i "G:\RenderTune broken files\working flac example\5. Gossip.flac" -i "G:\RenderTune broken files\working flac example\6. Let The Children Play.flac" -y -filter_complex concat=n=2:v=0:a=1 -c:a libmp3lame -b:a 320k "G:\RenderTune broken files\working flac example\COMBINED_FILES.mp3"

我试着像许多帖子建议的那样,在我的ffmpeg命令中加入-max_muxing_queue_size 9999 ,但这并没有解决这个问题,有谁知道如何防止这个错误吗?

我尝试了其中的一个解决方案。

ffmpeg.exe -y -i "G:\RenderTune broken files\working flac example\5. Gossip.flac" -i "G:\RenderTune broken files\working flac example\6. Let The Children Play.flac" -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[a]" -map "[a]" -c:a libmp3lame -b:a 320k "G:\RenderTune broken files\working flac example\COMBINED_FILES.mp3"

但它却以不同的错误而崩溃了。

[libmp3lame @ 000002453725f3c0] Queue input is backward in time.9x
... lots of these [mp3 @ ..] messages
[mp3 @ 0000024537344400] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 2449071 >= 2445999
[mp3 @ 0000024537344400] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 2449071 >= 2447151
[mp3 @ 0000024537344400] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 2449071 >= 2448303
[flac @ 00000245372d4140] invalid residual315.7kbits/s speed=59.7x
[flac @ 00000245372d4140] decode_frame() failed
Error while decoding stream #1:0: Invalid data found when processing input
size=   24871kB time=00:10:37.09 bitrate= 319.8kbits/s speed=60.5x
video:0kB audio:24869kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.004673%
    
npm
video
ffmpeg
node-modules
Martin
Martin
发布于 2021-03-31
2 个回答
llogan
llogan
发布于 2022-02-06
已采纳
0 人赞同

涉及到专辑封面图片的东西是错误的。忽略它,给你的串联过滤器输出添加一个输出标签,只 映射 串联的音频。

ffmpeg.exe -y -i "G:\RenderTune broken files\working flac example\5. Gossip.flac" -i "G:\RenderTune broken files\working flac example\6. Let The Children Play.flac" -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[a]" -map "[a]" -c:a libmp3lame -b:a 320k "G:\RenderTune broken files\working flac example\COMBINED_FILES.mp3"

否则,默认的流选择将选择过滤器的输出和破碎的图像,造成你问题中显示的错误。

我确实注意到,当我播放音频文件时,文件的元数据专辑封面不会出现在VLC中,所以这就说明文件的元数据或其他东西损坏了。我试了一下你的命令,现在看来还是失败了,有这样的错误 [flac @ 00000245372d4140] invalid residual315.7kbits/s speed=59.7x [flac @ 00000245372d4140] decode_frame() failed Error while decoding stream #1:0: Invalid data found when processing input (我将更新我的问题以包括更多的信息)。
@Martin 用 05 - Billy Martin - Phillie Dog.flac 08 - Billy Martin - Stax.flac 为我工作。请提供失败的新输入文件。
Estatistics
Estatistics
发布于 2022-02-06
0 人赞同

这对我来说解决了问题(之后说到了破损的标志,但这很容易通过重新编码或玩弄设置来解决)。