gpt4 book ai didi

c++ - 自定义 avi/MP4 文件编写器

转载 作者:行者123 更新时间:2023-11-28 03:54:53 24 4
gpt4 key购买 nike

我正在用相机在 Windows 下写一些视频文件。
我需要未更改的数据 - 而不是 MP4 的“未压缩”即。没有 YUV,没有颜色插值 - 只有原始相机传感器字节流。

目前我正在将其直接写入磁盘并稍后重新读取以重新编码为可用视频。但是没有标题,我必须单独跟踪图像大小、帧速率、色彩平衡等。

我可以添加一个自定义 header ,但即使实际视频数据无法被我的应用程序以外的任何东西读取,使用 AVI 文件至少会给我一个相对标准的 header 来存储所有相机参数,也意味着分辨率,长度等将显示在资源管理器中。

有没有一种无需通过 directshow 或 vfw 发送所有数据即可生成 AVI 页眉/页脚的简单方法?数据以 >250MB/s 的速度传入,我不会丢失任何帧,所以除了将每一帧转储到磁盘外,我没有时间做更多的事情。

编辑:也许 MP4 会更好我有很多关于相机配置的元数据不在 AVI 标准中

最佳答案

好吧,在弄清楚什么是“合理的”AVI header 适合您的流之后(例如,如果您使用自定义编解码器 fourcc,没有应用程序可能能够用它做有用的事情——那么为什么要用 AVI 呢?)你可以在文件的开头写一个预构建的 RIFF-AVI 头文件。计算这些值并不难。

然后每个帧都必须包含在它自己的 RIFF block 中(4 字节类型:“00db”+ 4 字节长度 + 您的数据)。事实上,您必须修复 header 中的 num_frames 和一些长度字段。对于大于 2GB 的文件,不要忘记 header 的 OpenDML 扩展名。

关于c++ - 自定义 avi/MP4 文件编写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com