我只想使用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/