Ubuntu - FatRat, RRDTool, MythTV + NuvExport

Přidáno 15. března 2009, 22:31

Přechod na Ubuntu. Jo, jo, už je to tak. Pravděpodobně už jsem našel svoji novou distribuci. Stalo se jí Ubuntu, momentálně 8.10. Gentoo dostalo ještě jednu šanci, ale poté, co jsem nebyl schopen rychle rozchodit ani připojování USB flashky, pustil jsem ho k vodě.

V Ubuntu jsem nepovolil Compiz, stejně je to jen na parádu a když už není na koho machrovat, ztratil u mne smysl :)

Narazil jsem na pár překážek, ale zatím se mi je více méně podařilo nějak vyřešit. Abych nemusel v případě nehody systému zase vynalézat kolo, tady jsou některé, co jsem mi zaznamenal.

FatRat


Ten není v repozitáři, takže je nutné ho sosnout z domovských stránek. Při pokusu o kompilace jsem však končil na chybě:
...
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring done
Pomohla instalace balíku g++.

Následovala chyba:
pat@pat:~/fatrat-1.1$ cmake . -DWITH_SFTP=ON -DWITH_CURL=ON -DWITH_NLS=ON
-- The CXX compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake-2.6/Modules/FindQt4.cmake:1421 (MESSAGE):
  Qt qmake not found!
Call Stack (most recent call first):
  CMakeLists.txt:8 (find_package)


-- Configuring done
Zde pomohla instalace balíku qt4-dev-tools.

A dál:

pat@pat:~/fatrat-1.1$ cmake . -DWITH_SFTP=ON -DWITH_CURL=ON -DWITH_NLS=ON
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.4.3
CMake Error at /usr/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake:52 (MESSAGE):
  Could NOT find CURL
Call Stack (most recent call first):
  /usr/share/cmake-2.6/Modules/FindCURL.cmake:19 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:63 (find_package)


-- Configuring done
Pomohla instalace balíků curl a libcurl-gnutls-dev.

Pak už se kompilace podařila a FatRat šlape jak má :)

RRDTool


Nainstaloval jsem balíky: rrdtool, rrdcollect, snmp, snmpd a mbrowse

V souboru /etc/snmp/snmpd.conf jsem změnil část:

#       sec.name  source          community
com2sec paranoid  default         public
#com2sec readonly  default         public
#com2sec readwrite default         private
na:
#       sec.name  source          community
#com2sec paranoid  default         public
com2sec readonly  default         public
#com2sec readwrite default         private
To způsobí, že příkazem snmpwalk budu moct prohlížet různé údaje (např. vytížení procesoru, využití RAM, swapu atd.).

S RRDTool jsem opět drobet pokročil, ale to bude na dýl, tak jindy .-)

MythTV + Nuvexport


Pro nahrávání z TV jsem používal Kaffeine. Karel ale přišel s MythTV, s tím, že to stahuje TV program na 2 týdny dopředu a přes webové rozhraní se dá nastavit časové nahrávání. Případně překódování z MPEGu do AVI. Lákavé, takže jsem nainstaloval snad všechny balíky mající v názvu MythTV co jsem viděl v repozitáři :-) Hlavně mythweb. Vlastně jsem jel podle návodu (offline verze).

Ještě jsem nastavil přes mythtv-setup u TV karty ve volbach nahrávání:
Max. počet nahrávání: 5 (defaultně bylo 2 a v multiplexu je 4-5 programů, tak proč toho nevyužít ;-) )
Čekat na startovací hlavičku sekvence: ano (netuším co to dělá, tak sem nechal co tam bylo ;-) )
Používat DVB kartu na vyžádání: ano
Používat DVB kartu pro aktivní vyhledávání EIT: ne

Tím karta nebude využívána stále, ale jen v případě nahrávání, takže jí mohu použít já na sledování TV v reálném čase.

