#iphone #ios #avfoundation #mpeg2-ts #avurlasset
#iPhone #iOS #avfoundation #mpeg2-ts #avurlasset
Вопрос:
Media file segmenter — это инструмент, предоставляемый Apple. Он может разделить один медиафайл на серию небольших файлов транспортного потока mpeg-2 для прямой трансляции по HTTP
Теперь я хотел бы выполнить обратную работу: объединить все файлы транспортного потока 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, вам придется объединять каждый файл по отдельности. Возможно, вам захочется использовать инструмент командной строки, если файлов много.)
- Для вас должно быть автоматически выбрано выходное имя файла, но вы можете изменить путь к выходному файлу в разделе «Вывод».
- Нажмите кнопку «Начать мультиплексирование».
Комментарии:
1. Я только что использовал это для успешного объединения файлов 21 .ts, я, вероятно, создам свой собственный графический интерфейс, поскольку кнопка объединения довольно раздражает