我的视频长度大约每个25分钟,我希望从开始使用python几秒钟.
搜索一下,我偶然发现了python的moviepy包.问题是,即使是单个视频也需要花费很多时间.以下是我用于从单个视频开始剪切7秒的代码片段.写入过程会耗费大量时间.有没有更好的方法来使用python剪切视频?
from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")
Run Code Online (Sandbox Code Playgroud)
如果我错过了任何细节,请告诉我.
任何帮助表示赞赏.谢谢!
我遇到了以下问题:
假设我修改了4n个不同数字的给定排序列表,如下所示:
将元素保持在偶数位置(位置2,4,6,... 4n).在奇数编号的位置上形成n个不相交的对(i,j),其中对于某些k = 0到n-1,i = 2k + 1,对于某些k = n到2n-1,j = 2k + 1.
现在交换位置i和j中的元素用于每个这样的对.(即,数组前半部分奇数编号位置的每个元素与数组后半部分奇数编号位置的某个元素交换.多个交换中不涉及任何元素(即交换是不相交的)你不知道这些(i,j)对,除了在数组的前半部分中奇数编号位置的元素与后半部分中奇数编号位置的某个元素交换.现在给出一个元素x,解释如何在O(logn)时间内确定x是否在(new reshu ffl ed)数组中.
老实说,我不知道如何处理这个问题.给定x,我可以使用二分搜索搜索它是否存在于任何偶数位置.但奇数位置的数字不再排序.
任何帮助表示赞赏.谢谢!
以下是我写的代码.
#include <iostream>
#include <vector>
#include <list>
#include <queue>
using namespace std;
const int V=5;
vector<list<int> > a(V);
int BFS(int s)
{
int visited[V]={0};
queue<int> Q;
visited[s]=1;
Q.push(s);
while(!Q.empty())
{
int x=Q.front();
vector<list<int> >::iterator it1=a.begin()+x;
list<int> it2=*it1;
list<int>::iterator iter=it2.begin();
while(iter!=it2.end())
{
if(visited[*iter]==0)
{
visited[*iter]=1;
Q.push(*iter);
}
visited[x]=2;
Q.pop();
iter++;
}
}
return 0;
}
void addEdge(int i, int j)
{
a[i].push_back(j);
a[j].push_back(i);
}
int main() {
vector<list<int> >::iterator it1=a.begin();
addEdge(0,1);
addEdge(0,2);
addEdge(2,1);
while(it1!=a.end())
{
list<int> it2=*it1;
list<int>::iterator iter=it2.begin();
while(iter!=it2.end())
{ …Run Code Online (Sandbox Code Playgroud)