Текущее время: 28 мар 2024, 23:29 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

SMPlayer в качестве программы просмотра ТВ под Linux

Начать новую темуОтветить на тему Страница 1 из 4 [ Сообщений: 50 ] На страницу   1, 2, 3, 4  След.
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 24 июн 2009, 00:20. Заголовок сообщения:  SMPlayer в качестве программы просмотра ТВ под Linux
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Автор SMPlayer - по моему мнению, лучшего qt4-фронтенда к mplayer, вчера начал работу над поддержкой ТВ/DVB в этом проигрывателе. Это, конечно, всего лишь графическая оболочка для mplayer, но жутко удобная. Поэтому если всё пойдёт без проблем, получится отличная программа для просмотра как видеофайлов, так и каналов с тюнера.

На текущий момент пока работает только собственно сам просмотр.

В ближайших планах - реализация настраиваемого меню для списка каналов.
Профиль 
Сообщение Добавлено: 25 июн 2009, 16:40. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    21 янв 2009, 09:31
Сообщения: 25
Отличная новость! Сам давно использую smplayer, но вот заставить mplayer показывать телек под ним и VDPAU (аппаратное ускорение x264 HDTV в картах NVIDIA) пока не получается. В консоли все хорошо.
З.Ы. А ты молодца, провёл его агитацию в поддержу не только dvb (как он собирался), но и под tv и radio.
Последний раз редактировалось gentoo 29 июн 2009, 16:19, всего редактировалось 1 раз.
Профиль ICQ 
Сообщение Добавлено: 26 июн 2009, 07:51. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
http://smplayer.berlios.de/forums/viewt ... 5887#p5887
Новости: появился простенький редактор каналов. Пока ещё нужно править конфиг mplayer вручную, чтобы занести туда нужные частоты, но уже всё стало очень и очень юзабельно.
Профиль 
Сообщение Добавлено: 02 июл 2009, 16:24. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Итак, поддержка в SMPlayer реализована. Всё работает просто замечательно.
Выглядит это приблизительно так:

Изображение Изображение Изображение

Автор SMPlayer большей частью пытался внедрить поддержку dvb (есть, например, автоматический импорт каналов из channels.conf), но и с обычным аналоговым ТВ всё работает очень даже хорошо.
Ниже - небольшое руководство о том, как настроить SMPlayer для работы с аналоговым тв-тюнером.
  • Настройка mplayer

    Во-первых, mplayer должен быть собран с поддержкой tv и radio. Это условие оставим на вашей совести. Во-вторых, необходимо правильно настроить mplayer. В файле ~/.mplayer/config необходимо прописать все принимаемые у вас каналы, и по необходимости привязать их к определённому стандарту цветности. Вот пример моего файла ~/.mplayer/config:
    Код:
    tv=device=/dev/video0:driver=v4l2:norm=PAL
    #tv=immediatemode=0:alsa=1:adevice=hw.1,0:audiorate=32000:volume=100:forceaudio=1:forcechan=2:amode=1
    tv=channels=R2-R2=SECAM,R4-R4=SECAM,R7-R7=SECAM,R10-R10=SECAM,R12-R12=SECAM,SR3-SR3,SR5-SR5,SR7-SR7,SR8-SR8=SECAM,SR11-SR11
    radio=device=/dev/radio0:driver=v4l2
    #radio=adevice=hw=1.0:arate=32000
    #rawaudio=rate=32000

    1 строка - общие параметры (вместо PAL можно указать SECAM, если таких каналов у вас больше);
    2 строка (закомментирована) - нужна для передачи звука по шине PCI. Если эта функция нужна - нужно раскомментировать;
    3 строка - список ТВ-каналов. Пожалуй, самая сложная и скучная часть настройки. Формат - КАНАЛ-НАЗВАНИЕ, если система цветности та же что указана в первой строке или КАНАЛ-НАЗВАНИЕ=СИСТЕМА, если отлична от неё. Здесь КАНАЛ - это стандартное обозначение канала (его соответствие частоте можно посмотреть, например, здесь), НАЗВАНИЕ - имя, под которым вы хотите этот канал видеть. Ограничения - нельзя использовать пробелы (вместо них можно использовать знак подчеркивания _), нельзя использовать русские буквы и нельзя начинать название с цифры. Упростить настройку этого пункта можно, попробовав воспользоваться скриптами для сканирования каналов, которые на выходе выдают список каналов в нужном формате (правда, без указания системы цветности).
    4 строка - параметры радио;
    5 и 6 строки (закомментированы) - нужны для передачи звука по шине PCI. Оно работает, но наблюдаются проблемы с синхронизацией аудио (в man mplayer про это сказано), поэтому я эту функцию не использую, слушая звук через аудиошнурок.
    После этих настроек mplayer уже сам по себе будет красиво воспроизводить ТВ, достаточно лишь запускать его как mplayer tv:// (откроет первую станцию из списка) или mplayer tv://НАЗВАНИЕ. При этом можно переключаться между каналами в списке кнопками H и K на клавиатуре, переключение сопровождается OSD с названием канала.
    Радио тоже будет работать, запускать так: mplayer radio://ЧАСТОТА (например, mplayer radio://105.1). Если вы хотите попробовать радио со звуком по PCI шине - запускать надо mplayer radio://ЧАСТОТА/capture
  • Настройка SMPlayer
    Здесь всё гораздо проще, достаточно прописать в соответствующих редакторах каналов нужные URL (кстати, в список радио вместо radio://107.1 никто не запрещает записать адрес потока интернет-радиостанции):

    Изображение Изображение
  • Управление
    ТВ-каналы переключатся клавишами H и L, каналы радио - Shift-H и Shift-L. Если настроен захват через PCI-шину, то работает регулятор громкости плеера, иначе - нет.
Профиль 
Сообщение Добавлено: 16 июл 2009, 18:22. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Несколько замечаний/дополнений к предыдущему моему посту.

а) Автоматическое сканирование каналов

