Что не так с моим декодированием видео H264 (ссылка на видео включена) - PullRequest
0 голосов
/ 03 мая 2011

Я написал клиент HTTP Live Streaming для использования в Silverlight.(Он реализован как MediaStreamSource для MediaElement)

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

Насколько я вижу, кадры не пропускаются.

Кодирование выполняется ffmpeg / X264 со следующей командной строкой:

ffmpeg --segment-length 5 --segment-offset 0 -threads 4 -flags +loop -g 30 
-keyint_min 1 -bf 0 -b_strategy 0 -flags2 -wpred-dct8x8 -cmp +chroma -deblockalpha 0
-deblockbeta 0 -refs 1 -me_range 16 -subq 5 -partitions +parti4x4+parti8x8+partp8x8 -
trellis 0 -coder 0 -sc_threshold 40 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 
-rc_eq 'blurCplx^(1-qComp)' -i inputfile.wtv -aspect 4:3 -s 240x160 -y -async 1 
-f mpegts -vcodec libx264 -bufsize 128k -b 128k -bt 120k -qmax 48 -qmin 2 -r 25 
-acodec libmp3lame -ab 64k -ar 44100 -ac 2 output.ts

Кто-нибудь со знанием H264 способен предположить, что может вызвать срабатывание декодера?Мне особенно интересно узнать, является ли это очевидной проблемой с совместимостью, или это может быть что-то более специфичное для моего кода, например, ошибка при передаче кадров NAL в собственный декодер.

1 Ответ

0 голосов
/ 20 февраля 2012

Ответ был ошибкой в ​​моем коде синтаксического анализа, поэтому в конце каждого PES он отправлял неполный блок NAL в декодер. Итак .. .. теперь вы знаете, как это выглядит! Престижность декодеру MS H264 за то, что он действительно борется. C

...