Я могу комментировать только предварительно записанное видео, а не прямые трансляции ...
Мне нужно конвертировать видео mp4 в M8U8?
Я думаю ты имел ввиду .m3u8. По сути, вам нужно взять свой .mp4 файл и:
Закодируйте его с дружественным битрейтом для мобильной полосы пропускания. Для этого вы можете использовать приложение Apple Compressor *, оно имеет предустановки для HTTP Live Streaming. Если вы играете, выберите что-нибудь около 1000 кбит / с.
Нарежьте его на части с помощью средства настройки мультимедийных файлов Apple. В итоге вы получите множество небольших файлов .ts и манифест (.m3u8), в котором они перечислены.
Нажмите на файл .m3u8 в своем плеере (initWithContentURL ...), и все готово.
Повторите шаги 1 и 2 выше и укажите другую полосу пропускания. Мы выбрали пресеты в Compressor.
В итоге у вас будут разные версии вашего видео, по одной для каждой полосы пропускания, используйте инструмент variantplaylistcreator от Apple, чтобы создать файл основного списка воспроизведения, который будет указывать вашему проигрывателю на каждую полосу пропускания, чтобы он мог переключаться автоматически.
Поместите все свои файлы .ts и .m3u8 в сеть и используйте инструмент mediastreamvalidator, чтобы проверить, что ваш основной файл списка воспроизведения в порядке и правильно указывает на каждую версию.
Убедитесь, что битрейт приличного качества указан первым в файле основного плейлиста, поскольку именно эта версия воспроизводится первой. Мы выбрали что-то около отметки в 1000 кбит / с.
Обязательно ли использовать MPMoviePlayer?
Я не могу комментировать другие библиотеки, мы использовали MPMoviePlayer.
Могу ли я конвертировать видео mp4 в формат M8U8 во время выполнения и как реализовать потоковую передачу в реальном времени
Вы можете для прямых трансляций, но для предварительно записанного видео сделайте все это раньше. Разместите все свои файлы в сети, проверьте свой список воспроизведения (.m3u8) и воспроизведите видео, используя основной файл .m3u8.
Есть ли какой-нибудь пример кода для прямой трансляции HTTP?
В нашей реализации клиент в iOS выполняет всю работу (например, переключает потоки в зависимости от доступной полосы пропускания). Таким образом, вам просто нужно заранее убедиться, что все ваши файлы находятся в нужном месте.
Компрессор - https://www.apple.com/final-cut-pro/compressor/ Инструменты командной строки для инструментов mediafilesegmenter и mediastreamvalidator, которые можно загрузить с сайта сети разработчиков Apple.
В этих статьях есть все, что вам нужно знать: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html https://developer.apple.com/library/archive/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238
Откройте это в Safari: https://developer.apple.com/streaming/examples/advanced-stream.html - Каждая шестерня - это отдельный поток битрейта.
Взломайте этот файл .m3u8 в текстовом редакторе, чтобы получить пример файла главного списка воспроизведения: https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
person
hemal
schedule
14.10.2012