Можно воспользоваться вышеупомянутым скриптом для сканирования, но он не совсем нагляден для понимания. Поэтому можно поступить проще.
Запускаем mplayer в "подчинённом" (slave) режиме из любого графического эмулятора темминала:
Код:
mplayer tv:// -slave -quiet -tv driver=v4l2:chanlist=russia:normid=4

Здесь chanlist=russia - российская сетка частот, normid=4 - выбор системы цветности (4=PAL) большинства передаваемых в вашем регионе каналов. При этом запустится окно mplayer с 1 каналом в сетке и консоль будет ожидать ввода управляющих команд.
Вводим управляющую команду tv_start_scan в той же консоли:
Код:
tv_start_scan

mplayer начинает сканирование и на выходе в итоге выдаёт список доступных каналов:
Код:
channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12

Копируем теперь исходные и полученные данные в файл ~/.mplayer/config:
Код:
tv=driver=v4l2:chanlist=russia:normid=4
tv=channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12

Если какие-то из каналов в вашей местности вещают в другой системе цветности, нежели большинство других, mplayer при сканировании может их пропустить, поэтому имеет смысл произвести сканирование для другого значения normid (13 для SECAM) для чего снова запускаем mplayer в slave-режиме и запускаем сканирование
Код:
mplayer tv:// -slave -quiet -tv driver=v4l2:chanlist=russia:normid=13
tv_start_scan

mplayer снова выдаст на выходе строку со списком каналов, при этом он пользуется уже созданным файлом ~/.mplayer/config и новые найденные каналы помещает в конец строки:
Код:
channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12,2-ch13,3-ch14,SK8-ch15,6-ch16,10-ch17,12-ch18,27-ch19

Подредактируем конфиг, добавив новые каналы:
Код:
tv=driver=v4l2:chanlist=russia:normid=4
tv=channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12,2-ch13,3-ch14,SK8-ch15,6-ch16,10-ch17,12-ch18,27-ch19

Теперь можно запускать mplayer на просмотр ТВ командой mplayer tv://, переключение по списку каналов - клавишами H и L.
Все найденные каналы по умолчанию будут показываться в режиме PAL (normid=4). Чтобы для определённых из них выбрать другую систему цветности, нужно дописать её в конфиг следующим образом:
Код:
tv=driver=v4l2:chanlist=russia:normid=4
tv=channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5=SECAM,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12,2-ch13=SECAM,3-ch14=SECAM,SK8-ch15=SECAM,6-ch16=SECAM,10-ch17=SECAM,12-ch18=SECAM,27-ch19=SECAM

Теперь mplayer полностью настроен. Можно дать каналам другие имена вместо ch1, ch2 и т.д., использовать при этом можно только латинские буквы и цифры (имя канала не должно при этом начинаться с цифры).

б) Автоматическое включение/выключение нужного канала микшера.

