c++ - 如何用Media Foundation生成 "moov before mdat"MP4视频文件

标签 c++ video video-streaming mp4 ms-media-foundation

我发现 Microsoft Media Foundation 生成 MPEG4 文件,其中 MDAT 原子位于 MOOV 原子之前。流式传输需要 MDAT 之前的 MOOV。我假设我的问题的解决方案是使用 MF_MPEG4SINK_MOOV_BEFORE_MDAT创建接收器时的属性,但我似乎无法让它产生效果。我的代码与 http://blogs.msdn.com/b/eternalcoding/archive/2013/03/06/developing-a-winrt-component-to-create-a-video-file-using-media-foundation.aspx 大致相同.在该示例中,我在设置 MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS 之前将属性设置为 UINT32 TRUE。

最佳答案

如果您无法让编码器输出一个开头带有 moov atom 的文件,您总是可以在之后更正该文件。这两个实用程序都应该在 Windows 上运行,并且可以解决问题。 (尽管名称中有“qt”,它们都可以毫无问题地处理 .mp4 文件)

https://github.com/danielgtaylor/qtfaststart

http://ffmpeg.zeranoe.com/blog/?p=59

关于c++ - 如何用Media Foundation生成 "moov before mdat"MP4视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085362/

相关文章:

android - 当 Activity 恢复并重新启动时,VideoView 停止显示

c++ - Qt C++ - 如何保护文件

c++ - 如何在c中将文本文件转换为位图图像?

c++ - MATLAB Coder 函数在 2014a 中未定义

c++ - 如何将文件的路径(或任何文本)显示/附加到编辑框中? (C++ Win32 API)

video - ffmpeg 来自 hh :mm:ss to seconds

flash - MP4 视频略微异步 - 但仅在初始播放时

javascript - Twilio API : Join video conference without camera

node.js - 在本地测试视频聊天应用程序的最佳方法是什么?

java - 如何在 Spring MVC 中实现 HTTP 字节范围请求