OpenCV是一个开源的计算机视觉库,提供了丰富的图像和视频处理功能。使用OpenCV C++可以从视频文件中保存指定时长的视频。
首先,需要安装OpenCV库并配置开发环境。可以参考OpenCV官方文档进行安装和配置。
接下来,使用以下步骤从视频文件中保存10秒的视频:
#include <opencv2/opencv.hpp>
cv::VideoCapture video("video_file_path");
if (!video.isOpened()) {
// 处理视频文件打开失败的情况
}
double fps = video.get(cv::CAP_PROP_FPS);
int totalFrames = video.get(cv::CAP_PROP_FRAME_COUNT);
int saveFrames = 10 * fps; // 10秒的帧数
if (saveFrames > totalFrames) {
saveFrames = totalFrames; // 如果视频时长不足10秒,则保存全部帧数
}
cv::VideoWriter writer("output_file_path", cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), fps, cv::Size(video.get(cv::CAP_PROP_FRAME_WIDTH), video.get(cv::CAP_PROP_FRAME_HEIGHT)));
if (!writer.isOpened()) {
// 处理视频编写器创建失败的情况
}
cv::Mat frame;
int frameCount = 0;
while (frameCount < saveFrames && video.read(frame)) {
writer.write(frame);
frameCount++;
}
video.release();
writer.release();
完成以上步骤后,指定时长的视频将保存在指定的输出文件路径中。
推荐的腾讯云相关产品:腾讯云视频处理服务(视频处理、视频点播、视频直播等),详情请参考腾讯云视频处理服务官方文档:https://cloud.tencent.com/product/vod
领取专属 10元无门槛券
手把手带您无忧上云