FFMpeg сбой при декодировании MJpeg

61
7

Я работаю с FFMpeg для декодирования потоков Mjpeg. Недавно я столкнулся с исключениями нарушения прав доступа из FFMpeg, после расследования выяснил, что из-за падения сетевого пакета я перехожу к FFMpeg кадру, который может иметь "пробелы" в нем. Вероятно, FFMpeg сбой, поскольку он перескакивает на полезную нагрузку маркера, которая не существует в памяти фрейма.

Любая идея, где я могу найти валидатор структуры mjpeg? Есть ли способ настроить FFMpeg для выполнения таких проверок самостоятельно?

Благодарю.

спросил(а) 2012-03-28T17:03:00+04:00 8 лет, 11 месяцев назад
1
Решение
86

На самом деле не нашел ответа на вопрос. По-видимому, ffmpeg не очень хорошо обрабатывает поврежденные фреймы. Решил попробовать другой сторонний декодер вместо ffmpeg. Пока, по крайней мере для Jpeg, он работает быстрее и гораздо более надежным.

ответил(а) 2012-05-10T21:30:00+04:00 8 лет, 9 месяцев назад
61

Я был бы склонен использовать Gstreamer здесь вместо ffmpeg и установить свойство "max-errors" в плагине jpegdec на -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 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-22T18:53:00+04:00 8 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема