Я написал клиент 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 собственному декодеру.