Прямая трансляция видео с помощью PHP

У меня есть приложение для чата PHP / AJAX / MYSQL. Я хочу добавить видео-чат в свое приложение. Как создать потоковое видео в реальном времени, которое будет использоваться для видеоконференций / бесед в реальном времени в приложении PHP. Какие ключевые термины мне нужно знать, хочу ли я создать такую ​​систему? Это хорошая идея в первую очередь использовать PHP? Есть ли что-то, о чем я не думаю? Какие языки я могу использовать, возможно, в сочетании с PHP?

Я не говорю, что вам нужно отказаться от PHP, но вам нужны разные технологии.

Давайте начнем с простого (без Akamai :-)) и подумаем о последствиях здесь. Видео, чат и т. Д. – это все клиентская сторона в начале. У пользователя есть веб-камера, вы хотите как-то захватить сигнал и отправить его на сервер. Пока нет PHP.

Я знаю, что Flash поддерживает это, хотя (проверьте это руководство на веб-камерах и флэш-памяти ), чтобы вы могли использовать Flash для переноса содержимого на сервер. Я думаю, что если вы останетесь с Flash, то Flex ( flex и веб-камера учебник ), вероятно, хорошая идея для изучения.

Таким образом, это всего лишь основы, возможно, это дает вам представление о том, где вам нужно исследовать, потому что, очевидно, это не даст вам полноценного видеочата в вашем приложении. Для начала вам понадобится какой-то способ записи потоков и их повторного опубликования, чтобы другие видели других людей из чата и т. Д.

Я также не уверен, сколько трафика и пропускной способности это потребляется, хотя и, как правило, вам понадобится больше, чем вопрос Stackoverflow, чтобы решить эту проблему. Лучше всего было бы сделать полную спецификацию вашего приложения, а затем нанять некоторых людей, чтобы помочь вам построить его.

НТН!

Этот проект, который использует Red5, Flex и PHP для потоковой передачи и записи в реальном времени, имеет множество функций

  1. Поток Live видео для зрителей

  2. Запись потоков с камеры или других устройств ввода видео на сервер

  3. Просмотрите записанные потоки и файлы и уменьшите рамку, которую вы хотите отобразить для видео.

  4. Загрузите видео с вашего компьютера и преобразуйте их в FLV, который можно транслировать с помощью Red5.

  5. Выберите любое разрешение

  6. Может быть подключен к любому скрипту

  7. Каждый пользователь веб-сайта может иметь отдельный каталог для хранения своих видео и миниатюр, используя эту ссылку http://code.google.com/p/red5-flex-streamer/

PHP позволит вам создавать страницы вашего сайта, которые составляют ваши видеоконференции и чат-приложения, но он не будет доставлять или передавать видео для вас – PHP работает только на сервере и выводит HTML в клиентский браузер.

Для видео первое, что вам понадобится, это прямая трансляция учетной записи с кем-то вроде акамаи или другими другими в этой области. Использование этой учетной записи дает вам точку входа для вашего видео – то есть: сервер, на который вы будете транслировать видео в реальном времени.

Затем вы хотите получить свое видео в браузерах: Windows Media Player, Flash или Silverlight позволит вам добиться этого – встраивание соответствующего элемента управления для выбранной вами технологии на вашу страницу (с использованием PHP или любого другого) и с учетом адреса вашего живого видео.

PHP (или другой язык сценариев) будет использоваться для создания части чата приложения и объединения всей вещи (чата и встроенного видеоплеера).

Надеюсь это поможет.

Обычный скрипт php на стандартном веб-хосте может просто генерировать html-страницы для HTTP-запросов, а не непрерывную поточную передачу видео в реальном времени. Для потоковой передачи в реальном времени требуется дополнительная технология. Обычно лучшим вариантом, который работает в большинстве браузеров, является Flash. Он также может работать на мобильных телефонах путем создания Air-клиентов (мобильных приложений) или доставки потока в виде HLS (HTTP Live Streaming).

Вам в основном нужны 2 типа хостинга (может быть на одном сервере): 1. веб-хостинг (с PHP) 2. rtmp stream hosting (Red5, Wowza, Adobe ..) Подробные требования к такому проекту (включая диаграмму) доступны на http://www.videowhisper.com/?p=Requirements .

Полное решение включает в себя 3 части: 1. Flash-приложение, используемое для подключения к потоковому серверу и потоку в реальном времени 2. Приложение на стороне сервера RTMP (обычно стандартная конфигурация) 3. PHP-скрипты, которые интегрируют приложение с остальной частью сайта (путем передачи параметров по мере необходимости)

Для видеоконференций в реальном времени вы не можете игнорировать необходимость потокового сервера.

Да, вспышка позволит вам отображать видео с веб-камеры в локальном управлении вспышкой, но это не позволит вам отправить это видео по сети – для этого вам нужен потоковый сервер для его отправки.

Если вы собираетесь построить что-то подобное, разумно подумать о том, как вы собираетесь размещать видео с очень ранней стадии, так как это повлияет на то, как вы создаете приложение. Flash / Flex / Silverlight / Windows Media …. и т. Д ….

PHP / AJAX / MySQL не будет достаточным для создания потокового видео в реальном времени. Здесь есть аналогичный поток. В первую очередь это предполагает использование Flex или Silverlight.

Существует множество «готовых» «серверов», которые будут запускаться в вашей среде. Большинство из них используют вышеупомянутый Flex или Silverlight для реализации самого самого видео, но я уверен, что все будет работать под LAMP / PHP.

Задачи будут выбирать лучшее программное обеспечение из всего, что доступно, и заставить вашего хостинг-провайдера позволить вам потоковое видео (само собой разумеется, что потоковая передача сильно зависит от полосы пропускания).

Та же проблема / ответ здесь , приведенный ниже

Я предполагаю, что вы хотите, чтобы вы запускали собственные частные видеозвонки, а не просто ссылались на звонки Skype или аналогичные. У вас действительно есть 2 варианта: размещайте их самостоятельно или используйте размещенное решение и интегрируйте его в свой продукт.


Self-Hosted —————– Это грязно. Все это можно выполнить с помощью PHP, но это, вероятно, не самое рекомендуемое решение, так как это не лучший инструмент для работы со всех сторон. Flash намного эффективнее при захвате / переносе / перемещении в пользовательском конце. Вы можете попробовать сделать это без вспышки, но у вас будут головные боли. HTML5 может сделать вашу жизнь проще, но если вы стремитесь для максимальной совместимости, flash – это самый простой способ для создания клиента. Затем, если фактическая сторона сервера, которая будет ретранслировать аудио / видео, вы можете написать чат-сервер в php, но вам лучше использовать проект с открытым исходным кодом, например упоминание janenz00 о red5 , которое уже построено и взаимодействуя с ним через вашего клиента (если его еще нет). Или вы могли бы запустили flash-клиент, как упоминалось ранее, и подключите его к серверу флэш-потоковой передачи с обеих сторон … в любом случае он быстро усложняется и выходит за рамки моего опыта, чтобы помочь вам вообще.


Хостинг —————– В моей рекомендации, если вы не хотите управлять смешной настройкой многих сложных серверов и точек отказа, следует использовать размещенную службу, например UserPlane или аналогичную и разгружать всю обработку и техническую работу людям, которые хороши в этом, а затем беспокоиться о взаимодействии с их api и в том, чтобы их клиент был хорошо интегрирован в ваш сайт. Если вы это сделаете, вы станете более счастливым разработчиком.