Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Видео и аудио: обработка и кодирование (http://forum.oszone.net/forumdisplay.php?f=45)
-   -   Проблемы при декодировании mpeg2 потока (ffmpeg, libavcodec) (http://forum.oszone.net/showthread.php?t=150272)

urello 11-09-2009 18:22 1216727

Проблемы при декодировании mpeg2 потока (ffmpeg, libavcodec)
 
Добрый день!
Дома имеется тарелка и ресивер Dreambox 500s
Есть желание смотреть тв с работы.
Дома поднял сервер для ужатия видео, так как Dreambox отдаёт с битрейтом 30 Мб/с, что накладно.
При сжатии видео периодически выскакивают сообщения такого плана.
Код:

[mpeg2video @ 0x80370c010]ac-tex damaged at 23
[mpeg2video @ 0x80370c010]invalid cbp at 4 25
[mpeg2video @ 0x80370c010]mb incr damaged
[mpeg2video @ 0x80370c010]ac-tex damaged at 1 27
[mpeg2video @ 0x80370c010]invalid cbp at 7 28
[mpeg2video @ 0x80370c010]ac-tex damaged at 23 30
[mpeg2video @ 0x80370c010]slice mismatch
[mpeg2video @ 0x80370c010]invalid mb type in P Frame at 10 31
[mpeg2video @ 0x80370c010]ac-tex damaged at 8 32
[mpeg2video @ 0x80370c010]ac-tex damaged at 17 33
[mpeg2video @ 0x80370c010]ac-tex damaged at 11 34
[mpeg2video @ 0x80370c010]invalid cbp at 3 35
[mpeg2video @ 0x80370c010]Warning MVs not available
[mpeg2video @ 0x80370c010]concealing 484 DC, 484 AC, 484 MV errors

При этом на клиенте картинка замирает, появляются дефекты.
При передаче потока без сжатия картинка отличная.
Можно ли решить проблему?
Можно ли сказать ffmpeg'y использовать другой mpeg2 декодер (не из библиотеки libavcodec), если проблема именно в декодере?
Заранее спасибо.

DJ Mogarych 11-09-2009 23:42 1216922

Предположу, что проблемы связаны с тем, что MPEG-сжатие разделяет кадры на ключевые и неключевые. Если возникает ошибка, то кадры, следующие за сбойным, искажаются, так как зависят от кадров, идущих ранее.

При несжатом потоке все кадры передаются отдельно, поэтому сбой одного кадра незаметен.

В связи с этим можно попробовать сжимать не в MPEG-2, а в кодеки, которые кодируют каждый кадр отдельно. Например, M-JPEG. Поток будет меньшим, чем при несжатом потоке, где-то раза в четыре.

Если я что-то не так понял, поясните.

urello 12-09-2009 17:34 1217316

Дело в том, что я приминаю поток в mpeg-2 и перекодирую его в flv. То есть, проблема возникает на стадии декодирования, а не кодирования.

DJ Mogarych 12-09-2009 22:47 1217547

Ну, попробуйте кодек Intervideo.


Время: 22:48.

Время: 22:48.
© OSzone.net 2001-