Можно ли принудить AVFoundation к воспроизведению локального файла .ts?

Очевидно, что AVFoundation (и Quicktime X) может демультиплексировать и воспроизводить правильно закодированные контейнеры .ts , потому .ts контейнеры .ts находятся под поточной передачей HTTPS.

Если вы не настроите локальную веб-службу для работы с .m3u8 и связанными с .ts файлами .ts , мне бы очень хотелось иметь возможность: либо убедить AVURLAsset и / или URLAssetWithURL принять локальный файл .m3u8 URI, как если бы это был HTTP URI или, еще лучше, иметь возможность использовать AVQueuePlayer для загрузки и воспроизведения последовательности файлов .ts без .ts через потоковые .ts потоки.

Причина, по которой я хочу это сделать, заключается в том, что мне нужно локально генерировать видеоролики «на лету» несколько разрозненно – весь актив не будет доступен сразу, но будет генерироваться с течением времени. Очевидно, что это поддается AVQueuePlayer но по разным причинам мои фрагменты активов упакованы в контейнеры .ts . Все это звучит так, будто оно идеально подходит для «локальных» потоков в прямом эфире.

Я подозреваю, что URLAssetWithURL выполняет некоторую квалификацию переданной им строки, а затем устанавливает некоторые свойства, чтобы сигнализировать, что он смотрит на источник потоковой передачи, который, в свою очередь, сообщает AVPlayer / AVQueuePlayer о ожидании треков в форме .ts . Вероятно, он видит HTTP и решает, что это потоковое вещание.

Поэтому мой вопрос: как можно «обмануть» AVFoundation в обработке локального файла .m3u8 точно так же, как он удаленный?

И вопрос бонуса: Кто-нибудь (и если да, то как) смог сделать AVAsset из .ts файла, чтобы ресурс вернул статус дорожек актива (подготовиться к воспроизведению)?

ТИА!

2 Solutions collect form web for “Можно ли принудить AVFoundation к воспроизведению локального файла .ts?”

Эта проблема слишком долго раздражала нас. Наконец, мы решили написать инструмент для преобразования списка ts в файл mp4. Он состоит в использовании TSDemux для демонстрации и конкатенации видео / аудио, а затем генерации файла mp4 с помощью GPAC.

Это действительно отвечает на ваш вопрос, но это может быть способ сделать то, что вы хотите сделать. Этот инструмент находится на Github, не стесняйтесь попробовать: https://github.com/Keemotion/TS2MP4

Вы можете фактически создавать AVURLAssets непосредственно из основных ts-файлов и воспроизводить их напрямую, очень похоже на способ воспроизведения файла mov или mp4.

Для каждого файла ts есть некоторые накладные расходы, поэтому лучше всего просто поместить файлы в один большой ts-файл (на основе вашего содержимого m3u8) и воспроизвести этот большой файл.

Есть пара готовых файлов: AVCompositions, построенные с использованием AVAssets на основе ts-файлов, являются голодными, поэтому избегайте AVCompositions, кроме небольших файлов. Вы не можете использовать AVAssets на основе ts-файлов в эталонном фильме.

  • Удаление приложения из устройства iOS через командную строку
  • Предполагается, что объекты macOS и iOS должны иметь один и тот же файл прав?
  • Как мне форматировать дату в строку, включая миллисекунды?
  • Установить сертификат на устройство iOS через OSX
  • Вариант схемы Xcode 6.4 исчез в бета-версии El Capitan
  • Что касается iOS, какова разница в руководстве по программированию параллелизма и руководстве по программированию потоков?
  • Есть ли способ совместного использования и синхронизации папки приложений для iOS-симуляторов
  • Подклассы против протоколов
  • Управление визуальными ресурсами на xcode (ссылка, копирование или и то, и другое)?
  • iOS для Mac GraphicContext Объяснение / преобразование
  • Какой CGImageAlphaInfo мы должны использовать?
  • Interesting Posts

    Как получить значение nsuserdefault в других viewcontrollers

    Сделайте снимок, выберите «Полный» или «Квадратный» режим в камере

    Как полностью отключить увеличительное стекло для UIWebView iOS9

    приложение запрашивает AppleID при запуске

    Это устройство не подходит для запрошенной сборки

    Изменение цвета фона текстового поля и цвета текста IOS Swift

    Как получить высоту строки состояния в расширении iOS

    Возможно ли получить значение USE TOUCHID FOR iPhone для разблокировки в настройках по умолчанию

    Swift – использование собственной кнопки входа в Facebook с функциональностью анализа

    Регулярное выражение в ios для извлечения href url и отбрасывания остальной метки привязки?

    Калибровать UIAccelerometer?

    Изображение на UITabBar получает squished

    Как «отменить» видимость переходов для пользовательских переходов контроллера контейнера

    iOS 5 «Центр уведомлений»?

    Анимация непрозрачности слоя с UIView.Animate

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.