Трансляция потокового видео с веб-камеры в локальной сети (VLC)
Задался мне как-то вопрос, а нельзя ли сделать веб-камеру одного компа в локальной сети общедоступной, и вдохновило меня на это конечно видео наблюдение (охранная система видео наблюдения).
Решить такое с помощью ip-камеры не составляет труда просто подключив к локальной сети, такая камера имеет ip-адрес. Наша камера такого адреса иметь не может по этому мы будем настраивать ее через компьютер. Подключаем нашу вэб-камеру к компьютеру, проверяем что все драйвера и сама камера установилась нормально.
Дальше для того что бы смотреть вэб-камеру на самом компьютере, проблем не будет, это решается с помощью родной программы камеры либо через программы сторонних разработчиков, это webcamXP Free (для домашнего применения), Yawcam и Dorgem. Но все это нам не достаточно, нам надо сделать видео с камеры доступным к про смотру другим компьютерам в локальной сети, по этому нам нужна программа которая может вещать поток видео в сеть. Поискав в интернете я понял что программ реализующих данную возможность не так много. Например в ОС windows 7 видео поток можно настроить и сделать доступным не прибегая к дополнительным программа все функции включены уже в Проигрывателе Windows Media, а вот для Windows XP уже придется установить Windows Media Encoder или вещать через VLC Media Player, теперь рассмотрим их подробней.
Windows Media Encoder — для начала скачиваем с официального сайта WMEncoder.exe и устанавливаем.
Программа на русском по этому здесь все понятно, запускаем новую сессию->Создаем Потоковое вещание прямого эфира->Выбираем средство захвата в нашем случаю находим пункт с web-камерой, ну и так далее по инструкции. Если же у вас английская версия то вот инструкция выбора опций:
Пуск->Все программы->Windows Media->Windows Media Encoder
New session->Broadcast a live event->Pull from the Encoder->URL for Internet connections (Запоминаем это наш адрес вещания), а далее лишь остается выбрать качество видео (что уже зависит от качества камеры, мощности компьютера и скорости передачи локальной сети), а также будет задан вопрос нужно ли сохранять видео на жесткий диск и все.
Start Encoding — вещание запущено!
Примечание : Запуск потока при включении компьютера, создаем ярлык на программу и закидываем в автозапуск + в ярлыке прописываем wmenc.exe /start (где — это имя файла конфигурации.
На удаленном компьютере в видео проигрывателе остается лишь указать URL потока.
VLC Media Player — бесплатная программа скачиваем VLC, далее запускаем:
Медиа->Потоковое вещание(Передавать)->Устройство захвата(Режим захвата)->WEB-камера->Прописываем адрес ip и порт.
Теперь откроем поток и посмотрим вещание:
Медиа->Потоковое вещание->Сеть->Вводим ip:порт
Flash Media Live Encoder. Трансляции в реальном режиме времени
Недавно я писал обзорную статью про трансляции в реальном режиме времени или Live Streaming и о том, как их можно организовать, например, для показа каких-либо мероприятий удаленным пользователям. Сегодня же мы поближе познакомимся с одним из главных звеньев системы живых трансляций, а именно с программным обеспечением Flash Media Live Encoder, узнаем для чего оно нужно и как с ним работать.
Трансляция с камеры в реальном режиме времени
Для того чтобы организовать полноценную трансляцию, например, видеосигнала с USB камеры вашего ноутбука в сеть Интернет, в первую очередь необходимо забрать или другими словами захватить сигнал с камеры. Далее перекодировать его в нужный формат и отправить на медиа сервер, откуда его уже будут запрашивать для просмотра удаленные пользователи, используя Flash плеер или HTML5 плеер, встроенный в веб страницу.
Также, нужно учитывать, что камеры бывают разные, поэтому существует несколько способов забрать с них изображение, но об этом чуть позже.
Зачем нужен Flash Media Live Encoder?
Как раз для захвата и кодирования видеосигнала мы будем использовать Flash Media Live Encoder. Данное программное обеспечение можно установить бесплатно, при условии того, что вы его используете совместно с Adobe Flash Media Server (исходя из лицензии). Хотя, как показывает практика, оно также хорошо работает с Wowza сервером.
Три основных типа камер
Существует несколько способов забрать видеосигнал с камеры на компьютер и далее на Медиа сервер, которые непосредственно связаны с моделью и типом той или иной камеры. Рассмотрим основные способы для разных камер.
- Аналоговая камера. В данном случае нам придется использовать плату захваты или обычный ТВ тюнер, установленный на компьютере. К плате захвата подключается камера и сигнал от камеры передается, например, по композитному (RCA) или S-video кабелю. Далее Flash Media Live Encoder забирает сигнал с платы захвата, с помощью драйвера устройства, для дальнейшего преобразования.
- USB веб камера. С данным типом камер, как правило, программное обеспечение Flash Media Live Encoder работает без каких-либо проблем напрямую, через драйвер.
- IP Камера. В случае же с IP камерой, иногда возможно забрать сигнал напрямую по протоколу RTP на медиа сервер, без использования Flash Media Live Encoder (FMLE). Подробнее читайте в статье Трансляция видео с IP камеры в сеть Интернет.
Как вы уже, наверное, догадались, сегодня мы говорим об использовании FMLE совместно с первыми двумя типами камер (аналоговая и USB камера). Ниже, на рисунке, вы можете посмотреть, как выглядит FMLE. Его вы можете бесплатно скачать с официального сайта компании Adobe и установить на свой компьютер.
Теперь более детально разберемся с его настройками и попробуем создать тестовую трансляцию, для того чтобы удаленные пользователи смогли увидеть изображение с нашей камеры. Также нам необходимо установить Adobe Flash Media Streaming Server (FMSS), который можно скачать и установить бесплатно (бесплатная версия — максимум до 10 одновременных подключений). В данной статье я не буду рассказывать, как устанавливать FMSS. В Интернете можно найти очень много информации об этом. Хочу только отметить, то, что устанавливается он довольно просто и для простых трансляций не требуется сложных настроек. Также вы можете почитать мою статью про медиа сервера.
Параметры настройки Flash Media Live Encoder (Видео, Аудио)
- Device: Выбираем камеру или плату захвата с которой собственно и будет забираться видеосигнал. В моем случае это ТВ тюнер AverMedia. Сверху есть окна Input и Output, в которых можно наблюдать входной видеосигнал и резул.
- Format: Выбираем кодек H.264. H.264 один из лучших на сегодняшний день.
- Frame rate: Частота кадров видео в секунду.
- Input Size: Разрешение видео в пикселях. Я выбираю 640х360 – одно из самых распространённых на сегодняшний день.
- Bit Rate: Скорость мультимедийного видеопотока в Кбит/сек, который мы хотим отправит на сервер. Чем больше скорость потока, тем лучше качество.
- Audio: В данной секции вы найдете настройки для кодирования звука. В моем случае звук забирается со звуковой карты Realtek. Также, в настройка аудио, есть возможность регулировки уровня звука (Volume).
Параметры настройки Flash Media Live Encoder (Трансляция)
- Stream to Flash Media Server: Выбираем эту галочку для того чтобы указать FMLE, что мы будет посылать перекодированный сигнал на Flash Media Server.
- FMS URL: Вводим адрес сервера и указываем приложение для Live Streaming (“live”). В моем случае получилась следующая строка rtmp://172.20.20.100/live.
- Stream: Название потока. Можно указать любое, у меня это live500. Чуть позже, будем использовать его в качестве параметра для Flash плеера.
Далее нажимаем на кнопку Connect.Если соединение прошло успешно, то можно считать, что сигнал с вашей камеры успешно передается на медиа сервер в реальном режиме времени. Теперь осталось создать веб страницу с плеером, для удаленных клиентов.
Установка и настройка клиентского плеера
- Скачиваем бесплатный плеер JW Player (Flash плеер), в архиве, с официального сайта.
- Распаковываем архив.
- Помещаем распакованную папку на web сервер (я использую для этого Apache web сервер).
- Создаем файл flash_player.htm, но вы можете использовать другое название для файла. Для удобства я выкладываю уже готовый файл, в котором вам нужно только изменить адрес сервера на свой (мой адрес — rtmp://172.20.20.100/live/). Данный HTML файл с JavaScript загружает Flash плеер.
- Далее открываем браузер, прописываем адрес до нашего файла flash_player.htm. Должна загрузиться страничка с Flash плеером.
- Нажимаем кнопку проигрывания и после этого вы должны увидеть изображение со своей камеры. У меня вместо камеры был ТВ тюнер, который получал видеосигнал по S-video кабелю от телевизионной приставки. Ниже, на картинке, можете посмотреть изображение моего Flash плеера!
Если вам нужно что-то настроить или получить консультацию по медиа-серверам и мультимедийным системам, можете обращаться ко мне и нашей команде через форму контактов.
Вот вроде и все. Желаю всем успехов!
Windows Media Video 9 Encoder
The Windows Media Video 9 encoder encodes video streams. The encoder supports the following four categories of encoded output.
- Windows Media Video 9 Simple Profile
- Windows Media Video 9 Main Profile
- Windows Media Video 9 Advanced Profile
- Windows Media Video 9.1 Image
Class Identifier
The class identifier (CLSID) for the Windows Media Video encoder is represented by the constant CLSID_CWMV9EncMediaObject. You can create an instance of the video encoder by calling CoCreateInstance.
Interfaces
A video encoder object exposes the IMediaObject interface so that the object can be used as a DirectX Media Object (DMO), and it exposes the IMFTransform interface so that the object can be used as a Media Foundation Transform (MFT).
A video encoder behaves as a DMO or an MFT depending on which interfaces you obtain and which version of Windows is running. The following table shows the conditions under which a video encoder behaves as a DMO or an MFT.
Operating system | Encoder behavior |
---|---|
Windows XP | A Windows Media video encoder always behaves as a DMO. |
Windows Vista and Windows 7 | By default, a Windows Media video encoder behaves as a DMO. If you obtain an IMFTransform interface on a video encoder, it behaves as an MFT. |
Input Formats
The Windows Media Video encoder supports the following input media subtypes when it is acting as a DMO.
- MEDIASUBTYPE_IYUV
- MEDIASUBTYPE_I420
- MEDIASUBTYPE_YV12
- MEDIASUBTYPE_NV11
- MEDIASUBTYPE_NV12
- MEDIASUBTYPE_YUY2
- MEDIASUBTYPE_UYVY
- MEDIASUBTYPE_YVYU
- MEDIASUBTYPE_RGB32
- MEDIASUBTYPE_RGB24
- MEDIASUBTYPE_RGB565
- MEDIASUBTYPE_RGB555
- MEDIASUBTYPE_RGB8
- MEDIASUBTYPE_PHOTOMOTION
The Windows Media Video encoder supports the following input media subtypes when it is acting as an MFT.
- MFVideoFormat_IYUV
- MFVideoFormat_I420
- MFVideoFormat_YV12
- MFVideoFormat_NV11
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_UYVY
- MFVideoFormat_YVYU
- MFVideoFormat_RGB32
- MFVideoFormat_RGB24
- MFVideoFormat_RGB565
- MFVideoFormat_RGB555
- MFVideoFormat_RGB8
- MEDIASUBTYPE_PHOTOMOTION
Output Formats
The following table shows the four-character codes (FOURCCs) that correspond to the categories of encoded output.
Category | FOURCC |
---|---|
Windows Media Video 9 Simple Profile | «WMV3» |
Windows Media Video 9 Main Profile | «WMV3» |
Windows Media Video 9 Advanced Profile | «WVC1» |
Windows Media Video 9.1 Image | «WMVP» for 9.1, «WVP2» for 9.1 version 2 |
To distinguish between Simple Profile and Main Profile, set the MFPKEY_DECODERCOMPLEXITYREQUESTED property.
Properties
The Windows Media Video 9 encoder supports the following properties.