Трансляция ТВ по локальной сети
Во время Чемпионата мира по футболу вспоминаешь, что в природе есть такая вещь, как телевизор. Лично я не смотрю телевизор вообще, и не только потому, что Интернет компенсирует потребность в информации, но и потому, что у меня его просто нет. А как же ТВ-тюнер, скажут счастливые обладатели сего девайса? Вот сегодня в этой небольшой заметке мы и рассмотрим вопрос, как посмотреть ТВ с помощью тюнера и организовать при этом трансляцию по локальной сети для тех, у кого тюнера нет.
Выбор тюнера
Если вы еще не определились с покупкой или все вместе собираетесь покупать один тюнер на вашу локальную сеть, не забудьте обратить внимание на несколько пунктов. Большинство владельцев тюнеров столкнулись с проблемой перехода на новые версии операционных систем из-за того, что для этих версий не написано соответствующих драйверов. Из производителей, представленных у нас на рынке, только AverMedia еще как-то более-менее следит за выпуском новых версий, и то далеко не для всех моделей. Получается интересная ситуация – тюнер, который в общем-то не является дешевой покупкой для рядового пользователя, будет игрушкой на один раз. Поменяв операционную систему, вы рискуете остаться без тюнера, и тогда придется покупать новый. Ситуация еще усугубляется тем, что основная масса тюнеров у нас – это относительно дешевые поделки от малоизвестных китайских производителей. Так что надеяться на выпуск новых драйверов смысла нет никакого. Следовательно, позаботимся о себе сами, а именно, узнаем, какие есть драйвера для данной модели, перед покупкой. Лучше всего, когда есть версии для 64-битных Windows 7 или хотя бы Windows Vista. Это обеспечит какую-то совместимость с будущими версиями Windows, которые будут иметь приоритет на 64 бита. Есть также сборки универсальных драйверов. Это тоже может помочь, если, например, разобрать тюнер и посмотреть, на каком чипе он собран. Посмотреть на такие сборки можно здесь:
http://www.pctuner.ru/list-c-soft04.html и здесь: http://www.flydrivers.ru/drivers/category/tv_capture.html.
Для пользователей Linux есть стандартный пакет V4L (Video for Linux). Там проблем будет меньше, потому что линуксоиды гораздо реже что-то меняют в своих системах, ибо у них и так все прекрасно работает. Но вот найти драйвера под Linux – это, как говорится, «вопрос на миллион долларов».
USB или PCI?
По большому счету, это не так важно, если у вас десктоп, но если вы обладатель ноут- или нетбука, то однозначно это — USB-тюнер. Скажу из личного опыта, что тюнеры отлично работают на двух и иногда трех USB-удлинителях, поэтому вы будете иметь определенную свободу выбора положения тюнера в комнате. Тюнеров, передающих данные по беспроводному интерфейсу, я не встречал.
Требования к железу
Сам по себе тюнер довольно нетребователен к частоте процессора и к памяти. Но его основная фишка – это работа в режиме реального времени. Поэтому тюнеры очень не любят, если параллельно с ними запущены еще какие-либо приложения. Ресурсов ему надо не много, но они должны быть постоянно свободны. Иначе будет периодическое зависание картинки – это выпавшие кадры, которые драйвер тюнера не успел обработать. Если вы администратор локальной сети и хотите организовать отдельный ТВ-сервер, нужно учесть еще вот что. Каждый запрос на ТВ-сервер юникастовый, то есть для каждого пользователя будет идти свое кодирование потока (мы сейчас не рассматриваем сети, построенные на управляемом оборудовании с мультикастовыми запросами). А это значит, что к ресурсам, которые нужны непосредственно самому тюнеру (обычно хватает процессора около 1.5 ГГц), добавятся еще накладки на кодеки. Поэтому лучше поставить под ТВ-сервер машину помощнее.
Антенна
Хорошо, если у вас проведена коллективная антенна. Отлично, если она дает хорошую картинку. Но и не так плохо, если антенны нет. Ее можно изготовить самому и получить при этом вполне удовлетворительное качество изображения. Я имею в виду самый простой вариант – полуволновой вибратор. Хорошая инструкция с иллюстрациями лежит здесь: http://www.belastro.net/?menu=1&submenu=101&page=1&nid=72.
Мощность ТВ-сигнала достаточная, чтобы ловить каналы на такую антенну прямо в серверной.
Цифровое вещание
Аналоговый тюнер не может принимать больше одного канала. Следовательно, вы не сможете транслировать больше одного канала своим пользователям. Здесь есть три выхода: либо все смотрят, что нравится вам, либо (в случае локальной сети) покупается несколько тюнеров, которые настроены на разные каналы. Но самым заманчивым вариантом выглядит переход на цифровое вещание. Тогда одним устройством можно будет «сливать» весь эфир. К сожалению, у нас в Беларуси этот процесс еще только начинается, поэтому цифровые тюнеры если и есть в продаже, то стоят дорого.
Кодеки
Каждый драйвер предлагает видеопоток с тюнера в том варианте, в котором ему захочется. Обычно вместе с драйвером устанавливается родная утилита для просмотра ТВ, для которой гарантируется совместимость, но никто не гарантировал ее с другими программами. Поэтому у вас может возникнуть проблема, когда вы не сможете получить видеосигнал с тюнера сторонним софтом. Дело, скорее всего, в кодеках, поэтому проблема решается установкой полного набора, например от K-Lite.
Трафик и качество картинки
Обычно на каждого пользователя, смотрящего трансляцию, требуется 1000 Кбит/сек видео плюс 192 Кбит/сек звука, то есть порядка 1200 Кбит/сек. Если тюнер позволяет принимать сигнал в хорошем качестве, битрейт видео можно повысить. Но обращаю ваше внимание на то, что, во-первых, это создаст большую нагрузку на процессор при кодировании, а во-вторых, для высокого битрейта нужна качественная антенна и качественные экранированные провода. Если этого нет, то и повышать битрейт нет смысла. На практике компьютер с частотой 3 ГГц под управлением Debian Linux справлялся с трансляцией на 50 машин с битрейтом 1200 Кбит/сек. При этом процессор был «забит под завязку».
Распределенные трансляции или релэй
Решить проблему нагрузки на ТВ-сервер можно, если кто-то из пользователей в сети поднимет такой же сервер-ретранслятор. Это очень удобно, если, например, сеть имеет несколько выделенных сегментов, где каждый сегмент соединен узким каналом связи (например, Wi-Fi, «перекинутый» через улицу). Тогда на каждый сегмент создается свой ретранслятор, и проблема нагрузки канала решается. Еще раз повторю, что хотя 1200 Кбит/сек и небольшой трафик, он должен быть гарантированно свободным, так как мы работаем с видеопотоком в реальном времени.
Софт для трансляции
Наконец, переходим от слов к делу. Для организации трансляции очень хорошо зарекомендовал себя плеер VLC (http://www.videolan.org/vlc/). Это кросс-платформенная программа (Windows, Linux, MacOS). Она не содержит ничего лишнего и позволяет поднять трансляцию в несколько кликов. Приведу пошаговую инструкцию.
1. Нажимаем «Медиа» -> «Открыть Capture Device».
2. Если в списке устройств нет тюнера, нажимаем «Обновить».
3. Нажимаем «ОК» и смотрим, что сигнал с тюнера доступен.
4. Снова открываем «Медиа» -> «Открыть Capture Device».
5. Нажимаем «Вывод потока». Там ставим птицу http, вписываем свой IP-адрес и порт, с которого планируем вести трансляцию.
6. Ставим птицы «Видеокодек» и «Аудиокодек», чтобы перекодировать сигнал с тюнера в более распространенный кодек, если у ваших пользователей не установлен кодек, в котором работает тюнер. Если птица не установлена, VLC будет транслировать поток с тюнера без перекодирования. Нужна эта опция или нет – обычно проверяется на практике.
7. Нажимаем «ОК», и VLC переходит в режим Television. VLC не может одновременно транслировать поток и показывать. Поэтому чтобы убедиться, что все работает, открываем у себя еще один VLC-плеер.
8. Нажимаем «Медиа» -> «Открыть URL».
9. Вписываем в поле http свой IP-адрес и порт.
10. Нажимаем «ОК». После этого VLC немного подумает и покажет вам картинку.
11. Теперь можно рассылать эту ссылку другим людям. Соответственно, для просмотра они могут использовать тоже VLC-плеер или любой другой потоковый. Но еще раз замечу, что для ТВ лучше всего себя зарекомендовал именно VLC.
12. Ретранслятор создается аналогично, только источником сигнала будет не Capture Device, а ваша ссылка с трансляцией.
Заключение
Вот, в принципе, и все основные моменты, на которые стоит обратить внимание при организации ТВ-трансляций через локальную сеть. Надеюсь, что этот материал вам помог. Всего доброго и до скорых встреч.
Алексей Голованов, Минск 2010
Выбор тюнера
Если вы еще не определились с покупкой или все вместе собираетесь покупать один тюнер на вашу локальную сеть, не забудьте обратить внимание на несколько пунктов. Большинство владельцев тюнеров столкнулись с проблемой перехода на новые версии операционных систем из-за того, что для этих версий не написано соответствующих драйверов. Из производителей, представленных у нас на рынке, только AverMedia еще как-то более-менее следит за выпуском новых версий, и то далеко не для всех моделей. Получается интересная ситуация – тюнер, который в общем-то не является дешевой покупкой для рядового пользователя, будет игрушкой на один раз. Поменяв операционную систему, вы рискуете остаться без тюнера, и тогда придется покупать новый. Ситуация еще усугубляется тем, что основная масса тюнеров у нас – это относительно дешевые поделки от малоизвестных китайских производителей. Так что надеяться на выпуск новых драйверов смысла нет никакого. Следовательно, позаботимся о себе сами, а именно, узнаем, какие есть драйвера для данной модели, перед покупкой. Лучше всего, когда есть версии для 64-битных Windows 7 или хотя бы Windows Vista. Это обеспечит какую-то совместимость с будущими версиями Windows, которые будут иметь приоритет на 64 бита. Есть также сборки универсальных драйверов. Это тоже может помочь, если, например, разобрать тюнер и посмотреть, на каком чипе он собран. Посмотреть на такие сборки можно здесь:
http://www.pctuner.ru/list-c-soft04.html и здесь: http://www.flydrivers.ru/drivers/category/tv_capture.html.
Для пользователей Linux есть стандартный пакет V4L (Video for Linux). Там проблем будет меньше, потому что линуксоиды гораздо реже что-то меняют в своих системах, ибо у них и так все прекрасно работает. Но вот найти драйвера под Linux – это, как говорится, «вопрос на миллион долларов».
USB или PCI?
По большому счету, это не так важно, если у вас десктоп, но если вы обладатель ноут- или нетбука, то однозначно это — USB-тюнер. Скажу из личного опыта, что тюнеры отлично работают на двух и иногда трех USB-удлинителях, поэтому вы будете иметь определенную свободу выбора положения тюнера в комнате. Тюнеров, передающих данные по беспроводному интерфейсу, я не встречал.
Требования к железу
Сам по себе тюнер довольно нетребователен к частоте процессора и к памяти. Но его основная фишка – это работа в режиме реального времени. Поэтому тюнеры очень не любят, если параллельно с ними запущены еще какие-либо приложения. Ресурсов ему надо не много, но они должны быть постоянно свободны. Иначе будет периодическое зависание картинки – это выпавшие кадры, которые драйвер тюнера не успел обработать. Если вы администратор локальной сети и хотите организовать отдельный ТВ-сервер, нужно учесть еще вот что. Каждый запрос на ТВ-сервер юникастовый, то есть для каждого пользователя будет идти свое кодирование потока (мы сейчас не рассматриваем сети, построенные на управляемом оборудовании с мультикастовыми запросами). А это значит, что к ресурсам, которые нужны непосредственно самому тюнеру (обычно хватает процессора около 1.5 ГГц), добавятся еще накладки на кодеки. Поэтому лучше поставить под ТВ-сервер машину помощнее.
Антенна
Хорошо, если у вас проведена коллективная антенна. Отлично, если она дает хорошую картинку. Но и не так плохо, если антенны нет. Ее можно изготовить самому и получить при этом вполне удовлетворительное качество изображения. Я имею в виду самый простой вариант – полуволновой вибратор. Хорошая инструкция с иллюстрациями лежит здесь: http://www.belastro.net/?menu=1&submenu=101&page=1&nid=72.
Мощность ТВ-сигнала достаточная, чтобы ловить каналы на такую антенну прямо в серверной.
Цифровое вещание
Аналоговый тюнер не может принимать больше одного канала. Следовательно, вы не сможете транслировать больше одного канала своим пользователям. Здесь есть три выхода: либо все смотрят, что нравится вам, либо (в случае локальной сети) покупается несколько тюнеров, которые настроены на разные каналы. Но самым заманчивым вариантом выглядит переход на цифровое вещание. Тогда одним устройством можно будет «сливать» весь эфир. К сожалению, у нас в Беларуси этот процесс еще только начинается, поэтому цифровые тюнеры если и есть в продаже, то стоят дорого.
Кодеки
Каждый драйвер предлагает видеопоток с тюнера в том варианте, в котором ему захочется. Обычно вместе с драйвером устанавливается родная утилита для просмотра ТВ, для которой гарантируется совместимость, но никто не гарантировал ее с другими программами. Поэтому у вас может возникнуть проблема, когда вы не сможете получить видеосигнал с тюнера сторонним софтом. Дело, скорее всего, в кодеках, поэтому проблема решается установкой полного набора, например от K-Lite.
Трафик и качество картинки
Обычно на каждого пользователя, смотрящего трансляцию, требуется 1000 Кбит/сек видео плюс 192 Кбит/сек звука, то есть порядка 1200 Кбит/сек. Если тюнер позволяет принимать сигнал в хорошем качестве, битрейт видео можно повысить. Но обращаю ваше внимание на то, что, во-первых, это создаст большую нагрузку на процессор при кодировании, а во-вторых, для высокого битрейта нужна качественная антенна и качественные экранированные провода. Если этого нет, то и повышать битрейт нет смысла. На практике компьютер с частотой 3 ГГц под управлением Debian Linux справлялся с трансляцией на 50 машин с битрейтом 1200 Кбит/сек. При этом процессор был «забит под завязку».
Распределенные трансляции или релэй
Решить проблему нагрузки на ТВ-сервер можно, если кто-то из пользователей в сети поднимет такой же сервер-ретранслятор. Это очень удобно, если, например, сеть имеет несколько выделенных сегментов, где каждый сегмент соединен узким каналом связи (например, Wi-Fi, «перекинутый» через улицу). Тогда на каждый сегмент создается свой ретранслятор, и проблема нагрузки канала решается. Еще раз повторю, что хотя 1200 Кбит/сек и небольшой трафик, он должен быть гарантированно свободным, так как мы работаем с видеопотоком в реальном времени.
Софт для трансляции
Наконец, переходим от слов к делу. Для организации трансляции очень хорошо зарекомендовал себя плеер VLC (http://www.videolan.org/vlc/). Это кросс-платформенная программа (Windows, Linux, MacOS). Она не содержит ничего лишнего и позволяет поднять трансляцию в несколько кликов. Приведу пошаговую инструкцию.
1. Нажимаем «Медиа» -> «Открыть Capture Device».
2. Если в списке устройств нет тюнера, нажимаем «Обновить».
3. Нажимаем «ОК» и смотрим, что сигнал с тюнера доступен.
4. Снова открываем «Медиа» -> «Открыть Capture Device».
5. Нажимаем «Вывод потока». Там ставим птицу http, вписываем свой IP-адрес и порт, с которого планируем вести трансляцию.
6. Ставим птицы «Видеокодек» и «Аудиокодек», чтобы перекодировать сигнал с тюнера в более распространенный кодек, если у ваших пользователей не установлен кодек, в котором работает тюнер. Если птица не установлена, VLC будет транслировать поток с тюнера без перекодирования. Нужна эта опция или нет – обычно проверяется на практике.
7. Нажимаем «ОК», и VLC переходит в режим Television. VLC не может одновременно транслировать поток и показывать. Поэтому чтобы убедиться, что все работает, открываем у себя еще один VLC-плеер.
8. Нажимаем «Медиа» -> «Открыть URL».
9. Вписываем в поле http свой IP-адрес и порт.
10. Нажимаем «ОК». После этого VLC немного подумает и покажет вам картинку.
11. Теперь можно рассылать эту ссылку другим людям. Соответственно, для просмотра они могут использовать тоже VLC-плеер или любой другой потоковый. Но еще раз замечу, что для ТВ лучше всего себя зарекомендовал именно VLC.
12. Ретранслятор создается аналогично, только источником сигнала будет не Capture Device, а ваша ссылка с трансляцией.
Заключение
Вот, в принципе, и все основные моменты, на которые стоит обратить внимание при организации ТВ-трансляций через локальную сеть. Надеюсь, что этот материал вам помог. Всего доброго и до скорых встреч.
Алексей Голованов, Минск 2010
Компьютерная газета. Статья была опубликована в номере 25 за 2010 год в рубрике hard