![]() |
1
1
1)如果将编码的比特流包装在
IMFSample
你可以打电话
IMFStreamSink::ProcessSample
. 把它包在
2)创建MPEG-4接收器时,通过
MFCreateMPEG4MediaSink
你通过了
IMFByteStream
实例。您可以创建自己的类来实现这个接口,并将数据直接写入内存或任何需要的地方。如果您不想进行完整的实现,那么
MFCreateMFByteStreamOnStream
和
MFCreateMFByteStreamOnStreamEx
它可以包装一个
IStream
实例转化为
我已经使用英特尔SDK很久以前,但如果我记得它有一个MFT兼容的编码器,但我总是使用普通的C++一个,因此我不知道它们在配置方面的不同。但是如果MFT一个工作,那么你可以设置一个合适的流水线,而不用像(1)中所述的那样处理比特流样本,只需处理(2)。 另外,从性能上讲,据我所知,Intel SDK也在Direct3D表面上工作,因此您可以研究 MFCreateDXSurfaceBuffer 使用Direct3D曲面而不是内存缓冲区来包装数据。 |