gpt4 book ai didi

c++ - 将视频文件加载到 C++ 中的缓冲区中

转载 作者:可可西里 更新时间:2023-11-01 11:38:18 24 4
gpt4 key购买 nike

我目前正在尝试创建一个程序来获取视频文件(通常是 AVI),并尝试将其转换为图像。到目前为止,我的流程运行得非常完美,如果需要的话可以不用管它。但是,我想看看是否可以优化它以提高速度。所以我的问题是,是否可以将视频文件的一部分逐 block 加载到内存中,而不是流式传输。也许将 2 - 3 分钟的剪辑加载到缓冲区中,对其进行处理,然后在接下来的 2 - 3 分钟的视频中重新使用它。我研究了 Direct Show 和 OpenCV 以加载和播放视频文件,但到目前为止还没有找到任何关于将视频加载到缓冲区中的信息。非常感谢任何指向教程或概念的链接。

如果有帮助,将在 Windows XP/7 机器上开发。

最佳答案

你可以做的是加载一些帧,我们称之为 N 帧的 block ,从磁盘到队列中。一旦为缓冲区设置了限制,就可以将帧拉出并进行处理。您可以使用两个队列(Q1 和 Q2)和两个线程(T1 和 T2)并行执行此操作。在使用 T2 处理来自 Q1 的帧时,您可以使用 T1 加载 Q2。您将在一个队列已满时进行上下文切换,并在另一个队列从磁盘加载帧时将帧拉出并处理它们。当然,您需要处理与这种方法相关的线程/并行化复杂性,在这种情况下,BOOST 线程可能会有所帮助。

关于c++ - 将视频文件加载到 C++ 中的缓冲区中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888316/

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