1

我正在使用 FFMpeg 来解码 Mjpeg 流。最近我遇到了来自 FFMpeg 的访问冲突异常,经过调查,我发现由于网络数据包丢失,我正在向 FFMpeg 传递一个可能有“间隙”的帧。FFMpeg 可能会崩溃,因为它会跳转到帧内存中不存在的标记有效负载。

知道在哪里可以找到 mjpeg 结构验证器吗?有什么方法可以配置 FFMpeg 自行执行此类验证?

谢谢。

4

2 回答 2

1

我倾向于在这里使用 Gstreamer 而不是 ffmpeg,并将 jpegdec 插件中的“max-errors”属性设置为-1。

gst-launch -v souphttpsrc location="http://[ip]:[port]/[dir]/xxx.cgi" do-timestamp=true is_live=true ! multipartdemux ! jpegdec max-errors=-1 ! ffmpegcolorspace ! autovideosink.

这会处理损坏的 jpeg 帧并继续流。

于 2012-10-22T15:53:41.087 回答
0

并没有真正找到问题的答案。显然,ffmpeg 不能很好地处理损坏的帧。决定尝试不同的 3rd 方解码器而不是 ffmpeg。目前,至少对于 Jpeg 来说,它运行得更快、更健壮。

于 2012-05-10T18:30:40.807 回答