LXF169:Raspberry Pi: Медиа
|
|
|
Raspberry Pi: ТВ-поток
Raspberry Pi. Примените свой Pi для потокового воспроизведения и записи телевидения.
После многолетней битвы с MythTV Грэм Моррисон нашел лучшее решение, благодаря Tvheadend.
Во многих телевизионных приставках уже есть Linux. И их небольшой вычислительной мощности более чем достаточно для записи и просмотра нескольких каналов одновременно, а также потокового воспроизведения по локальной сети. Raspberry Pi также прекрасно подходит для этих целей, и с подходящим оборудованием его можно превратить в мощный и дешевый цифровой видеомагнитофон, дополненный функциями потокового воспроизведения, расписаний и сдвига времени.
Подходящее оборудование – ключевые слова в предыдущем абзаце, так как безболезненность установки в основном зависит от того, будут ли устройства, предназначенные для записи телевизионного сигнала, «просто работать». К счастью, в Linux поддержка большинства таких устройств уже включена в ядро, поэтому многие устройства будут работать без дополнительных действий. И хотя все начинается в командной строке, мы разбили руководство на 10 шагов, чтобы ему было проще следовать. В конце у вас получится полноценная платформа для записи цифрового ТВ, с возможностью записи нескольких программ из нескольких источников – и все на скромном Raspberry Pi! Это прекрасная «серверная часть» для только что выпущенного медиа-проигрывателя XBMC, которым вы сможете воспользоваться в качестве клиента на любом из компьютеров сети.
Шаг за шагом
1 Наши устройства
Мы протестировали и настроили два USB-ресивера: один для приема наземного цифрового телевидения через антенну, а второй – для получения данных со спутника. Инструкции приводятся и для того, и для другого. Для приема сигнала DVB-T (наземного) мы воспользовались Sundtek MediaTV Pro, для DVB-S (спутникового) – Sundtek SkyTV Ultimate. Для последнего нужен блок питания 12 В, который также нужно подключить. Но вот самое важное требование: эти USB-устройства должны быть подключены к Raspberry Pi через USB-хаб с внешним питанием. Мы потратили два дня в попытках настроить систему – сначала без хаба, потом с несовместимым хабом. В обоих случаях казалось, что все работает, но при сканировании не находилось ни одного канала. Хаб с внешним питанием, совместимый с Raspberry Pi, решил проблему, так что это очень важно. Подключите к хабу источник питания, затем USB-ресивер, а потом подключите хаб к Pi. И не забудьте подключить кабель от антенны или спутниковой тарелки к ресиверу.
2 Внешнее хранилище
Мы предполагаем, что на Raspberry Pi есть настроенный и обновленный дистрибутив Raspbian. Мы также предполагаем, что Pi подключен к Интернету, и что вы набираете команды напрямую в консоли или через SSH. Теперь о том, где хранить записи. Рекомендуем подключить внешний USB-диск, так как постоянное чтение и запись на SD-карту чревато ее быстрым выходом из строя. Чтобы добавить внешний жесткий диск, просто подключите его к свободному порту USB и проверьте сообщения в системном лог-файле, набрав tail /var/log/messages. Вы увидите сообщение вроде usb 1-1.3.4.2: New USB device, и нужно обратить внимание на идентификатор устройства, который должен выглядеть примерно так: sda: sda1, где sda – само устройство, а sda1 – раздел. Наберите sudo mkdir/mnt/storage, чтобы создать точку монтирования, и sudo mount /dev/sda1 /mnt/storage/, чтобы связать ее с внешним жестким диском.
3 Установка драйверов
В зависимости от используемого оборудования, этот шаг может быть необязательным. Если вы выбрали устройство, которое совместимо с Linux и не требует дополнительных файлов драйверов, можно просто подключить устройство и перейти к следующему шагу. Для наших устройств Sundtek драйвер нужно загрузить и установить. Это легко. В командной строке Raspberry Pi наберите
wget http://www.sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
sudo ./sundtek_netinst.sh
Последняя строка запустит скрипт, который мы загружаем в первой строке. Он определит версию системы и загрузит последнюю версию драйверов. Драйверы останутся запущенными и настроенными на запуск при загрузке системы. Пользователям DVB-T также нужно выполнить следующую команду:
/opt/bin/mediaclient --setdtvmode=DVBT
Она гарантирует, что устройство настроено на прием наземного сигнала, а не сигнала от кабельного источника, поскольку устройство умеет делать и такое.
4 Установка Tvheadend
Программа, которой мы будем пользоваться для записи и потокового воспроизведения телевизионного сигнала, называется Tvheadend. С помощью модуля расширения для недавно вышедшего XBMC можно превратить этот превосходный медиа-проигрыватель в полноценный цифровой видеомагнитофон, а Tvheadend будет делать всю трудную работу в фоновом режиме на Raspberry Pi. Так как Tvheadend активно разрабатывается, мы воспользовались нестабильной версией, но если вы хотите пропустить этот шаг, можно так же легко воспользоваться дистрибутивом OpenElec вместо Raspbian. К счастью, сборка программы проста. Сначала установите утилиты для разработки и DVB:
sudo apt-get update
sudo apt-get install unzip libcurl4-openssl-dev pkg-config git build-essential dvb-apps gcc-4.7
После этого загрузите последнюю версию Tvheadend из репозитория разработчиков через git, и для ее сборки воспользуйтесь троицей ./configure, make и sudo make install:
CC=gcc-4.7; ./configure; make; sudo make install
5 Настройка Tvheadend
Пользовательский интерфейс Tvheadend доступен через web-браузер, но сначала его нужно запустить. Так как мы осуществляем запуск в первый раз, сделаем это в режиме настройки, и запустим его как демон, то есть он станет фоновым процессом. Чтобы это сделать, наберите
tvheadend -C -d
Теперь откройте браузер, желательно на другом компьютере сети, и введите http://ip_of_rpi:9981/extjs.html. IP-адрес Raspberry Pi можно узнать, набрав ifconfig и посмотрев на значение поля ‘inet addr’ устройства ‘eth0’. Браузер загрузит клиент по умолчанию для Tvheadend. В нем вы, наконец, увидите данные всех программ, а также настройки и просмотра записей. Нам нужно сказать клиенту, как пользоваться телевизионным оборудованием, которое мы подключили. Для этого выберите Configuration > TV Adaptors [Настройка > ТВ-Адаптеры] и выберите свое устройство из выпадающего списка слева. Следующие шаги будут зависеть от того, наземный или спутниковый сигнал вы принимаете, поэтому мы их разделим. Для спутникового сигнала переходите к следующему шагу, для наземного – к шагу 7.
6 Настройка приема спутникового сигнала
Прием спутникового сигнала настроить проще всего. Если адаптер выбран, то на странице General [Общее] появится обзор конфигурации. Поставьте галочку Enable [Включить] и нажмите Save [Сохранить]. Мы также добавим информацию о каналах, для чего вводится информация по поиску спутника и мультиплексам, которые он предоставляет, затем на этих мультиплексах производится поиск каналов, доступных для приема. Tvheadend соберет данные о спутнике по его местоположению, поэтому достаточно нажать кнопку Add DVB Network by location [Добавить сеть DVB по местоположению] слева. Тогда откроется окно с глобальным списком спутников. Для Великобритании и Северной Европы лучший вариант – Astra_28_2E. После выбора спутника Tvheadend добавит список мультиплексов для этого спутника на вкладку Multiplexes [Мультиплексы]. Они будут просканированы на имеющиеся каналы, и ход сканирования будет доступен в разделе Capabilities [Ресурсы] на странице General [Общее] справа. Если все работает, вы увидите обнаруженные сервисы (каналы) на вкладке Services [Сервисы]. Для Astra_28_2E мы обнаружили 970 сервисов из 98 мультиплексов. Если вы не хотите настроить систему также и для приема наземного сигнала, перейдите к шагу 8.
7 Настройка приема наземного сигнала
Сначала активируйте приемник на главной странице. Tvheadend содержит обширную базу данных настроенных передатчиков с подробной информацией о каждом мультиплексе. Вам нужно будет узнать, на какой передатчик указывает ваша антенна. В Великобритании это удобнее всего сделать на сайте www.digitaluk.co.uk/postcodechecker. Когда узнаете, просто нажмите кнопку Add DVB Network [Добавить сеть DVB] на вкладке General [Общее] адаптера и найдите передатчик «По расположению [By location]». Нашего местного передатчика в списке не оказалось. Пришлось зайти на www.ukfree.tv/transmitters.php, ввести индекс и добавить информацию о каждом мультиплексе вручную. Это можно сделать на вкладке Multiplexes [Мультиплексы] адаптера с помощью кнопки Add mux(es) manually [Добавить мультиплекс(ы) вручную]. В появившемся окне нужно ввести частоту [frequency], частотную полосу [bandwidth] и группу [constellation] для каждого мультиплекса, а все остальное установить в Auto [Автоматически]. Эти данные можно получить на сайте. Обычно это нужно делать для трех или четырех мультиплексов, в зависимости от вашего местоположения. Tvheadend просканирует их на сервисы/каналы и добавит в вашу конфигурацию.
8 Добавление каналов
Теперь у нас есть большой список сервисов, полученный из мультиплексов. Следующий шаг – разрешить Tvheadend получить из этих сервисов каналы; делается это на вкладке General [Общее] адаптера нажатием кнопки Map DVB Services To Channels [Связать сервисы DVB с каналами]. После этого у вас должен получиться список каналов для просмотра на странице Channels [Каналы] вне окна настройки адаптера. Каталог размещения записей по умолчанию нужно изменить – вероятно, на точку монтирования, которую мы создали в начале. Для этого зайдите на страницу Digital Video Recorder [Цифровой видеомагнитофон] и измените путь Recording System [Система записи]. Чтобы изменения вступили в силу, нужно сохранить настройки на этой странице. Также нужно настроить электронный телегид. Обычно у каждого канала есть минимум в виде What’s On Now [Сейчас в эфире] и What’s On Next [Далее в эфире], но сервисы вроде Freeview и Freesat в Великобритании предоставят более полную телепрограмму на семь дней. Чтобы активировать эти сервисы, зайдите на страницу EPG Grabber [Сервис электронного телегида], затем щелкните на любом из сервисов в разделе Over-The-Air-Grabbers [Эфирные сервисы]. После этого не забудьте сохранить конфигурацию, нажав Save Configuration.
9 Запись программы
Вскоре на странице Electronic Program Guide [Электронный телегид] появятся эфиры – их можно посмотреть или добавить в расписание для записи. Щелчок на любой программе откроет окно настройки записи. Другой вариант, Autorec [Автоматическая запись], интереснее: выполняется поиск по одним и тем же данным программ, чтобы записать все эпизоды, не полагаясь на ссылки из телегида.
В зависимости от числа каналов и объема данных телегида страница может сильно разрастись. Чтобы решить эту проблему, можно отфильтровать отображаемые данные, используя строку с опциями в верху списка. Можно искать по фрагменту заголовка или ограничиться одним каналом или тэгом фильтра. Если вы нашли фильтр, который вас устроил, по нажатию кнопки Create Autorec [Создать автоматическую запись] параметры поиска будут добавлены в Tvheadend, которая затем будет записывать все, что соответствует результатам поиска. Удалить запланированные записи можно на вкладке Digital Video Recorder [Цифровой видеомагнитофон]. Предстоящие записи удаляются с первой страницы, а фильтры Autorec – с последней. На срединных страницах можно воспроизвести или удалить сделанные записи или проверить, почему программа не записалась.
10 Просмотр записей и эфира
Установив плагин VLC для браузера, можно просматривать записи и эфирное ТВ в браузере. Мы проверили это только в Firefox, но по щелчку на эфирной программе появится возможность воспроизвести его [Play]. Если плагин VLC не установлен, вам предложат установить его; после установки должно появиться окно с эфиром программы. Кнопки в верху этого окна могут перевести в полноэкранный режим или сделать паузу в текущем эфире. Точно так же можно просматривать записанные программы на странице Digital Video Recorder [Цифровой видеомагнитофон]. Если вы не хотите пользоваться браузером, скопируйте и вставьте сетевой адрес в VLC на другом компьютере или узнайте в одном из руководств, как организовать общий доступ к папкам с записями по сети. Но на наш взгляд, Tvheadend удобнее всего пользоваться с новой версией XBMC, где есть плагин, способный общаться с Tvheadend напрямую, загружая телегид с Raspberry Pi и позволяя просматривать эфирные каналы, а также планировать и просматривать записи. Настроить его легко – просто зайдите на страницу плагина PVR для XBMC; мы планируем через месяц подробно рассказать об XBMC, и даем вам это как задание на дом! |