У меня есть несколько сегментов видеороликов, созданных камерой видеонаблюдения через каждые 5 минут, и я хочу программу, которая принимает временные интервалы в качестве входных данных и объединяет все видеоролики, созданные между этим диапазоном камерой видеонаблюдения. Как я могу это достичь?Присоединение видео сегментов от камеры видеонаблюдения
ответ
Эта функция считывает файлы и добавлять их вместе, вы можете расширить эту функцию, чтобы принять диапазон времени:
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();
}
Спасибо, этот код создает целевой файл с размером суммирования нескольких файлов, но когда мы смотрим видео, он воспроизводит только одно видео, первое. – Nirmal
Что вы имеете в виду? – ako
ваши файлы должны быть в порядке, так что все они могут быть добавлены по порядку. Попробуйте переименовать их, например, file1.mp4, file2.mp4 и т. Д. .... – ako
Видео файлы содержат заголовок (с подробной информацией о длине видеоклипа и разрешении) а затем видеоданные.
Когда вы добавляете соединение к файлам, вам необходимо создать новый заголовок с новой длиной всего видео. Для этого требуется программное обеспечение, которое может идентифицировать и изменять заголовки видео.
Лучшим инструментом для этого является программа «ffmpeg», которая может конкатенировать видеофайлы. На веб-сайте ffmpeg есть инструкции https://trac.ffmpeg.org/wiki/Concatenate
Исходные теги, где некорректно, поэтому я выбрал более подходящие. – Alexei