Už si přesně nepamatuji proč a co jsem tam rozvrtal, ale nakonec jsem usoudil, že nejjednodužší bude celé to odinstalovat a nainstalovat znovu. Ubuntu se pyšně zeptalo, jestli vážně chci odstranit konfigurační soubory. Jasně, jinak bych to nedělal, řekl jsem si. A tady někde začali moje patálie. Někde to totiž něco nechalo a nemohl jsem se připojit k databázi. Patrně jsem při opětovné instalaci zadal jiné heslo k DB než minule. Po Googlování a hledání, kamže všude se to heslo zapisuje, jsem došel k tomu, že mythtv-frontend má někde uložené heslo a to se musí shodovat s heslem uvedeným v /etc/apache2/sites-available/mythweb.conf.

Konkrétně část:

	setenv db_password      "mythtv_heslo_.-)"

Pak stačilo restartovat Apache a webové rozhraní se mi ukázalo :o)

Poprvé dlouho trvalo, než se naplní program ke všem kanálům. Nevím proč, ale zdálo se mi, že začal načítat program až po zaškrtnutí "Používat DVB kartu pro aktivní vyhledávání EIT" ve volbách nahrávání TV karty v mythtv-setup. Po načtení několika programů jsem to vrátil zase zpět a po nějakém čase už byl program pro všechno. Tak nevím, zda to mělo vliv, nebo to holt tak dlouho trvá, než se to přechroupe.

Zkusil jsem překédovat video pomocí Transcode z webového rohraní. Bylo to nesnadné, ale zdařilo se. Je k topmu však třeba nastavit profily (přes mythtv-frontend) a nejspíš už při zadávání nahrávání vybrat profil, kterým se to potom překóduje. Výsledkem je však video ve formátu *.NUV - wtf?? Smplayer to sice spustil, ale při pokusu změnit pozici skončil. Tímto jsem s Transcode skončil a vrhnul se do boje s nuvexportem. Ten má překódovat videa z MPEGu do AVI nějakým rozumným kodekem, např. XVIDem.

Po spuštění nuvexportu v terminálu na mne vyskočilo menu:

Using ffmpeg for exporting.
What would you like to do?

  1. Export to XviD (disabled)
  2. Export to SVCD
  3. Export to VCD
  4. Export to DVCD (VCD with 48kHz audio for making DVDs)
  5. Export to DVD
  6. Export to DivX (disabled)
  7. Export to ASF (disabled)
  8. Export to MP3
  9. Export to PSP (disabled)
 10. Export to MP4 (iPod) (disabled)
 11. Export to .nuv and .sql

  q. Quit

Choose a function:  

Samozřejmě jsem chtěl kódovat video kodekem XViD. Následovala chyba:
Your ffmpeg installation doesn't support encoding to xvid.
(It must be compiled with the --enable-libxvid option)

Na webu jsem našel návod. Je prý totiž třeba "unstripped" ffmpeg. Nevím sice co to je, ale pomohlo to.
Stačí:
sudo apt-get update
sudo apt-get purge ffmpeg
sudo apt-get install libavcodec-unstripped-51 libavdevice-unstripped-52
libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51
libswscale-unstripped-0 ffmpeg

Zaktualizuje se databáze balíčků, odinstaluje se ffmpeg s nějakými knihovnami, nainstalují se "unstripped! knihovny a ffmpeg. Pak je nutné znovu nainstalovat nuvexport. Pokud byl totiž předtím nainstalován, zmizí společně s ffmpegem.

Po spuštění nuvexportu už je menu veselejší:
Using ffmpeg for exporting.
What would you like to do?

  1. Export to XviD
  2. Export to SVCD
  3. Export to VCD
  4. Export to DVCD (VCD with 48kHz audio for making DVDs)
  5. Export to DVD
  6. Export to DivX
  7. Export to ASF
  8. Export to MP3
  9. Export to PSP (disabled)
 10. Export to MP4 (iPod)
 11. Export to .nuv and .sql

  q. Quit