При просмотре ТВ с помощью mplayer/smplayer можно использоваться захват звука по PCI шине (в предыдущем моём посте есть пример). Но этот вариант чуть более "тормознутый", и кому-то больше понравится передавать звук по шнурку. В этом случае по окончании просмотра ТВ желательно приглушать соответствующую линию микшера alsa, чтобы избавиться от шума аналогового тюнера, и включать эту линию при начале просмотра ТВ mplayer-ом. Делать это вручную неудобно, поэтому можно использовать следущий скрипт:
Код:
#!/bin/sh
v4l2here=$(echo "$@" | sed -e  s/'.*\(tv\|radio\):\/\/.*'/'true'/)
if [ ${v4l2here} == "true" ]
then
  amixer sset "Loopback" on
fi
mplayer "$@"
amixer sset "Loopback" off

Здесь v4l2here - переменная, которая становится true, если в передаваемых скрипту параметрах встречается tv:// или radio://
В этом случае включается Loopback канал микшера (у вас это может быть CD, Line In и пр), по окончании воспроизведения он снова отключается.
Этот скрипт можно назвать mplayereexec и поместить в /usr/local/bin и запускать просмотр ТВ как mplayerexec tv://. Нужная линия микшера будет включаться и отключаться когда нужно.
Также, в настройках SMPlayer в качестве исполняемого файла вместо mplayer можно указать этот скрипт, и всё будет работать точно так же.

в) Автоматическое применение фильтра crop для tv://

Часто по краям картинки с аналогового тюнера бывает разного рода шум, который полезно отрезать фильтром crop. Можно эту настройку поместить в ~/.mplayer/config, Но тогда картинка будет обрезаться не только при просмотре ТВ, но и обычных видеофайлов.
Решение - всё тот же скрипт mplayerexec. Приведём его к виду:
Код:
#!/bin/sh
v4l2here=$(echo "$@" | sed -e  s/'.*\(tv\|radio\):\/\/.*'/'true'/)
if [ ${v4l2here} == "true" ]
then
  amixer sset "Loopback" on
  mplayer "$@" -vf crop=688:516:16:12
else
  mplayer "$@"
fi
amixer sset "Loopback" off

И немного изменим ~/.mplayer/config, указав исходные размеры видео:
Код:
tv=driver=v4l2:chanlist=russia:normid=4:width=720:height=540
tv=channels=4-ch1,SK3-ch2,SK5-ch3,SK7-ch4,7-ch5=SECAM,SK11-ch6,SK13-ch7,SK14-ch8,SK15-ch9,SK16-ch10,SK17-ch11,S19-ch12,2-ch13=SECAM,3-ch14=SECAM,SK8-ch15=SECAM,6-ch16=SECAM,10-ch17=SECAM,12-ch18=SECAM,27-ch19=SECAM

Теперь при просмотре ТВ будет как включаться нужная линия микшера, так и применяться crop фильтр к картинке (в данном случае из картинки 720x540 получаем картинку 688:516 путём обрезания 16 пикселов по горизонтали и 12 - по вертикали).
Профиль 
Сообщение Добавлено: 16 июл 2009, 18:54. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Оптимизация интерфейса SMPlayer для более удобного просмотра ТВ.

По умолчанию панели инструментов SMPlayer выглядят так:

Изображение

SMPlayer позволяет полностью настроить содержимое своих панелей инструментов. Для просмотра ТВ удобно будет добавить на главную панель инструментов кнопки ТВ и Радио. Также неплохим решением будет убрать Языковую панель (Настройка - панели), а вместо неё поместить более компактные кнопки, выполняющие те же функции.
Итак, отключаем языковую панель, закрываем SMPlayer, открываем в любимом редакторе файл ~/.config/smplayer/smplayer.ini и находим секцию [default_gui]
Добавляем в actions\toolbar1 нужные кнопки - separator, tv_menu, radio_menu, audiotrack_menu, subtitlestrack_menu

В результате SMPlayer будет выглядеть уже так:

Изображение

Названия других полезных кнопок: speed_menu, videotrack_menu, screen_menu, videosize_menu, panscan_menu, aspect_menu, deinterlace_menu, videofilter_menu, rotate_menu, ontop_menu, audiotrack_menu, audiofilter_menu, audiochannels_menu, stereomode_menu, subtitlestrack_menu, titles_menu, chapters_menu, angles_menu, osd_menu.

В будущих версиях SMPlayer автор обещает графический интефрейс для настройки панелей инструментов.
Профиль 
Сообщение Добавлено: 17 июл 2009, 11:01. Заголовок сообщения: 
Зарегистрирован:
    10 июн 2009, 20:20
Сообщения: 27
писал(а):
В будущих версиях SMPlayer автор обещает графический интефрейс для настройки панелей инструментов.

