Вещаем в сети! Курс начинающего медиамагната

Andrushock

Xakep, номер #056, стр. 056-070-4


$ make

# make install

Для того чтобы транслировать файл (в данном случае в формате MPEG1), достаточно ввести следующую команду:

# /usr/local/vlc/bin/vlc /usr/local/movies/cradle.mpg --sout udp://192.168.5.21

Чтобы транслируемый поток направить в другую подсеть, например, через 7 роутеров, нужно добавить ключ –ttl 8 (число роутеров + 1). Для зацикливания проигрываемого файла используй флажок –loop, а для вывода отладочных сообщений –vvv. Теперь для приема видеоклипа на хосте с IP-адресом 192.168.5.21 открываем VLC (win32) и выбираем в меню File -> Network Stream -> UDP/RTP Port 1234.

Декомпрессия MPEG у клиента происходит следующим образом: кодек разделяет MPEG-трафик на две составляющие: аудио и видеоинформацию. Аудиоданные декодируются и через усилок попадают на динамики, а видео проходит через анализ и расшифровку фреймов, затем изображение просчитывается и выводится на экран.

VideoLAN Server - еще одна разработка кодеров из университета Ecole Centrale Paris. В отличие от клиентской версии, VLS не умеет принимать, декодировать и воспроизводить MPEG-потоки, зато включает в себя telnet-сервер для удаленного конфигурирования и поддерживает протокол IPv6. Серверный вариант требует обязательной установки библиотеки dvbpsi:

$ bunzip2 < libdvbpsi-0.1.2.tar.bz2 | tar xvf -

$ cd libdvbpsi-0.1.2

$ ./configure

$ make

# make install

И устанавливаем сам VLS:

$ bunzip2 < vls-0.5.0.tar.bz2 | tar xvf -

$ cd vls-0.5.0

$ ./configure --prefix=/usr/local/vls --disable-dvd

$ make

# make install

# ldconfig

Конфигурационный файл VLS неплохо прокомментирован, поэтому для экономии места я приведу только ключевые разделы конфига:

# vi /etc/vls.cfg

/* Заставляем VLS подвиснуть на 9999 порт */

BEGIN "Telnet"

LocalPort = "9999"

Use = "true"

END

/* Указываем абсолютный путь до транслируемого файла */

BEGIN "1"

Name = "presentation"

FileName = "/usr/local/movies/presentation.vob"

Type = "Mpeg2-PS"

END

/* Определяем виртуальные каналы */

BEGIN "Channels"

localhost = "network"

client1 = "network"

END

/* Описываем клиента */

BEGIN "client1"

DstHost = "192.168.5.21"

DstPort = "1234"

END

Загружаем VLS:

# /usr/local/vls/bin/vlsd –f /etc/vls.cfg

Телнетимся на 9999 порт сервера, вводим пасс админа и набираем команду для транслирования презентации:

admin@vls> start presentation client1 local1

Сканируем метровые диапазоны

Если твой компьютер оснащен ТВ-тюнером с поддержкой SECAM D/K, то рано или поздно у тебя возникнет резонный вопрос: можно ли смотреть телепередачи под Linux? Без проблем! И в этом ты сможешь убедиться прямо сейчас. Но для начала все же проверь, скомпилировано ли твое ядро со всеми необходимыми функциями:

Включены ли экспериментальные свойства ядра?

Code maturity level options --->

[*] Prompt for development and/or incomplete code/drivers

Добавлена ли поддержка загружаемых модулей?

Loadable module support --->

[*] Enable loadable module support

[*] Kernel module loader

Установлена ли поддержка интерфейса I2C?

Назад на стр. 056-070-3  Содержание  Вперед на стр. 056-070-5