Media Foundation SinkWriter (MP4 FastStart)
Media Foundation SinkWriter (MP4 FastStart)
我正在使用媒体基础在一系列过滤器后从输入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 视频文件
相关文章:
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 如何使用OpenCV-C++编写*.mp4视频?
- 无论如何可以将webm / mp4文件编译/记忆为.exe程序吗?(C++)
- 转换 mp4 文件并将其流式传输到带有树莓派的查看器
- 如何使用Qt多媒体和C++将.mp4视频从OpenGL纹理中保存出来
- OpenCV:FFMPEG:编解码器 ID 12 和格式 'mp4 / MP4 不支持标记
- ffmpeg/libx264 C API:从短 MP4 末尾丢弃的帧
- MediaFoundation,位图数组到mp4
- 在UWP中生成实时MP4
- C OPENCV 3.4 / FFMPEG 3.4.1 VIDEOWRITER和MP4输出文件格式
- FFMPEG生成的零散的MP4文件和代码之间的不同之处在于
- 在Ubuntu中使用VideOwriter(OpenCV)保存视频作为MP4时出错
- 碎片MP4-在浏览器中播放时出现问题
- MF SinkWriter mp4文件的播放持续时间是添加音频样本时的一半,图像的播放速度也是添加音频样本的两倍
- 如何使用Media Foundation从MP4视频中丢弃任意帧
- 使用媒体基础从h.264字节流(附件B)创建MP4容器
- 将视频保存在mp4容器中时FPS太高
- 寻求使用 FFmpeg 在 mp4 容器中 h264 编解码器的视频帧.数据包 pts 始终为 0
- 解码mp4到原始帧windows c++
- Media Foundation SinkWriter (MP4 FastStart)