Http Live streaming с ios
мое приложение отклоняется apple, и они дают причину
мы обнаружили, что ваше приложение не использует протокол HTTP Live Streaming с базовым потоком 64 Кбит / с для трансляции потокового видео
затем я ищу решения и через интернет все решения предполагают, что я должен использовать .U8F8 и .расширение ts для потоковой передачи в реальном времени, но мое приложение имеет формат mp4. Я уже использовал MPMoviePlayerController
для потокового.
поэтому мой вопрос есть:
- нужно ли конвертировать mp4-видео в M8U8?
- Я должен использовать
MPMoviePlayer
? - могу ли я конвертировать mp4 видео в формат M8U8 во время выполнения и как реализовать потоковое вещание
- есть ли какой-либо пример кода для HTTP live streaming?
спасибо заранее.
3 ответов
Я могу комментировать только предварительно записанное видео, а не прямую трансляцию...
нужно ли конвертировать mp4 видео в M8U8?
Я думаю, вы имеете в виду .m3u8 форматов. В принципе, вам нужно взять свое .mp4 файл и:
кодируйте его в дружественный битрейт для мобильных полос пропускания. Вы можете использовать приложение Apple Compressor* для этого, у него есть пресеты для HTTP Live Streaming. Выберите что-то около 1000kbps, если вы играете вокруг.
нарезать его на выходе с помощью mediafilesegmenter от Apple. У тебя будет много маленьких .TS файлы и манифест (.m3u8), который перечисляет их.
хит .файл m3u8 в вашем проигрывателе (initWithContentURL... и ты уходишь.
повторите шаги 1 и 2 выше и укажите различные полосы пропускания. Мы пошли на пресеты в компрессор.
вы будете в конечном итоге с разных версий ваше видео, 1 для каждой полосы пропускания, используйте инструмент variantplaylistcreator от Apple, чтобы создать мастер-файл списка воспроизведения, который будет указывать плеер на каждую полосу пропускания, чтобы он мог переключаться автоматически.
придерживаться всех ваших .файлы 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.
во время выполнения я не смог найти плагин.Я мало искал.
-
поэтому мы настроили сервер IIS при использовании URl-адреса.
-
и получил ссылку. как http://4a75a0cce3694e29bc670b3d574fec92.cloudapp.net/push.isml/manifest
изменение его, как http://4a75a0cce3694e29bc670b3d574fec92.cloudapp.net/push.isml/manifest(format=m3U8-aapl)
мы можем использовать этот URL в HTML5 с помощью тега Video. Мы также можем загружать видео по запросу.