【问题标题】:Why do I get these artifacts when using Microsoft MPEG-TS Demultiplexer and H.264 decoder on a H.264 MPEG-TS stream?为什么在 H.264 MPEG-TS 流上使用 Microsoft MPEG-TS Demultiplexer 和 H.264 解码器时会出现这些伪影?
【发布时间】:2013-05-03 15:09:00
【问题描述】:

我编写了一个实时推送过滤器,它可以获取包含 h.264 视频和 aac 音频的 mpeg-ts 流。我设置了一个 directshow 管道并配置了输出引脚。我可以渲染 h.264 流,但是我在渲染中得到了伪像,从这个截图可以看出,当使用 videotestsrc 和“球”模式从 gstreamer 流式传输时。这个截图应该只包含一个黑色的白点背景。另外两个是动画播放时出现的“剩菜”。

如果我流式传输 MPEG-2 并相应地更改流水线,则模式渲染不会出错。我尝试使用on msdn 描述的设置来配置引脚,都使用 H264 和 AVC1 显式提供序列头等。我仍然得到相同类型的工件。

一个有趣的事情是,伪影大多以与 I-Frame 到达相同的频率出现,如果我们只发送 I-Frame (key-int-max=1),伪影就会完全消失。

此外,当 I 帧间隔为 60 时,即每 2 秒,错误似乎出现在图像的上半部分。当我们每隔一帧更改为一个 I-Frame (key-int-max=2) 时,伪影仅出现在图像顶部的窄条中。

以下 gstreamer 管道生成视频流:

videotestsrc live-source=true pattern=ball ! video/x-raw-yuv,format=(fourcc)I420,width=1366,height=768,framerate=30/1 ! timeoverlay halign=left valign=bottom shaded-background=true ! x264enc bitrate=4096 tune=zerolatency ! h264parse ! queue ! mux. audiotestsrc wave=ticks volume=0.2 ! voaacenc ! mux. mpegtsmux name=mux ! udpsink host=<ip> port=<port>

这是管道的样子:

本例中的配置是majortype = MEDIATYPE_Video,subtype = MEDIASUBTYPE_H264,formattype = FORMAT_MPEG2Video。没有专门提供sequenceheader等。

所以问题是,这些类型的工件是一些常见配置问题的症状吗?

【问题讨论】:

    标签: directshow h.264 gstreamer live-streaming mpeg2-ts


    【解决方案1】:

    您正在丢失传输中的数据,这可能会导致错误。问题是I图片的比特率高于P图片。如果您有 cbr n/w,那么您可能会看到这个问题。

    为什么工件会这样显示:

    现在,如果您有一个只有 1 个白球且其余背景为黑色的视频,则当您丢失帧时,参考图片会丢失并且会出现乱码,因为解码器可能只是尝试使用最后一个有效帧中的帧展示。由于您的最后一个有效帧是全黑的屏幕其余部分看起来还可以,因此 while 球所在的部分仍然显示错误。

    用不同的模式替换这个模式,你会更清楚我的意思。

    只有 I 图片,没有任何参考图片的问题,因此您将获得干净的输出。

    检查传输是否正常的一种方法是将您的输出转储到一个文件中,然后在另一端用一个文件读取它。如果一切正常,您就知道您的传输正在丢失数据。

    此外,由于您在底部有时钟,因此如果帧丢失,您应该会看到时钟也会跳动。

    【讨论】:

      【解决方案2】:

      事实证明,MPEG-2 Demultiplexer 不是为处理 H.264 内容而设计的。这就是出现这些效果的原因。

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 2014-07-24
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多