接到个任务截取一段视频的其中一段,并保存成一个新的文件。
先说简单的方法适合在Linux系统直接调用的命令
ffmpeg -i ./stream1.mp4 -vcodec copy -acodec copy --ss 00:00:10 -to 00:00:20 stream2.mp4 -y
如果你是在windows下那么opencv可以帮你解决这个问题,直接看代码
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
//思路很简单 总秒数 = 小时*3600 + 分钟*60 + 秒
int calc_second(char* temp)
{
int flag=1,second=0;
if(temp == NULL)
return 1;
while(*temp != '\0')
{
int count=((*temp++)-48)*10 + (*(temp++)-48);
if(flag==1)
second += count*3600;
if(flag==2)
second += count*60;
if(flag==3)
second += count;
++flag;
++temp;
}
return second;
}
int process(VideoCapture& capture,int start_second,int end_second)
{
float fps = capture.get(CV_CAP_PRO