Я работаю над небольшим приложением для iPhone, которое транслирует киноконтент по сетевому соединению с использованием обычных сокетов. Видео в формате H.264
. Однако у меня возникают трудности с воспроизведением/декодированием данных. Я рассматривал возможность использования FFMPEG
, но лицензия делает его непригодным для проекта. Я изучал фреймворк Apple AVFoundation
(в частности, AVPlayer
), который, кажется, может обрабатывать контент h264, однако я могу найти только методы для запуска фильма. с использованием URL-адреса, а не путем проверки буфера памяти, переданного из сети.
Я провел некоторые тесты, чтобы это произошло, используя следующие подходы:
AVPlayer
. Каждый раз, когда данные поступают в сеть, они записываются в файл с помощью fopen с режимом добавления. Затем ресурс AVPlayer
перезагружается/создается заново с обновленными данными. Кажется, что с этим подходом есть две проблемы: во-первых, экран на короткое время становится черным, пока первый ресурс выгружается, а новый загружается. Во-вторых, я не знаю точно, где остановилось воспроизведение, поэтому я не уверен, как узнать, с какого места начать воспроизведение нового актива.AVQueuedPlayer
, где второй ресурс вставляется/ставится в очередь в проигрывателе, а затем вызывается после выполнения буферизации. Затем первый актив можно выгрузить без черного экрана. Однако при таком подходе еще сложнее (чем при первом подходе) выяснить, с чего начать отыгрыш нового актива.Кто-нибудь делал что-то подобное и заработало? Есть ли правильный способ сделать это, используя AVFoundation
?