我编写了一个用于Silverlight的HTTP Live Streaming客户端。 (它实现为MediaElement的MediaStreamSource)
alpha代码工作得很好,除了视频解码中有一些奇怪的假象;特别是在框架底部的水平条带未被正确解码。有关我的意思,请参阅this video。
据我所见,没有丢帧。
编码由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帧传递给本机解码器的错误。
答案 0 :(得分:0)
答案是我的解析代码中的一个错误,因此在每个PES的末尾,它向解码器发送了一个不完整的NAL单元。那么.. ..现在你知道那是什么样的!感谢MS H264解码器实际上正在努力奋斗。 ç