如何防止 ffmpeg 因“AVC:最终大小”错误而出现间歇性故障?

如何防止 ffmpeg 因“AVC:最终大小”错误而出现间歇性故障?

我正在尝试打开来自的 NASA HDTV 视频流ustream.tv直接在vlc.我遇到的问题是它只有时有效。我正在使用的命令如下:

ffmpeg -i "rtmp://ustreamlivefs.fplive.net/ustream2live-live/stream_live_1_1_6540154 swfUrl=http://www.ustream.tv/flash/viewer.swf live=1" -c copy -bsf h264_mp4toannexb -y -f mpegts pipe: | vlc -

当它起作用时,只要我让流保持运行,它就可以很好地工作。然而,它通常会导致启动失败并给出如下输出:

[h264 @ 0x2273760] AVC: nal size 21135391
[h264 @ 0x2273760] no frame!
Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
[mpegts @ 0x227b360] H.264 bitstream malformed, no startcode found, use the h264_mp4toannexb bitstream filter (-bsf h264_mp4toannexb)
av_interleaved_write_frame(): Invalid argument
[0x7fb5140014e8] main stream error: cannot pre fill buffer

该命令的一些背景知识:最终目标不是vlc通过 DLNA 进行分发以在电视上观看 - 因此需要转换为mpegts容器格式。 DLNA 传输正在通过 进行mediatomb。此配置遇到与上述示例相同的间歇性故障问题。

我在 Arch Linux 64 位上使用 ffmpeg 版本 1.1.3。

我试图寻找这个问题的答案,但我一直找不到任何有用的东西——我所看到的一切都是相似但不同的。我可以修改命令以使其更可靠吗?如果可以,如何修改?

相关内容