前几天需要把视频剪成5秒5秒的小段,手动剪显然太不靠谱,就写了个剪视屏的小程序。
先上程序:
#include "opencv.hpp"
#include "iostream"
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
VideoCapture cap; // 用于打开视频的类
VideoWriter writer; //用于写视频的类
Mat frame; // 暂存视频帧图像
char c = NULL;
string name1="E:\\1\\test.avi"; //原视频路径
string name2="E:\\1\\1.avi"; //视频保存路径
string tmp;
stringstream sstr; //string流,用于把int转为string
cap.open(name1); //打开原视频
int i=0,j=0;
while(cap.isOpened()) //循环到视频最后一帧
{
if(i%145==0) //每145帧存一个视频
{
j=i/145; //新视频名,用数字命名
sstr.str(""); //清空string流,不能用clear()
sstr << j; //int读入sstr
tmp=sstr.str(); //.str()将int转为string
name2="E:\\1\\"+tmp+".avi"; //新视频保存的完整路径
writer.open(name2,CV_FOURCC('D', 'I', 'V', '3'), 25.0, Size(432, 240)); //打开写视频类
}
cap>>frame; //视频帧流入
writer << frame; //视频帧写入

本文介绍了一款用于将视频剪切成5秒片段的小程序。作者通过编程实现自动化剪辑,提高了效率,程序代码中包含了详细的注释,参考链接提供更深入的理解。
最低0.47元/天 解锁文章
696

被折叠的 条评论
为什么被折叠?



