use*_*710 5 c++ windows video winapi ms-media-foundation
我正在尝试将 2 个视频合成为一个(也是音频)并另存为文件。比如说,在最终视频的左半部分显示源视频,在右侧显示其他源。任何编码都可以。不适用于 DirectShow。
我怀疑 IMFVideoMixerControl 可能与此有关,但不幸的是,我对 MF 太陌生,无法确定要采取的正确步骤来实现这一目标。如果您能给我一些指导,或者网络上有任何示例,请告诉我。感谢您的帮助。
IMFVideoMixerControl用于渲染视频。看看 SourceReader,您就走在正确的轨道上了。
这就是我要做的:
IMFSourceReader为每个视频源创建一个。IMFSinkWriter框架并将其配置为等于源阅读器框架宽度之和的框架宽度。
IMFSourceReader::GetCurrentMediaType获取源媒体类型。MFGetAttributeSize与 GUID 一起使用MF_MT_FRAME_SIZE来获取每种源类型的框架尺寸。MFCreateMediaType并用于IMFMediaType::CopyAllItems将属性从源复制到接收器媒体类型。MFSetAttributeSize与 GUID 一起使用MF_MT_FRAME_SIZE来设置水槽类型的增加的框架尺寸。IMFSinkWriter::AddStream创建与源类型相同的视频流,宽度属性除外IMFSample,附加一个IMFMediaBuffer具有增加的框架宽度的新的。MFCopyImage将每个源缓冲区复制到分配的媒体缓冲区的相应一侧。IMFSinkWriter::WriteSample将您的IMFSample内容写入文件接收器。请参阅此示例以了解一些基本的 SourceReader/SinkWriter 处理,尽管此示例使用视频捕获源而不是文件。MFCreateSourceReaderFromURL您可以使用而不是创建文件 SourceReader MFCreateSourceReaderFromMediaSource。
编辑:我意识到你也问过音频问题。我的回答仅涉及合成视频流。
| 归档时间: |
|
| 查看次数: |
2137 次 |
| 最近记录: |