gpt4 book ai didi

c++ - 将空包写入avi文件ffmpeg

转载 作者:行者123 更新时间:2023-12-04 23:18:20 27 4
gpt4 key购买 nike

一个任务:
我有一个值得信赖的视频事件检测器。我 100% 信任我的事件检测器,并且只有当我的事件检测器产生“真实”结果时,我才想将未压缩的帧写入我的 avi 容器。
对于帧,当我的事件检测器产生“假”时,我想写一个空包,因为我想知道有一个没有事件发生的帧。
是否可以保持 AVI 文件处于事件状态?还是在这种情况下我需要编写自己的播放器?
另一种选择是手动计算时间戳并将 dts/pts 设置为计算的时间。
缺点:我需要重新计算时间戳以了解事件之间的帧数。
我在用:

av_write_frame(AVFormatContext, AVPacket);



av_interleaved_write_frame(AVFormatContext, AVPacket);


你的建议/想法是什么?
先感谢您。

最佳答案

了解 AVI 规范,我认为没有“空包”之类的东西,因为 AVI 将其帧密集存储而没有帧时间戳。如果文件大小没有问题,您可以重复相同的帧以指示未检测到的事件(使用 freezedetect 过滤器撤消)或插入全零帧(使用 blackdetect 过滤器撤消)。然而,使用 matroska 容器和可变帧速率与无损 h264 配对似乎更好(更符合您的替代选项?)。只是我的2美分。

关于c++ - 将空包写入avi文件ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71931160/

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