HTTP-обработка в режиме реального времени на сервере Linux

#java #iphone #ipad #video-streaming #http-live-streaming

#java #iPhone #iPad #потоковое видео #http-прямая трансляция

Вопрос:

Мне трудно найти какую-либо окончательную информацию по этому поводу. У меня есть выделенный сервер в центре обработки данных с Debian 5.0. У меня есть приложение для iPhone / iPad, которое использует серверную часть JAVA EE (Glassfish 2.1), и я нахожусь в процессе внедрения видео в приложение. Это включает в себя прямую трансляцию, а видео длится более 10 минут, мне нужна прямая трансляция по HTTP.

Какое лучшее решение с открытым исходным кодом / бесплатное для реализации? Это всего лишь пилотный проект, поэтому я не хочу подписываться на какую-либо платную услугу. В настоящее время у меня пока нет ничего для прямой трансляции, поэтому я могу гибко адаптировать любую систему (серверную или клиентскую).

Я наткнулся:

  • Darwin (но я не уверен, что проект жив, поскольку информации не так много)
  • Red5 (но не могу найти убедительных доказательств того, что это позволило бы легко реализовать HTTP-трансляцию в реальном времени)
  • FFMPEG

Что касается видео, я бы в идеале хотел загрузить версию 720p на сервер (для iPad), а затем автоматически конвертировать (либо на лету по запросу, либо подготовленную при загрузке файла) в требуемые форматы для iPhone / iTouch и низкой пропускной способности. Для прямой трансляции я хотел бы иметь возможность предоставлять контент примерно через 30 секунд после его передачи на сервер.

Я не предполагаю высоких требований (например, большого количества одновременных запросов, и если это так (например, live event) в одном потоке, с которым можно обрабатывать с помощью HTTP-live streaming, для этого требуется кодирование и сегментирование только один раз).

В ) не столь близком) будущем Android, вероятно, также станет частью приложения.

Любые подсказки / учебное пособие / предложения / рекомендации были бы действительно оценены.

Ответ №1:

Wowza довольно хороша для прямой трансляции на iOS (а также flash)

Однако это не бесплатно.

Ответ №2:

Последняя версия VLC для разработки поддерживает потоковое воспроизведение в реальном времени по протоколу HTTP. Вам придется создавать из исходного кода, поскольку он был добавлен в репозиторий git не так давно.

http://wiki.videolan.org/Documentation:Streaming_HowTo/Streaming_for_the_iPhone

Комментарии:

1. Это выглядит многообещающе, как универсальный магазин для всего. Я продолжу изучение VLC.

Ответ №3:

Сейчас я использую фреймворк Xuggler, основанный на Java. Кажется, выполняет именно ту работу, которую я ищу, хотя сборка в segmented и т.д. недоступна. Вместо этого я пытаюсь сейчас написать один сам, который в то же время точно интегрируется с моей системой

Ответ №4:

Обратитесь к документу Apple по http live streaming и рекомендациям.

https://developer.apple.com/streaming/

Это должно быть хорошим моментом для начала.

Ответ №5:

Каков источник видео в реальном времени? iPhone поддерживает воспроизведение только видео базового профиля H.264 уровня 3 или mpeg-4 со звуком aac. Сам iPhone кодирует видео в соответствии с этими спецификациями, но большинство других кодировщиков этого не делают (включая многие телефоны Android). Если ваше видео не закодировано в соответствии с этой спецификацией, вам сначала придется перекодировать. FFMpeg (с libx264) прекрасно справится с этой задачей. Затем вам нужно сгенерировать динамический файл плейлиста .m3u8. Wowza сделает это за вас из коробки и примет поток rtmp из FFmpeg (но не является бесплатным). Я не верю, что red5 поддерживает потоковую передачу Apple http. Есть бесплатные серверы, которые претендуют на это, но я никогда ими не пользовался. Взгляните на http://erlyvideo.org /. В противном случае вы можете сделать это самостоятельно довольно просто. FFmpeg выведет поток mpeg-ts. Все, что нужно сделать генератору списка воспроизведения, это разрезать его на фрагменты, выровненные по 188 байтам, и вернуть список воспроизведения, содержащий последние n. Вы даже можете использовать модуль смещения байтов http, чтобы список воспроизведения ссылался на один файл. Прочитайте документы Apple по потоковой передаче http наhttps://developer.apple.com/streaming /