垂直方向的H.264流显示损坏的视频

时间:2018-04-26 23:58:48

标签: video-streaming h.264 ms-media-foundation

我有一个垂直定向的IP监控摄像头(走廊模式),并且摄像头已配置为此方向。当我在SDP响应中解码SPS时,它正确地显示帧大小为宽度1080和高度1920.我的软件读入RTSP / RTP视频流然后将其提供给Microsoft H.264 MFT解码器并通过它显示DX9。我的软件适用于普通的水平视频输入,但是当我使用垂直相机尝试时,显示屏已损坏。这是一个它看起来像的屏幕截图。一种可能性是我需要旋转框架,但似乎已完成相机设置并且SPS格式的框架尺寸似乎证实了这一点。此外,当我在相机的网络界面和VLC中查看视频时,它会正确显示。有谁知道为什么会发生这种情况以及我如何纠正它?谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

效果特定于视频的宽度,而不是精确的方向。帧缓冲区可能实际上比帧更大(更宽),并且您应该在处理的某个步骤忽略它。视频是1080像素宽,视频硬件的每个对准要求的视频缓冲器可以是例如视频硬件。 1152或1536像素宽。您应该将采用这种对齐方式的数据逐行复制到较大缓冲区的左上角。

问题没有代码或细节来猜测问题发生的确切位置。例如,它可能是将数据上传到纹理的步骤。 DirectX 9和其他版本,DirectShow,Media Foundation - 所有API都支持扩展步幅的概念,因为这是视频内存中数据的典型布局要求(也适用于SIMD处理)。

仅供参考其他一些具有类似效果的问题: