Http Live streaming с ios

мое приложение отклоняется apple, и они дают причину

мы обнаружили, что ваше приложение не использует протокол HTTP Live Streaming с базовым потоком 64 Кбит / с для трансляции потокового видео

затем я ищу решения и через интернет все решения предполагают, что я должен использовать .U8F8 и .расширение ts для потоковой передачи в реальном времени, но мое приложение имеет формат mp4. Я уже использовал MPMoviePlayerController для потокового.

поэтому мой вопрос есть:

  1. нужно ли конвертировать mp4-видео в M8U8?
  2. Я должен использовать MPMoviePlayer?
  3. могу ли я конвертировать mp4 видео в формат M8U8 во время выполнения и как реализовать потоковое вещание
  4. есть ли какой-либо пример кода для HTTP live streaming?

спасибо заранее.

3 ответов


Я могу комментировать только предварительно записанное видео, а не прямую трансляцию...

нужно ли конвертировать mp4 видео в M8U8?

Я думаю, вы имеете в виду .m3u8 форматов. В принципе, вам нужно взять свое .mp4 файл и:

  1. кодируйте его в дружественный битрейт для мобильных полос пропускания. Вы можете использовать приложение Apple Compressor* для этого, у него есть пресеты для HTTP Live Streaming. Выберите что-то около 1000kbps, если вы играете вокруг.

  2. нарезать его на выходе с помощью mediafilesegmenter от Apple. У тебя будет много маленьких .TS файлы и манифест (.m3u8), который перечисляет их.

  3. хит .файл m3u8 в вашем проигрывателе (initWithContentURL... и ты уходишь.

  4. повторите шаги 1 и 2 выше и укажите различные полосы пропускания. Мы пошли на пресеты в компрессор.

  5. вы будете в конечном итоге с разных версий ваше видео, 1 для каждой полосы пропускания, используйте инструмент variantplaylistcreator от Apple, чтобы создать мастер-файл списка воспроизведения, который будет указывать плеер на каждую полосу пропускания, чтобы он мог переключаться автоматически.

  6. придерживаться всех ваших .файлы TS и .файлы m3u8 в сети и используйте инструмент mediastreamvalidator, чтобы проверить, что ваш главный файл списка воспроизведения в порядке и правильно указывает на каждую версию.

убедитесь, что достойный битрейт качества является первым в главном плейлисте файл, как это версия, которая играется в первую очередь. Мы пошли на что-то около отметки 1000 Кбит.

должен ли я использовать MPMoviePlayer?

Я не могу комментировать другие библиотеки, мы использовали MPMoviePlayer.

могу ли я конвертировать mp4 видео в формат M8U8 во время выполнения и как реализовать потоковое вещание

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

есть ли какой-либо пример кода для HTTP live streaming?

в нашей реализации клиент в iOS выполняет всю работу (например, переключение потоков в зависимости от доступной пропускной способности). Таким образом, вам просто нужно убедиться, что все ваши файлы находятся в нужном месте перед рукой.

компрессор -http://www.apple.com/finalcutpro/compressor/ Этот mediafilesegmenter и mediastreamvalidator tools средства командной строки, доступные для загрузки с сайта Apple developer network.

в этих статьях есть все, что нужно знать: https://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html https://developer.apple.com/library/ios/#technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238

открыть эту в сафари: https://developer.apple.com/resources/http-streaming/examples/advanced-stream.html - каждая "шестерня" - это другой поток битрейта

открыть .файл m3u8 в текстовом редакторе, для примера мастер файл Playlist: https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8

надеюсь, что все это имеет смысл :)


Если ваш MP4-файл имеет длину более 10 минут, вам нужно будет использовать HLS для потоковой передачи файла.
Для живых потоков вы можете использовать программное обеспечение, подобное этому, чтобы кодировать его вживую: http://www.mcommstv.com/products/mcomms-transcode

Если это файл VoD, то предварительно Закодируйте его с помощью своего любимого кодировщика H. 264/AAC.

Не забудьте включить несколько версий битрейта вашего файла, включая 64kbps. Если вы не включаете поток 64kbps, Apple отклонит Приложение. Мы обычно используем: 64К 120к 240к 480k 800 Кбит / с 1200kbps Битрейт, который вы перечисляете первым в файле multirate m3u8, будет воспроизводиться в течение первых 30 секунд, сначала поставьте средний битрейт, чтобы не слишком долго начинать потоковую передачу, когда пользователи находятся в медленных сетях 3G. Вот пример:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=120000
120k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=60000
60k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=240000
240k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=480000
480k/Playlist.m3u8

мы должны преобразовать любой аудиофайл в m3u8 formnat.

во время выполнения я не смог найти плагин.Я мало искал.

мы можем использовать этот URL в HTML5 с помощью тега Video. Мы также можем загружать видео по запросу.