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

Video streaming 垂直方向的H.264流显示损坏的视频,video-streaming,h.264,ms-media-foundation,Video Streaming,H.264,Ms Media Foundation,我有一个垂直方向(走廊模式)的IP监控摄像头,该摄像头已为此方向配置。当我在SDP响应内解码SPS时,它正确显示帧大小,宽度为1080,高度为1920。我的软件读取RTSP/RTP视频流,然后将其提供给Microsoft H.264 MFT解码器,并通过DX9显示。我的软件可以很好地处理普通的水平视频馈送,但是当我尝试使用垂直摄像头时,显示器被破坏了。这是它的屏幕截图。一种可能性是,我需要旋转帧,但似乎相机设置已经完成,并且帧大小为SPS格式,这似乎证实了这一点。另外,当我在摄像头的web界面和

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


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

这个问题没有代码或细节来猜测问题到底发生在哪里。例如,这可能是将数据上载到纹理的步骤。DirectX 9和其他版本,DirectShow,MediaFoundation——所有API或这一方式支持扩展步长的概念,因为这是对视频存储器中的数据的一种典型布局要求(也适用于SIMD处理)。 供参考,还讨论了其他一些具有类似影响的问题:


我发现到达目的地表面的步幅不正确。还不知道为什么。谢谢你罗曼给我指引了正确的方向!