如何确定 Media Foundation 中特定 MJPEG 子类型的色度子采样?

Posted

技术标签:

【中文标题】如何确定 Media Foundation 中特定 MJPEG 子类型的色度子采样?【英文标题】:How to determin the chroma subsampling of a particular MJPEG subtype in Media Foundation? 【发布时间】:2019-11-13 08:32:30 【问题描述】:

在 Media Foundation 中读取可用媒体类型时,是否有任何方法可以确定用于特定 MJPG 格式的色度二次采样(即 4:4:4 与 4:2:0 等),还是您必须自己提取该信息从 JPEG 数据开始抓取帧?

【问题讨论】:

【参考方案1】:

简短回答:您需要提取 JPEG 然后查看它。

更长的答案:Media Foundation 并不完全处理 JPEG,作为 JPEG 图像序列的 Motion JPEG 不必具有像色度二次采样这样的细节。它甚至可以在帧之间变化,并且通常假设 Motion JPEG 是好的,只要单个帧是可解码的。

解复用器可能会从轨道元数据或其他方式读取子采样信息(包括按照您的建议从第一帧内部提取该信息),然后将其作为 MJPG 视频媒体类型的自定义属性公开,但我怀疑任何现有的多路分解器,尤其是库存的多路分解器正在解决问题。

【讨论】:

以上是关于如何确定 Media Foundation 中特定 MJPEG 子类型的色度子采样?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Media Foundation 从 MP4 视频中丢弃任意帧?

Media Foundation Capture - 如何检测真正的原生输入格式

如何使用 Media Foundation 从 IMFSourceReader 播放音频缓冲区

如何在没有拓扑的情况下将 Windows Media Foundation 与 UWP 结合使用

如何检查 Media Foundation 是不是可以实际播放文件而不仅仅是加载它

如何使用 Media Foundation 生成“moov before mdat”MP4 视频文件