如何将编码 h264 写入文件以外的字节数组

Posted

技术标签:

【中文标题】如何将编码 h264 写入文件以外的字节数组【英文标题】:How to write encode h264 to a byte array other than a file 【发布时间】:2012-01-06 14:26:12 【问题描述】:

我正在使用 MSDN 教程将 RAW RGB32 帧编码为 h264 视频,这第一部分可以正常工作。 (http://msdn.microsoft.com/en-us/library/ff819477%28v=VS.85%29.aspx)

但是,有一个想法是我可以做的:我只想将输出编码的视频写入文件以外的字节数组,我已经阅读了大约 400 个不同的网页和所有媒体基金会文档,但我没有不知道怎么做!!

我尝试了许多不同的方式,使用 MFCreateTempFile 并使用 IMFByteStream 但无事可做!

在我尝试过之后: http://msdn.microsoft.com/en-us/library/windows/desktop/ms698913%28v=VS.85%29.aspx 但是我的缓冲区是空的!

请帮帮我!!我要瞎了眼!!

【问题讨论】:

【参考方案1】:

H.264 Video Encoder 是一个 MFT,即它公开了IMFTransform interface 并且不一定需要参与会话。您可以独立实例化它,对其进行设置并通过其ProcessOutput 方法获取原始 H.264 编码数据。

【讨论】:

我正在阅读文档,它似乎像 sinkwriter 一样工作:使用 processInput 和 processOut,我可以像你说的那样读取缓冲输出!现在我需要找到一个快速的 RGB 到 YUV 的实现!感谢您的快速响应!

以上是关于如何将编码 h264 写入文件以外的字节数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将字节数组写入文件? [复制]

如何将字节数组写入 Android 中的文件?

如何将 zip 文件从字节数组写入磁盘

使用 Avro 将对象编码为 Python 中的字节数组

java如何获取字符串的字节数

(java)如何获取字符串的字节数!