Nagrywanie TV w Linuksie

Posted on Fri 24 September 2004 in Tips4Unices

Zwykle tylko oglądam TV, ale wczoraj potrzebowałem coś nagrać.
Zrobiłem szybkie rozeznanie w dostępnych aplikacjach i rozpoczołem
testy. Zaznaczam, że były to pobieżne oględziny programów, gdyż nie
miałem czasu na dogłębne poznawanie każdego z nich.

Zapping - bardzo mało kodeków do wyboru, dziwny sposób ich wyboru, gdy wybierałem jako kontener AVI, jedynym kodekiem do wyboru był DivX 3.
DVR - Mimo usilnych prób, czytania FAQ, nie udało mi się "włączyć" tunera, cały czas miałem "czarny ekran".
xawdecode [xdTV] - program całkiem, całkiem, ale jego toporność GUI (motif) i mała ergonomiczność powala.
xawtv - zarzuty takie same jak w przypadku xawdecode [xdTV] (jak by nie patrzeć to xawdecode wywodzi się z xawtv :) ), zalet niestety brak gdyż xawdecode w sprawie nagrywania jest IMHO bardziej dopracowany.
fftv - Zapowiadało się, że program może być nawet dobry ale niestety próby jego uruchomienia kończyły się czasami zwisami systemu (mieszał chyba coś z synchronizacją w karcie TV, bo dostawałem komunikaty od sterownika bttv), więc nie mogę o nim nic powiedzieć. Spróbuję jeszcze w przyszłości.
Gv4l - Program jako jedyny zapowiada się ciekawie. Prosty, łatwy i przyjemny. Jego wadą jest ograniczony wybór opcji, tzn. nie mogę np. wybrać przepływności poniżej 800kb/s, ogromną zaletą jest możliwość oglądania TV podczas nagrywania. Jeżeli autor "ponaprawiałby" parę rzeczy, dodał trochę tu trochę tam to bedzie to chyba jedyny sensowny program do nagrywania.
MPlayer - To jest to co tygrysy lubią najbardziej ;). W ciągu 2 minut ruszyło nagrywanie z TV (poczytałem sobie trochę dokumentacji), wszystko jest nagrywane tak jak należy, żadnych problemów jak w przypadku poprzednich programow, duży wybór kodeków (mimo tego, że inne aplikacje korzystają z tych samych biblotek co MPlayer, nie znalazłem w nich możliwości wyboru tylu kodeków), dla lubiących "grzebać" i niezadwolonych z domyślnych ustawień ogromna ilość dodatkowych opcji do ustawiania.
transcode - Jeszcze nie bawiłem się tym programem, ale jako że Gv4l jest frontendem do transcode sądzę, że program ten jest równiez wart używania. Nie wiem jak wypada na tle MPlayera.
Podsumowując (wszystko oczywiście IMHO):
Aktualnie jedynymi programami nadającymi się do nagrywania TV pod
Linuksem są MPlayer (CLI, ogromne możliwości) i Gv4l + transcode
(CLI/GUI).

A ja upodobałem sobie streamer'a. w MPlayer'ze rozjeżdzał mi się dźwięk (może dlatego że mam słaby komputer Duron 1GHZ+512RAM'u). Streamer co prawda, generuje duże pliki (MJPEG), ale chodzi całkiem nieźle obraz nagrywany 640x480 x 20 FPS powoduje użycie procesora 80-90%... czyli tak w sam raz.



używam mencodera - swego czasu próbowałem różnych programów, szukając przedewszyskim programu, który najlepiej kompresuje obraz do divx w locie, a także aby móc jednocześnie oglądać to co się aktualnie nagrywa (karta na bt878);
zdaje się, że transcode miał plugin, który umożliwiał bezpośredni podgląd, lecz obraz mógł być jedynie w okienku a poza tym potrzebował mocniejszego procesora niż posiadam (duron 850);
tak więc do podglądu używam najprostszego sposobu jaki przyszedł mi do
głowy, czyli mencoder + mplayer uruchomiony jednocześnie mniej więcej tak (mplayer z opóźnieniem pięciu sekund - jeśli nagra się "za dużo" zawsze można poobcinać np. avidemuxem):

xterm -bg black -fg white -hold  -e nice -n -20 mencoder -endpos $CZAS -tv \
driver=v4l:buffersize=60:contrast=20:brightness=0:width=640:height=480:alsa:
amode=0 tv:// \
-vop scale=384:288 \
-lameopts mode=3:vbr=0:br=128 -o /$PARTYCJA/tv_$NAME.avi \
-oac mp3lame -ovc lavc -lavcopts vbitrate=$BITRATE:autoaspect:v4mv&sleep 5;\
ln -sf /$PARTYCJA/tv_$NAME.avi /root/TVrec/tv.avi
nice -n -20 mplayer -nocache -noframedrop -quiet /root/TVrec/tv.avi

Oprócz tego, via lirc (irexec), mogę uruchomić skrypt nagrywający/zatrzymujący z pilota; proste i wygodne - magnetowid leży w szafie;