作者:v05736708 | 来源:互联网 | 2023-02-01 09:24
我把位图作为BYTE数组保存,它以微软CBitmap类的非常相似和可互换的格式保存每个像素的RGB值.所以让我们考虑一下我有一个CBitmaps数组,我想用MediaFoundation Transcode Api将它们转换为mp4,如下例所示:toMp4.但是在此示例中,它们从URL流式传输.
// Use the source resolver to create the media source
hr = pResolver->CreateObjectFromURL(pszURL, MF_RESOLUTION_MEDIASOURCE, NULL, &ObjectType, &pSource);
在我的情况下,我的记忆中有我的位图.所以我相信我可以使用这个功能.IMFSourceResolver :: CreateObjectFromByteStream
我不确定这是否可行.总结如何使用转码api将我的CBitmap数组转换为mp4?
1> Roman R...:
转码API假设您具有Media Foundation认可的某种"格式"操作的源和目标.也就是说,源和目标都由Media Foundation源和接收器表示,然后API涵盖了将一个转换为另一个的过程.
这不是你的情况.您的来源不是Media Foundation友好的.
对于您而言,适当的API是Sink Writer.它提供了一个友好的界面,可以将非Media Foundation数据推送到Media Foundation管道,并通过Media Foundation生成编码的视频文件.
也就是说,从图像中获取位图位,将Sink Writer实例配置为接受这种输入格式,然后处理编码.
请参阅教程:使用接收器编写器对视频进行编码,以获取相应的示例代码和整个过程的指导.