Объедините два файла транспортного потока mpeg-2 в один медиа-файл на iOS

Сегментер мультимедийных файлов - это инструмент, предоставляемый Apple. Он может делить один мультимедийный файл на серию небольших файлов транспортного потока mpeg-2 для HTTP Live Streaming.

Теперь я хотел бы выполнить обратную работу: объединить все файлы транспортного потока mpeg-2 в один медиа-файл (mp4) для воспроизведения на iPhone.

Я пытался использовать AVFoundation классы AVURLAsset, AVMutableComposition, AVMutableCompositionTrack и т.д. я кодирую что-то вроде:

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:mpeg2tsMediaURL];
NSLog("duration: %lld", [asset duration].value); // shows empty duration here

Я пытаюсь напечатать другие свойства, такие как AudioTrack, VideoTrack. Все свойства пусты, ресурс является пустым объектом. Когда я переключаю mpeg2tsMediaURL на обычный URL-адрес файла mp4, он может отображать свойства правильно. Таким образом, это не использовать классы AVFoundation, чтобы сделать работу.

Любое предложение приветствуется. Благодарю.

1 ответ

Вы можете комбинировать файлы транспортного потока MPEG, используя tsMuxeR.

Чтобы объединить файлы TS с помощью графического интерфейса:

  1. Нажмите кнопку "Добавить", чтобы добавить первый файл.
  2. Нажмите кнопку "Присоединиться" и выберите второй файл. Нажмите кнопку "Присоединиться" еще раз, чтобы выбрать третий файл и т. Д. (К сожалению, начиная с версии 2.6.12, каждый файл необходимо объединять по отдельности. Возможно, вы захотите использовать инструмент командной строки, если файлов много).
  3. Выходное имя файла должно быть автоматически выбрано для вас, но вы можете изменить путь к выходному файлу в разделе "Вывод".
  4. Нажмите кнопку "Начать мультиплексирование".
Другие вопросы по тегам