接到个任务截取一段视频的其中一段,并保存成一个新的文件。
先说简单的方法适合在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_PROP_FPS);
long framewidth = capture.get(CV_CAP_PROP_FRAME_WIDTH);
long framehigh = capture.get(CV_CAP_PROP_FRAME_HEIGHT);
float framecount = capt

本文介绍如何利用OpenCV在Windows系统中截取视频的一部分,并将其保存为新的视频文件。提供了适用于Linux系统的命令行方法以及C++代码示例。
最低0.47元/天 解锁文章
4938

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



