среда, 22 декабря 2010 г.

Samsung LE40C550J1W и вещание с IP-видеокамер

Встала задача: выдавать на телевизор потоки с IP-видеокамер, исходя из того, что телевизор висит в другом помещении относительно видеосервера. Samsung LE40C550J1W - достаточно продвинутый 40" LCD телевизор с возможностью подключения к Ethernet. По сети на него можно выдавать видео с помощью программ, имеющих функционал DLNA-сервера, работающих по протоколу UPnP. Это одно из современных модных течений в бытовой технике, которое позволяет объединять совершенно разные устройства в одну сеть, по которой можно гонять различные мультимедиа-потоки.
Совместно с гуглом было найдено программное серверное решение в виде HMS. Это виндовое приложение, представляющее из себя DLNA-сервер, которое, в отличие от фирменных самсунговских программ, может не только расшаривать для DLNA-клиентов медиа-контент, но так же имеет функционал транскодирования, что, собственно, и нужно было в моем случае. Итак поехали.
Скачиваем последнюю версию HMS отсюда.
Скачиваем последнюю версию VLC отсюда. Она понадобится в качестве транскодера.
В качестве видеокамер у нас используются, в данном случае, Beward N1000 и Beward BD4070D.
N1000 выдает в сеть видеопоток по адресу
rtsp://<адрес-камеры>:554/video.mp4,
а BD4070D по адресу
rtsp://<адрес-камеры>:554/h264.
Если, конечно, вы не меняли коим-то образом адреса потоков.
Запускаем HMS (к большой радости это наша отечественная программа). Я не буду тут рассказывать про базовую настройку сервера, а перейду сразу к сути. Для начала надо указать серверу, чтобы он не хранил транскодированный файл на винте, иначе очень быстро будет прерываться трансляция в виду окончания свободного места. ДЛя этого Настройки -> Транскодер. В нижних табах перейти на вкладку "Другие" и там поставить галочку, если не стоит, на "Буфер транскодирования - Транскодирование без использования диска", и прописать размер буфера "Интернет". Я прописал 200 МБ. Тут все.
Далее вернемся в основное окно программы со списком категорий. В основном уровне дерева, в панели слева, выберем пункт "Интернет телевидение". Перейдем в правую часть, и через контекстное меню добавим ссылку. Появится окно, в которой нужно прописать всего 2 вещи: "Заголовок" и "Путь" в отделении "Ссылка", по которому камера отдает видеопоток по протоколу RTSP. Далее, не закрывая окна, щелкнуть по кнопке "Специальные настройки исопльзования медиа-ресурса" (это четвертая кнопка рядом с полем ввода адреса). Появится следующее окно, в котором уже будет прописан адрес отдачи видеопотока. Нужно выбрать MIME-тип mts и поставить галочку на "Использовать указанные параметры транскодирования", и в оконо прописать следующее:
<VLC> -Idummy --language=en --sout=#transcode{vcodec=mp2v,vb=12000,fps=25,scale=1,acodec=mpga,ab=192,channels=2,samplerate=48000}:duplicate{dst=std{access=file,mux=ts,dst="<OUTPUT FILE>"}} "<INPUT FILE>"

Думаю, тут итак все понятно. Единственное, в моем случае пришлось поиграть с кодеками (mp2v и mpga), у вас они могут быть другие. Остается все сохранить. Нажать в гланом меню кнопку "Обновить" и запустить сервер.
Выбрав на телевизоре устройство, соответствующее вашему серверу, в директории "Интернет телевидение" выбрать ваш поток и пробовать смотреть.
Возможные проблемы (с которыми столкнулся я).
- Телевизо выдает "Не поддерживается формат файла". Попробуйте в настройках потока поменять на другой MIME-тип (не mts, а mp(e)g, например), либо другой кодек в параметрах транскодирования (не mp2v, а mpeg2video, например).
- Видео начинает воспроизводиться и через несколько секунд прекращается. Попробуйте уменьшить в Настройки -> Сервер "Размер буфера передачи данных сервера".
- Вместо звука шпение/треск. Попробуйте поменять аудиокодек в параметрах транскодирования (например, с mpga на mp2a и тд).
- Слишком долго стартует видео. Попробуйте уменьшить в Настройка -> Транскодер в "Параметрах транскодированного файла", во вкладке "Интернет-телевидение" "Размер для начала передачи файла".
И да, как только вы добавите канал потока, в его названии в главной панели справа вы увидите приписку (?), это означает, что поток нужно проверить на доступность, что делается выбором соответствующего пункта в контекстном меню потока.
В общих чертах все. Приятного просмотра!

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