AVAssetReader, как использовать с потоком, а не с файлом? - PullRequest
0 голосов
/ 15 декабря 2018

AVAssetReader - это фантастика, но я могу видеть только то, как его использовать с локальным ресурсом, файлом или, как мне кажется, композицией,

Итак,

assetReader = try AVAssetReader(asset: self.asset)
...
assetReader.addOutput(readerOutput)

и т. Д.,

Скажем, у вас есть прибывающий поток

(возможно, примеры Apple .M3U8 файлов,

enter image description here

https://developer.apple.com/streaming/examples/)

Фактически, можно ли использовать AVAssetReader для потоков?Или только локальные файлы?

Я просто нигде не могу найти это объяснение.(Может быть, это очевидно, если вы более знакомы с этим.: /)

1 Ответ

0 голосов
/ 16 декабря 2018

Это не очевидно.Объединение комментариев в файле заголовка для AVAssetReader и AVComposition дает сильное впечатление об API, предназначенном только для локальных ресурсов, хотя язык не исключает явно нелокальные ресурсы.

Из AVAssetReader заголовочный файл:

Экземпляры AVAssetReader считывают мультимедийные данные из экземпляра AVAsset, независимо от того, является ли ресурс файловым или представляет собой сборку мультимедийных данных из нескольких источников, как в случае с AVComposition.

и AVComposition:

AVComposition объединяет мультимедийные данные из нескольких локальных файловых источников в произвольном временном расположении для представления или обработки мультимедийных данных.данные из нескольких источников вместе.Все локальные файловые аудиовизуальные ресурсы могут быть объединены независимо от типа контейнера.

Если вас интересует только видео, и вы не возражаете против обработки как части воспроизведения, вы можете захватитькадры из удаленного ресурса, добавив AVPlayerItemVideoOutput к вашему AVPlayerItem.Если вы заинтересованы в аудио, вы в ручье.

...