微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决ffmpeg 错误:为输出流缓冲的数据包太多

我正在开发一个使用 ffmpeg 的电子应用程序,我正在 Win10 机器上开发,所以我使用命令提示符并且我已经安装了 npm 包“ffmpeg-ffprobe-static”。我可以通过调用包在终端中运行 ffmpeg 命令,如下所示:

cd /home/ms/anaconda3/envs/CUSENV/bin
ln -s /home/ms/anaconda3/envs/CUSENV/bin/x86_64-conda_cos6-linux-gnu-g++ g++

我有一个 ffmpeg 命令可以将两个 flac 文件合并成一个 mp3 文件,该文件一直运行良好,直到我遇到此错误

C:\Users\martin\myproject\node_modules\ffmpeg-ffprobe-static>ffmpeg.exe -h
ffmpeg version 4.3 copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200621
....

相同的命令适用于其他 flac 文件,因此这些 Billy Martin 歌曲可以在 vlc 中完美播放,但会导致 ffmpeg 崩溃:

[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 文件运行相同的命令,它工作正常:

//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!

我已经尝试像许多帖子建议的那样将 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"

解决方法

专辑封面图片有问题。通过将输出标签添加到 concat 过滤器输出并仅 mapping 连接的音频来忽略它:

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"

否则 default stream selection 将选择过滤器输出以及导致问题中显示的错误的损坏图像。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。