我的 H264 视频解码有什么问题(包含视频链接)

发布于 2024-11-05 02:55:41 字数 962 浏览 0 评论 0原文

我编写了一个用于 Silverlight 的 HTTP Live Streaming 客户端。 (它是作为 MediaElement 的 MediaStreamSource 实现的)

alpha 代码运行得很好,只是视频解码中有一些奇怪的伪影;特别是帧底部的水平条未正确解码。请观看此视频,了解我的意思的示例。

据我所知,没有丢帧。

编码是由 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 帧传递到本机解码器的错误。

I've written an HTTP Live Streaming client for use in Silverlight. (It is implemented as a MediaStreamSource for a MediaElement)

The alpha code is working pretty well, except that there are some strange artefacts in the video decoding; in particular a horizontal strip at the bottom of the frame that is not being decoded properly. Please see this video for an example of what I mean.

As far as I can see, no frames are being dropped.

The encoding is being done by ffmpeg/X264 with the following command line:

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

Anybody with H264 knowledge able to speculate what might be tripped up the decoder? I'm particularly anxious to know whether it's an obvious issue with compatibility, or whether it might be something more specific to my code, e.g. a bug passing NAL frames to the native decoder.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情何以堪。 2024-11-12 02:55:41

答案是我的解析代码中存在错误,因此在每个 PES 结束时,它都会向解码器发送不完整的 NAL 单元。所以......现在你知道那是什么样子了!感谢 MS H264 解码器的实际努力。 C

The answer was a bug in my parsing code, so at the end of each PES, it sent an incomplete NAL unit to the decoder. So.. ..now you know what that looks like! Kudos to the MS H264 decoder for actually struggling on. C

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文