使用 IMFSinkWriter 更改标题、作者等元数据
Posted
技术标签:
【中文标题】使用 IMFSinkWriter 更改标题、作者等元数据【英文标题】:Changing the metadata like title, author using IMFSinkWriter 【发布时间】:2019-11-13 04:44:57 【问题描述】:我正在使用来自Tutorial: Using the Sink Writer to Encode Video 的 SinkWriter 示例。我想为生成的 mp4 文件添加一个标题,类似于以下内容。
_bstr_t strTitle =L"dksldk";
CComPtr<IWMHeaderInfo> pHeaderInfo;
ComCheck(m_pWriter->QueryInterface( IID_IWMHeaderInfo, (void**)&pHeaderInfo ));
ComCheck(pHeaderInfo->SetAttribute( 0, g_wszWMTitle,
WMT_TYPE_STRING, (BYTE*)(wchar_t *)strTitle, 2*(strTitle.length()+1)));
有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:Sink Writer API 不提供请求的功能。但是您可以完成 MP4 文件的写入,关闭接收器写入器实例,然后使用 Media Foundation MPEG-4 属性处理程序(请参阅SHGetPropertyStoreFromParsingName
和此处的代码 sn-p:Access denied on setting property after clearing same property)将属性添加到完成的文件。
【讨论】:
以上是关于使用 IMFSinkWriter 更改标题、作者等元数据的主要内容,如果未能解决你的问题,请参考以下文章
IMFSinkWriter::BeginWriting 未初始化,因为 IMFMediaEventGenerator 有未决事件
使用 IMFSinkWriter 编码的视频的播放速度根据宽度变化
媒体基础 MP4 编码:IMFSinkWriter 不接受 PCM 输入