是否可以使用 Microsoft Windows Media Foundation 创建/编码可变帧速率视频文件?

问题描述

我已成功创建了一个应用程序,该应用程序将 JPEG 文件放入 MKV (Matroska) 容器中,其中每一帧都可以有不同的持续时间。这些文件(例如:https://drive.google.com/file/d/1kVfMqr8CpwxOSSjNojPlzFVJWuu5MoNv/view?usp=sharing)可以在 VLC、FFMPEG 和 Windows Media Player 中正确播放。

我成功地使用 FFMPEG 将此文件转换为 MP4 容器中的 MJPEG 视频流,并保留了帧数和时间。理论上是否可以在 Windows 10 中使用 Media Foundation API 进行相同的文件转换,或者更好的是,将视频流压缩为 H.264,同时保留帧数和时序?

我尝试使用 Media Foundation IMFSinkWriter 创建 VFR 视频(MP4 中的 H.264)的第一次实验失败了,因为文件最终会保持恒定的帧速率,而我的源帧被大量复制(如果输出视频文件帧率高于输入帧率)。现在我想知道我是否应该花时间改用 IMFMediaSession 重写它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)