А в принципе возможно, во время показа тв, скрывать в gui кнопки плэй пауза стоп, кнопки пермотки, скролбар и заменять их кнопками - следующий канал, предыдущий канал .. в общем элементами управления тв (радио) или это нарушит какую-то логику?
Я понимаю что это не реализовано в SMplayer, но как возможность сделать future request автору?
Профиль 
Сообщение Добавлено: 17 июл 2009, 17:23. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Идея интересная, пожалуй, действительно стоит feature request сделать.
Профиль 
Сообщение Добавлено: 18 июл 2009, 00:35. Заголовок сообщения: 
Зарегистрирован:
    06 май 2006, 23:14
Сообщения: 44
А переключать каналы цифрами нельзя? Если нет, то планируется ли?
Amd Athlon64 3500+; 5GiB RAM DDR2; GeForce 6600GT; 250Gb S-ATA2 HDD
Профиль 
Сообщение Добавлено: 19 июл 2009, 12:33. Заголовок сообщения: 
Зарегистрирован:
    28 май 2006, 22:41
Сообщения: 42
Вряд ли. В mplayer (и, соответственно, в smplayer) цифры используются для регулировки яркости/контрастности и т.п.
Профиль 
Сообщение Добавлено: 17 сен 2009, 15:17. Заголовок сообщения: 
Зарегистрирован:
    17 сен 2009, 15:11
Сообщения: 3
Звук захлебывается. Начинается - затухает, опять включится - опять ушел. В tvtime audio standart стоит как pal-dk или pal-bg, и с тем, и с тем нормально проигрывается, но хотелось бы возможности записи mencoder. Можно ли решить проблему со звуком?
Профиль 
Сообщение Добавлено: 17 сен 2009, 17:58. Заголовок сообщения: 
Зарегистрирован:
    17 сен 2009, 15:11
Сообщения: 3
С этим разобрался, надо SECAM-DK в norm писать, однако теперь идет два потока звука: один чуть менее тихий с небольшим опережением, второй - громче, получается периодически, что два звука перекрывают друг друга и что-либо понять невозможно.
Правда, mplayer tv:// не напрягает проц, а smplayer занимает до 30%. С чем это может быть связано?
Последний раз редактировалось alex09 18 сен 2009, 14:44, всего редактировалось 1 раз.
Профиль 
Сообщение Добавлено: 18 сен 2009, 01:42. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:51
Сообщения: 396
Шнурок от тюнера на вход звуковой карты подключен? Впечатление, что звук приходит двумя путями, через PCI и через вход звуковой карты.
Профиль 
Сообщение Добавлено: 18 сен 2009, 07:04. Заголовок сообщения: 
Зарегистрирован:
    17 сен 2009, 15:11
Сообщения: 3
Да, закомментировал строчку про звук с PCI, и все стало нормально.
Профиль 
Сообщение Добавлено: 20 окт 2009, 10:31. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    18 сен 2007, 08:34
Сообщения: 21
Откуда: Москва
Привет всем!

Вот меня гложет вопрос - почему всё-таки mplayer не управляет указанным ему аудио-каналом, если сам не захватывает аудио??? Тот же tvtime управляет. Например, подключен тюнер к CD разъёму звуковой карты, стало быть нужно регулировать громкость именно этого канала, а он вообще не хочет управлять громкостью. :( Это неудобно для управления с пульта - приходится регулировать громкость как-то по-другому, а так же делать выбор - настраивать регулировку громкости в целом системы или каждой программы отдельно.
Было бы хорошо, если хотя бы SMPlayer регулировал бы заданный канал (включал/выключал/двигал бегунок).

СПАСИБО АВТОРУ!

В URL канала в редакторе каналов можно вместо НАЗВАНИЯ канала ставить его номер по порядку в списке каналов.
Интересно что, если передавать список каналов через командную строку, то русские буквы в названиях каналов использовать можно! Но при этом кол-во символов в названии ограничено (по-моему десятью знаками) :(.

И ещё: в SMPlayer-е не работает функция fullsceen через LIRC! Громкость работает, переключение каналов работает и многое другое, настроенное для mplayer в LIRC, а fullscreen - нет.
А так же глюки:
1. Не подставляет значение к параметру 'osdlevel' ("... -ss 367 -osdlevel -noslices ..."), как в линуксе, так и на винде. При этом mplayer иногда это съедает, но в основном ругается.
2. Добавляет фильтр и сразу очищает список фильтров - "... -vf-add screenshot -vf-crl ..." (фильтры добавленные после работают).
BeholdTV M6 Extra Изображение Изображение
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 4  [ Сообщений: 50 ]  На страницу   1, 2, 3, 4  След.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: