剪切视频的小程序

前几天需要把视频剪成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;  //视频帧写入

        imshow("Video", frame);  //播放视频帧 
++i;   // 数字名累加
        c = waitKey(50);    // 每50ms播放一帧,按Esc退出
        if (c == 27)
            break;
    }
    destroyAllWindows();
    cap.release();

    return 0;
}

程序里最重要的是这行代码:

writer.open(name2,CV_FOURCC('D', 'I', 'V', '3'), 25.0, Size(432, 240));                     
具体可以参照一下下面的链接:
http://blog.csdn.net/yang_xian521/article/details/7440190
大概的东西都在注释里说了,就不罗嗦了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是你的春哥!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值