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

Сегментер медиафайлов - это инструмент, предоставленный 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 Ответ

0 голосов
/ 22 апреля 2014

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

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

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