Вещаем в сети! Курс начинающего медиамагната
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?