Очевидно, что AVFoundation (и Quicktime X) могут демультиплексировать и воспроизводить правильно закодированные .ts
контейнеры, потому что .ts
контейнеры лежат в основе потоковой передачи HTTPS.
За исключением настройки локальной веб-службы для обслуживания .m3u8
и связанных с ней .ts
файлов, я действительно хотел бы иметь возможность: убедить AVURLAsset
и / или URLAssetWithURL
принять локальный файл .m3u8
URI, как если бы это был HTTP URI, или, что еще лучше, можно использовать AVQueuePlayer
для загрузки и воспроизведения последовательности файлов .ts
без перехода через живые потоковые циклы.
Причина, по которой я хочу это сделать, заключается в том, что мне нужно локально генерировать активы фильма на лету несколько по частям - весь ресурс не будет доступен сразу, но будет сгенерирован с течением времени. , Очевидно, это поддается AVQueuePlayer
, но по разным причинам мои фрагменты активов упакованы в .ts
контейнеры. Все это звучит так, как будто оно идеально подходит для "локальной" трансляции в прямом эфире.
Я подозреваю, что URLAssetWithURL
делает некоторую квалификацию передаваемой ей строки, а затем устанавливает некоторые свойства, чтобы сигнализировать, что он смотрит на источник прямой трансляции, который, в свою очередь, сообщает AVPlayer
/ AVQueuePlayer
, что следует ожидать треки в .ts
форма. Он, вероятно, видит HTTP и решает, что это прямая трансляция.
Итак, мой вопрос: как можно было бы "обмануть" AVFoundation для обработки локального .m3u8
файла точно так же, как и для удаленного?
И бонусный вопрос: смог ли кто-нибудь (и если да, как) сделать файл AVAsset
из .ts
, чтобы актив возвращал состояние дорожек ресурса (подготовка к воспроизведению)?
ТИА!