c++ - 从OpenCV的视频捕获中仅读取mp4文件的一部分

标签 c++ opencv video-processing

我只想使用Videocapture读取mp4文件的一部分,这是在Videocapture对象中读取整个mp4的示例代码。

VideoCapture cap("demo.mp4");
是否可以只读取文件的一部分,即从10秒到50秒。
由于demo.mp4文件很大,因此我不想将其余部分加载到对象中,这会增加程序的内存使用率。
我还使用了cap.set(CAP_PROP_POS_FRAMES, start_frame);,它可以工作,但是不能解决内存使用问题。
谢谢

最佳答案

您可以尝试使用ffmpeg剪切视频,然后再使用VideoCapture打开。例如,要获取从00:10到00:50的40秒片段,命令是

ffmpeg -i 'input.mp4' -ss '00:00:10' -t '00:00:40' output.mp4

关于c++ - 从OpenCV的视频捕获中仅读取mp4文件的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63872463/

相关文章:

ffmpeg - 从视频文件中提取 vanc 数据/帧 hexdump

c++ - 内存寄存器的名称是如何分配的?

c++ - cpack deb 生成器组件输出名称

c++ - 'ClassName' 和 'ClassInstance' 未在此范围内声明

java - 从 JNI 共享库访问其他库 - 是否允许?

python - 使用 Python OpenCV cv2.VideoCapture() 直接读取灰度视频帧

video - 将两个视频叠加到静态图像上?

c++ - 专门化模板定义中的模板成员

opencv - 使用 openCV(.release() 和 =Mat() 释放 Mat 图像不起作用)

java - Opengl es 2.0 在视频上绘制位图叠加