Choose a function:  

Pak už stačí odpovědět na několik otázek týkajících se parametrů výsledného videa a jedem :)

(Posléze jsem našel i jiný návod jak se k ffmpegu s podporou XVIDu na Ubuntu dostat.)

Slušný popis nuvexportu (anglicky) je tady.

Pro integraci nuvexportu do webového rozhraní jsem našel pěkné HOWTO (offline verze).

Počeštil jsem si klikátka z "Convert to XVID" na "Konvertovat na XVID" (teď když nad tím přemýšlím, tak je to vlastně blbost, XVID je kodek, žádný formát.. no ale co). Svůj /etc/nuvexportrc jsem si upravil dle svého s ohledem na ten, co uváděl autor zmíněného HOWTO. Povolil jsem multipass, je to sice delší, ale kvalita je myslím lepší.. aspon teoreticky by mohla, vyzkoušené to nemám .-) A tady je můj výsledný /etc/nuvexportrc.

Všechno by bylo fajn, kdyby to ovšem fungovalo. Na webovém rozhraní se po kliknutí na "Konvertovat na XVID" sice do fronty uložilo konvertování videa, ale za pár chvil už bylo vesele hotovo. Blbost. V adresáři nic nebylo, tak jsem začal hledat šotka. Při spusštění v terminálu stejným příkazem co z mythweb to vypsalo nějakou hlášku o tom, že cutlist je špatný a že končí.

Pomohlo přepsání v /etc/nuvexportrc z:

use_cutlist = yes
na:
use_cutlist = no 

Pak už příkaz z terminálu fungoval a konvertoval. Pohužel z webu stále ne. Tentokrát jsem v /var/log/mythtv/mythbackend.log vyčetl:
2009-03-15 19:31:15.672 JobQueue: Started "Konvertovat na XVID" for "Média
    a svět" recorded from channel 1259 at Ne b?e 15 16:57:00 2009
2009-03-15 19:31:15.702 UPnpMedia: BuildMediaMap VIDEO scan starting
    in :/var/lib/mythtv/videos:
2009-03-15 19:31:15.711 UPnpMedia: BuildMediaMap Done. Found 0 objects
OSPEED was not set, defaulting to 9600 at
    /usr/share/nuvexport/nuv_export/shared_utils.pm line 61
DBI connect('database=mythconverg:host=localhost;port=3306','mythtv',...) failed:
    Access denied for user 'mythtv'@'localhost' (using password: YES)
    at /usr/share/perl5/MythTV.pm line 337
Cannot connect to database: 


Cleaning up temp files.
2009-03-15 19:31:16.279 JobQueue: Finished "Konvertovat na XVID" for "Média
    a svět" recorded from channel 1259 at Ne b?e 15 16:57:00 2009.

V /usr/share/perl5/MythTV.pm jsem našel řádek 337:
# Connect to the database
	$self->{'dbh'} = DBI->connect("dbi:mysql:database=$self->{'db_name'}:
    host=$self->{'db_host'};port=$self->{'db_port'}",
                                      $self->{'db_user'},
                                      $self->{'db_pass'})
            or die "Cannot connect to database: $!nn";

Svitlo mi, že během nechtěné patálie s heslama k mythtv databázi asi milej PERL, nebo kdo/co nezjistil, že heslo se změnilo a má kdesi uložené špatné. Postupně jsem se dopracoval ke změně v tomto souboru z:
elsif ($line =~ m#(.*?)#) {
	$mysql_conf{'db_pass'}  = $1;
}
na:
elsif ($line =~ m#(.*?)#) {
	$mysql_conf{'db_pass'}  = 'moje_nove_heslo_.-)';
}

A pak, světe div se, začalo to šlapat i z webového rozhraní :-)

Ufff, a to je prozatím vše :-)

Přidání vzkazu
* Tyto údaje je nutné vyplnit.