Объедините два файла транспортного потока 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 с помощью графического интерфейса:
- Нажмите кнопку "Добавить", чтобы добавить первый файл.
- Нажмите кнопку "Присоединиться" и выберите второй файл. Нажмите кнопку "Присоединиться" еще раз, чтобы выбрать третий файл и т. Д. (К сожалению, начиная с версии 2.6.12, каждый файл необходимо объединять по отдельности. Возможно, вы захотите использовать инструмент командной строки, если файлов много).
- Выходное имя файла должно быть автоматически выбрано для вас, но вы можете изменить путь к выходному файлу в разделе "Вывод".
- Нажмите кнопку "Начать мультиплексирование".