У меня есть video
, который состоит из нескольких files
20190211164440_i0007r000f000.m2ts
20190211164440_i0007r000f001.m2ts
20190211164440_i0007r000f002.m2ts
...
У меня есть несколько таких videos
, снятых разными камерами, включенных в несколько разное время, и поэтому;видео не синхронизированы.Я не могу изменять / копировать / удалять файлы, и мне приходится работать с этими файлами такими, какие они есть.
Я пытаюсь создать приложение на C # / WinForms, которое может просматривать такие видео синхронно на основезаданное смещение пользователем.
Таким образом, я бы video 1
загрузил как «родительский» и video 2
загрузил как «дочерний».И скажем, что каждый файл длится всего 5 минут (300 с).Когда я нажимаю кнопку воспроизведения на родительском видео, дочернее видео также должно воспроизводиться, то же самое для паузы.Поскольку видео не синхронизировано, у меня будет «смещение» на дочернем видео.Например: если смещение установлено на -180
(-3 мин) (и родительское видео находится на currentPostion=440
(7:20 / 2:20 в файл № 2), дочернее видео будет на currentPosition=260
(4:20 / 4:20 в файл # 1).
У меня уже много кода, содержащего следующие файлы / логику:
- ControlForm - Основной файл, содержащийкнопки и логику для одновременного воспроизведения / приостановки всех видео и анализа текущего положения родительского видео для дочерних видео.
- VideoContainer - логика для определения используемого файла. Дочерние видео будут содержать данные смещения ииспользуйте его в сочетании с совокупной позицией родителя, чтобы определить его текущее положение для синхронизации с родителем.
- MediaPlayerForm - фактическая форма, которая показывает видео, созданное только при необходимости, содержащее объект axWindowsMediaPlayer.Это должно быть в отдельной форме, потому что мы используем 3 экрана для отображения видео.
- FileContainer - содержащий данные всех отдельных файлов для видео,например, продолжительность, имя, местоположение и т. д.
По мере того, как я все больше и больше углубляюсь в этот проект, он начинает все больше и больше смущать меня.Я пробовал поискать в Google библиотеки, которые выполняют большую часть работы за меня, но я не могу ничего найти.
Идеально было бы, если бы была библиотека, которая делала бы обе вещи для меня, таким образом:
- Объединение нескольких файлов в одном видео / потоке без фактического изменения файлов
- Синхронизация нескольких потоков на основе смещения, предоставленного пользователем
Я неЯ думаю, что есть такая продвинутая библиотека, но я думаю, что есть библиотека, которая может объединять несколько файлов в один поток, которая может определить файл для использования на основе совокупной позиции, проанализированной для этого проигрывателя.
Итак, мой вопрос:
Существует ли библиотека для C # / WinForms, которая может объединять несколько видеофайлов в один поток во время выполнения, не изменяя или копируя файлы и способная определить, какой файлиспользовать, основываясь на проанализированном потоке (совокупном) currentPosition.Так что я бы в основном имел дело с одним «видео».Так что моя единственная задача состоит в том, чтобы синхронизировать их, а не выяснять, какой файл использовать, со всеми необходимыми буферизацией / загрузкой и обратными вызовами.