2

Я написал универсальное приложение для Windows 8.1 и Windows Phone 8.1 с помощью C#, которое позволяет пользователю записывать видео и отправлять его клиенту, но теперь есть требование объединить несколько видео в 1 видео, но не может видеть ничего доступного в WinRT, чтобы поддержать это.Возможно ли объединить/объединить видеофайлы в WinRT?

Можно ли это сделать?

+0

У меня есть ощущение, что вы должны будете знать больше о кодировании файла в вопросе.Если это так просто, как объединение двух двоичных файлов в один, это очень выполнимо. Если в двоичных файлах есть заголовки и метаданные, которые необходимо объединить/удалить, вам придется идентифицировать и найти их. У вас есть доступ к потокам байтов напрямую и можно манипулировать ими как таковыми. –

+0

В настоящее время я работаю над тем, что они представляют собой один и тот же формат видео, разрешение и т. Д. И записываются на одном устройстве с той же камерой. –

+0

Формат и не обязательно важны. Что вам нужно выяснить, так это спецификация кодировки файлов. Рассмотрим кодировку, которая является [Header] + [Video Data]. При объединении двух файлов, если вы сделали это прямо, вы получите [Header1] + [Video1] + [Header2] + [Video2]. Однако, если вы удалили [Header2], вы получите [Header1] + [Video1] + [Video2]. Это будет не так просто. Вероятно, вам нужно будет изменить заголовок видеофайла, чтобы включить такие вещи, как обновленная длина. –

ответ

2

Предполагая, что видео уже записаны на диск, вы можете объединить их, используя несколько разных методов в зависимости от платформы. Начнем с Windows 8.1. На этой платформе у нас нет API-интерфейса для редактирования, и вам нужно будет конкатенировать файлы программным путем.

Это можно сделать, используя Source Reader и Sink Writer. Эти два компонента позволяют вам читать аудио- и видеопотоки из файла, а затем записывать их в другой файл. Вы можете использовать один источник для каждого потока и один Sink Writer.

Устройство чтения истоков способно анализировать контейнер файлов и передавать вам сжатые или несжатые образцы. Если все входные файлы имеют ТОЧНО одни и те же типы носителей, то теоретически можно записать несжатые образцы в Sink Writer. Вам также необходимо настроить Sink Writer с этим типом носителя.

Если вы просто хотите объединить файлы, вы можете прочитать образцы из Source Reader 1 и отправить их в Sink Writer. После того, как вы написали все образцы с помощью функции «Исходный читатель 1», перейдите к «Исходному считывателю 2», «3» и т. Д.

Трюк, чтобы получить это право, - это переустановка временных меток для образцов мультимедиа в последующих файлах. Например: если у вас частота кадров 30 FPS, а последняя отметка времени была 00: 00: 02: 25 (SMTP без капли), вам нужно будет изменить первый штамп времени, который вы получаете от следующего считывателя источника, 00: 00: 02: 26. В основном вам нужно будет добавить 00: 00: 02: 25 + 1 к каждой последующей отметке времени. Вы должны убедиться, что отметки времени монотонно увеличиваются при ожидаемой каденции (30 FPS) и никогда не повторяются.

В Windows Phone 8.1 проблема намного проще решить. С WP8.1 мы представили пространство имен Windows.Media.Editing, чтобы помочь в задачах редактирования видео. Использование этих API очень просто. Вот вид 10 000 футов:

1) Создайте объект MediaComposition.

2) Установите профиль кодирования.

3) Создайте MediaClip объекты, которые представляют файлы, которые вы хотите объединить.

4) Добавьте объекты MediaClip в MediaComposition и установите точки входа и выхода.

5) Передайте MediaCompositon в файл.

Хотел бы я предложить хороший образец для обоих из них, но, к сожалению, AFAIK в это время у нас нет ничего доступного. Я действительно запросил образцы MediaComposition, но я не уверен в их статусе.

Чтобы запросить дополнительные образцы, пожалуйста, зайдите сюда: https://code.msdn.microsoft.com/windowsapps/site/requests

Я надеюсь, что это помогает,

Джеймс

+0

Я сделал подход MediaComposition, но есть проблема с аудио, где видео объединяется, но звук воспроизводит двойную скорость: http://stackoverflow.com/questions/28861216/windows-phone-8-1-mediacomposition-audio- слишком быстро, когда-колющие-видео –

Смежные вопросы