Media Foundation SinkWriter (MP4 FastStart)

Media Foundation SinkWriter (MP4 FastStart)

本文关键字:FastStart MP4 Foundation SinkWriter Media      更新时间:2023-10-16

我正在使用媒体基础在一系列过滤器后从输入MP4中创建MP4(H264 + AAC)输出文件。视频的创建工作完美,视频在本地复制没有问题。问题是,当远程执行(通过网络播放器甚至VLC)时,视频在完全下载之前不会开始。

我检查并确认托管该文件的 http 网站支持 Accepts-Range 标头字段,过了一会儿,我发现出现问题是因为该文件尚未使用允许逐步下载视频的"快速启动"标志创建。

我试图在网上搜索解决方案,但我无法找到一种方法来应用媒体基金会的Sinkwriter。知道吗?(我不能使用任何外部应用程序来执行此操作,因为此代码将在 Windows 应用商店环境中运行)

渐进式下载要求moov框位于 MPEG-4 文件中mdat框之前,这在生成文件时通常需要额外的工作,这不是媒体基础的默认行为。

媒体基金会引入了MF_MPEG4SINK_MOOV_BEFORE_MDAT属性来处理此问题:

mpeg4 媒体接收器的默认行为是在后面写入"moov" "mdat"框。设置此属性会导致生成的文件写入 "mdat"框之前的"moov"。

为了使 mpeg4 接收器使用此属性,字节流 传入的 不得是慢速查找或远程 。

此功能涉及额外的文件复制/重新复制。

请注意最低要求。或者,您需要对文件进行后处理,以将moov框移动到开头。

另请参阅:

  • 如何使用媒体基础生成"mdat 前的 moov"MP4 视频文件