2012-03-28 225 views
1

我正在使用FFMpeg解码Mjpeg流。 最近我碰到FFMpeg的访问冲突异常,经过调查,我发现由于网络数据包丢失,我传递给FFMpeg一个可能存在“差距”的帧。 FFMpeg可能会崩溃,因为它跳转到帧存储器中不存在的标记有效载荷。FFMpeg解码MJpeg时崩溃

任何想法,我可以找到一个mjpeg结构验证程序? 有没有什么办法可以配置FFMpeg来自行执行验证?

谢谢。

回答

0

没有真正找到问题的答案。显然,ffmpeg不能很好地处理损坏的帧。 决定尝试不同的第三方解码器而不是ffmpeg。目前,至少对于Jpeg来说,它的运行速度更快,而且更加强大。

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帧并继续流。