C# 从原始mpeg4流获取帧维度?
有人知道如何从原始视频比特流检索mpeg4视频(非h264,即mpeg4第2部分)的帧尺寸吗? 我目前正在为Windows MediaFoundation编写自定义媒体源,我必须提供一个需要帧大小的媒体。没有它就不能工作。 有什么想法吗?C# 从原始mpeg4流获取帧维度?,c#,video-processing,mpeg-4,C#,Video Processing,Mpeg 4,有人知道如何从原始视频比特流检索mpeg4视频(非h264,即mpeg4第2部分)的帧尺寸吗? 我目前正在为Windows MediaFoundation编写自定义媒体源,我必须提供一个需要帧大小的媒体。没有它就不能工作。 有什么想法吗? 谢谢我不明白你的意思。您是否试图了解正在播放的视频的宽度和高度?如果是这样的话(我猜这就是你要寻找的“维度”),下面是如何做到的: 解析此整数的流000001B0(十六进制)它始终是您得到流的第一件事。如果没有,请查看流的SDP(如果有的话,请搜索config
谢谢我不明白你的意思。您是否试图了解正在播放的视频的宽度和高度?如果是这样的话(我猜这就是你要寻找的“维度”),下面是如何做到的:
000001B0
(十六进制)它始终是您得到流的第一件事。如果没有,请查看流的SDP(如果有的话,请搜索config=
字段,它就在那里…只是现在它是一个Base16字符串000001B6
(十六进制)000001B0F500001B58913000001000001200086C40FA28 A021E0A2
A021E0A2
) WIDTH = readBitsUnsigned(array, 8) * 4;
readBitsUnsigned(array, 7);
HEIGHT = readBitsUnsigned(array, 9);
这就是…宽度和高度。(:这是正确的吗?我正在尝试解码一个我知道是1280x1024的流的帧。根据这个逻辑,宽度不能超过1020,高度不能超过511。宽度应该乘以8而不是4,从最后5个字节读取的整数也应该乘以2而不是4个字节。