我每隔5分钟就有一个由CCTV摄像机创建的多个视频片段,我想要一个接受时间范围作为输入的节目,并加入所有视频,由CCTV摄像机在该范围之间创建。我怎样才能做到这一点?
答案 0 :(得分:0)
此函数读取您的文件并将它们附加在一起,您可以将此函数扩展为接受时间范围:
public void AppendFiles2(string SavePath)
{
int bytesRead;
byte[] buffer = new byte[1024];
string[] files = Directory.GetFiles(@"path").ToArray(); // Array of files to be appended
FileStream fswrite = new FileStream(SavePath + @"\FileName" + Path.GetExtension(files[0]), FileMode.Append, FileAccess.Write);
for (int i = 0; i < files.Length; i++) //for each file in the files array reasd them and append
{
FileStream fsread = new FileStream(files[i], FileMode.Open, FileAccess.Read);
bytesRead = 1;
while (bytesRead != 0)//while not at the end of file
{
bytesRead = fsread.Read(buffer, 0, buffer.Length); //read file
fswrite.Write(buffer, 0, bytesRead); //write ( append ) it to the target file
}
fsread.Close();
}
fswrite.Close();
}
答案 1 :(得分:0)
视频文件包含一个标题(包含有关视频片段长度和分辨率的详细信息),然后是视频数据。
当您添加联接文件时,您需要创建一个具有所有视频新长度的新标题。这需要能够识别和更改视频标题的软件。
最好的工具就是&#39; ffmpeg&#39;可以连接视频文件的程序。 ffmpeg网站上有说明https://trac.ffmpeg.org/wiki/Concatenate