Автор Тема: Запись с TV-тюнера по расписанию (Compro VM TV PVR/FM), кодирование, приоритеты  (Прочитано 4679 раз)

Оффлайн saww

  • Начинающий
  • *
  • Сообщений: 24
Друзья, не подскажете ли, как/чем подступиться к следующей задаче (сейчас успешно решаю ее в Windows, но хотелось бы перейти в Linux).

У меня имеются TV-тюнеры: Compro VideoMate TV PVR/FM (главный, на чипе Philips SAA7130) и D-Link DUB-T210 (добавочный, USB, на АЦП Philips SAA7113H, USB-конвертере EMPIA EM2820 и AC’97 аудиокодеке EMPIA EM202).

Задача состоит в том, чтобы иметь программу, которая висела бы в трее (в памяти), съедая поменьше ресурсов, и записывала бы TV-передачи по расписанию (время/дата начала/конца, TV-канал), кодируя сразу в Divx/MPEG4/Xvid/и.т.п., а звук - в MP3, и все это - с заданными параметрами битрейта и т.п. Кстати, насколько я понял, помимо закрытого кодека DivX, для Windows есть открытый ffdshow, который имеет кучу параметров, включая различные фильтры, действующие при воспроизведении видео почти любым плеером (к примеру - сглаживание "квадратиков"). А под Linux?

И хорошо бы - позволяла в нужный момент открыть и посмотреть, что показывают по нужному TV-каналу, а если сейчас идет запись - то что сейчас пишется.

Желательно, чобы программа имела хотя бы фильтры подавления шума (перед кодированием). А также - точную подстройку частоты каждого TV-канала и настройку цветности, яркости и пр. для каждого TV-канала отдельно.

И чтобы можно было или в самой программе, или извне, задать кодированию видео высокий приоритет, чтобы запущенные в это же время другие программы, съедающие много ресурсов, не приводили к выпадению кадров при записи видео. Кстати, в Windows по Ctrl-Alt-Del вызывается диспетчер задач, который подволяет вручную перезадать приоритеты. Также, можно, кажется, модифицировать ярлык для запуска программы так, чтобы она запускалась уже с нужным приоритетом. Есть ли столь же удобные инструменты приоритезации в Linux?

Ослоняющие обстоятельства - наш кабельный оператор часть каналов транслирует в стандарте PAL, а часть - в SECAM. Требуется или автоматическое определение системы цветности каждого канала, или - возможность ее ручного задания с запоминанием. В связи с этим, нашел такие ссылки:
http://www.mythtv.org/wiki/ComPro_VideoMate_TV_PVR/FM
http://www.linuxtv.org/wiki/index.php/Compro_VideoMate_TV_PVR/FM
http://www.linuxtv.org/wiki/index.php/Em28xx_devices
но в первых двух, касающихся главного моего тюнера, говорится о том, что если система цветности не будет прописана как PAL, то тюнер не найдет PAL каналов. А если у меня не все каналы PAL, а есть и SECAM?

Программы под Windows (например - Fly2000TV) все вышеперечисленное умеют. Можно ли реализовать это под Linux, и как?

Спасибо огромное за помощь!!

Оффлайн McFlooder

  • Начинающий
  • *
  • Сообщений: 7
    • Email
Программки такой не знаю. Сам делаю по красноглазому, собственноручно написанным скриптом. Для захвата и кодирования используется mencoder. Если нужно по расписанию, то заношу в кронтаб. Для прекращения записи в кронтаб заносится killall -TERM mencoder.
Вот собственно сам скрипт.
#!/bin/bash

CAPTURE_DIRECTORY=/media/storage/capture

case "$1" in
1)
    TV_NORM=SECAM
    TV_FREQ=183.25
    ;;
2)
    TV_NORM=SECAM
    TV_FREQ=623.25
    ;;
3)
    TV_NORM=SECAM
    TV_FREQ=527.25
    ;;
4)
    TV_NORM=PAL
    TV_FREQ=511.25
    ;;
5)
    TV_NORM=PAL
    TV_FREQ=671.25
    ;;
6)
    TV_NORM=PAL
    TV_FREQ=687.25
    ;;
7)
    TV_NORM=PAL
    TV_FREQ=639.25
    ;;
8)
    TV_NORM=PAL
    TV_FREQ=223.25
    ;;
*)
    echo Usage: $0 [channel_number]
    exit
    ;;
esac

mencoder -tv driver=v4l:width=768:height=576:norm=$TV_NORM:alsa:freq=$TV_FREQ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500 -oac mp3lame -lameopts cbr:br=128 -sws 1  -o "$CAPTURE_DIRECTORY/`date`.avi"  -vf crop=720:540:24:18,pp=lb tv://
Частоты, стандарты (PAL, SECAM) придется свои вставить, да и с опциями mencoder'а можешь побаловаться для достижения нужного тебе результата (а уж этих опций у него много).
Для запуска с определенным приоритетом можно воспользоваться коммандой nice.
« Последнее редактирование: 29.03.2009 21:51:18 от McFlooder »

Оффлайн saww

  • Начинающий
  • *
  • Сообщений: 24
Для моей задачи мне на других форумах посоветовали программы: VDR, MythTV, FreeVO, XdTV. Сейчас бъюсь над установкой хотя бы MythTV. Пока ничего не получается ни с дистрибутивами, где она предустановлена (Knoppnyth, Mythbuntu), ни с установкой на другие (Ubuntu - с репозитория, Mandriva - вручную).

Не подскажет ли кто: как эти программы под мои требования ?

Дело в том, что у меня расписание большое, передач надо писать много (желательно - при вводе расписания проверять, что они не перекрываются во времени), а cron-ом это, наверное, делать будет не удобно, по сравнению со специальным софтом?


...И еще - посоветовали разработать простенький GUI с cron-у, но я 100 лет не программировал. Нет ли у кого желания такое сделать? Идею предложили такую:
-----------------------------------------------------------------------
Cоздать интерфейс с полями:
- время запуска (для крон)
- длительность (для кодировщика)
- частота настройки на определенный канал
обработчик события (кнопка OK) создаст конфиг для кодировщика и запишет время запуска в крон. далее крон запустит скрипт, который порчитает конфиг и выполнит кодирование причем в фоне.
« Последнее редактирование: 01.04.2009 23:16:26 от saww »

Оффлайн shader

  • Начинающий
  • *
  • Сообщений: 10
Для подобных целей использую XdTV, правда версию не самую новую, т.к. в новой запись периодически ломают.
Кодирую в AVI, видео в XVID, звук в MP3. Запись по расписанию (дата, время, канал, выключение после окончания записи). Доволен как слон.
$ rpmquery xdtv
xdtv-2.4.0-alt11.cvs20070909.3

Оффлайн skyliver

  • Начинающий
  • *
  • Сообщений: 6
    • Email
Ребята, помогите настроить ТВ тюнер usb Compro PVR + FM! Ядро 2.6, определяется как Compro! Как определить каким устройством он определяется /dev/xxxxx и как настроить его в tvtime?