Notebook IBM Lenovo Z60m a MythTV v Ubuntu

Notebook používám především jako televizi + video rekordér s digitálním DVB-T tunerem a příležitostně jako náhradní počítač pro brouzdání po internetu. Operační systém je linux Ubuntu 9.04 Jaunty Jackalope, televizní funkce poskytuje MythTV.

Funkčnost po výchozí instalaci

Instalace z live-cd proběhla bez problémů, po restartování počítače bylo nastaveno správné rozlišení displaye, připojení na LAN přes síťový kabel i WIFI (WPA Access Point – nastavení hesla pomocí network manageru) taktéž bez problémů.

Ruční nastavení

Infra port

V aktuální verzi IR port nepoužívám, toto platilo pro Ubuntu 8.04: Ubuntu se automaticky snažilo aktivovat infra port do FIR režimu pomocí ovladače nsc-ircc – funčknost jsem netestoval. Chtěl jsem používat dálkové ovládání pro MythTV, a to je podporováno LIRC. Ten používá vlastní ovladače, takže bylo třeba úprav:

$ cat /etc/modprobe.d/lirc_mk
blacklist nsc-ircc
options lirc_sir io=0x02f8 irq=3
install lirc_sir /bin/setserial /dev/ttyS1 uart none; /sbin/modprobe --ignore-install lirc_sir

První řádek znemožní načtení nsc-ircc ovladače pro FIR (abych zamezil konfliktu s lirc_sir), další nastaví parametry IR portu dle nastavení v BIOSu a poslední pak uvolní sériový port a zavede modul lirc_sir. Pro kontrolu výpis z dmesg:

$ dmesg | grep ttyS
[    5.224211] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a NS16550A
$ sudo modprobe -r nsc-ircc
$ sudo modprobe lirc-sir
$ dmesg | grep lirc
[   20.711861] lirc_dev: IR Remote Control driver registered, at major 61
[   20.800768] lirc_dev: lirc_register_plugin: sample_rate: 0
[   20.800797] lirc_sir: I/O port 0x02f8, IRQ 3.
[   20.800814] lirc_sir: Installed.

Někdy je lépe počítač restartovat, moduly už se načtou ty správné. Funkčnost otestujeme:

$ sudo /etc/init.d/lirc stop
$ sudo mode2 -d /dev/lirc0

a při mačkání kláves na ovladači budou vypisovány kódy. Dále už jen stačí nastavit /etc/lirc/lircd.conf – návodů je na internetu spousta – a znovu spustit lirc démona.

Zvuk

Ač bylo možné nastavovat hlasitost pomocí ovládání hlasitosti v panelu Gnome (používá ovladač ALSA – Intel HDA) i hardwarovými tlačítky, zvuk žádný. Bylo nutno nastavit hlasitost „front“ kanálu:

$ sudo alsamixer

A kurzorovými tlačítky přejet na „front“, stlačit „M“ – unMute, šipkou nahoru zvýšit hlasitost na maximum a ESC opustit program

Identifikace hardware

$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)
14:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
14:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
14:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
14:00.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)
14:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG Network Connection (rev 05)
$ lsusb
Bus 005 Device 002: ID 07ca:b808 AverMedia Technologies, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 003 Device 002: ID 0a5c:2110 Broadcom Corp.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

První zařízení je DVB-T tuner AverMedia připojený mimo notebook na USB kabelu. Firmware se po připojení nahrál automaticky.

MythTV

Instalace a nastavení MythTV je podprobně popsána na stránkách projektu, Ubuntu obsahuje všechny potřebné balíčky v repozitáři. Existuje též klon Mythbuntu určený speciálně pro používání počítače jako MythTV, protože však notebook používám i na jiné účely, preferoval jsem standardní instalaci Ubuntu + MythTV balíčky.

Nastavení XvMC

MythTV standardně používá Xv ovladač pro zpracování videa. Notebook je osazen grafickou kartou Intel 915GM, v linuxu je podpora XvMC ovladače (část dekódovací práce MPEG2 se přenese na čip grafické karty a tedy klesne zatížení procesoru), avšak ve výchozím nastavení je vypnutý. Aktivace se provede úpravou xorg.conf (částečný výpis) a XvMCConfig:

$ cat /etc/X11/xorg.conf
Section "Device"
Identifier      "Configured Video Device"
Driver "intel"
Option          "XvMC"  "True"
EndSection
$ cat /etc/X11/XvMCConfig
/usr/lib/libIntelXvMC.so

Nastavení ovladače pro přehrávání videa se nastavuje ve frontendu (Nastavení televize) pomocí tzv. profilů – stačí zvolit CPU + plná hw podpora.

Automatické vypínání a zapínání

Cílem je, aby se notebook vypnul při nečinnosti (tj. neprobíhá nahrávání ani jej nikdo nepoužívá pro jiné účely) a opět zapnul před nahráváním pořadu na disk. Pokud dojde k restartu, pak by se mělo automaticky zobrazit úvodní stránky mythwelcome (umožňující spuštění MythTV frontendu).

BIOS umožňuje nastavení RTC alarmu (tj. probuzení v určený čas), to však funguje pouze při „spánku“ nikoliv při vypnutém počítači.

Uspání počítače

Ubuntu Intrepid používá Gnome power manager pro řízení spotřeby – některé akce jsou prováděny automaticky (odpojení od sítě má za následek potemnění LCD), jiné spouští uživatel. V případě aktivace spánku (suspend) jsou použity pm-utils skripty, konkrétně pm-suspend.

Z počátku fungovalo uspávání notebooku jen občas, často počítač zatuhnul. Po níže uvedených úpravách nakonec vše funguje.

Vytvořil jsem soubor pro změnu konfigurace pm-utils (tj. aby pm používalo funkcí kernelu a aby před uspáním odstranilo ovladač DVB-T tuneru):

$ cat /etc/pm/config/40mk
SLEEP_MODULE="kernel"
SUSPEND_MODULES="dvb_usb_dib0700"

Další krok je doplnění skriptu, který při uspávání zastaví mythtv backend, při probouzení naopak spustí, ovšem s tří vteřinovou prodlevou. Občas dělalo problémy připojení k síty, tak pro jistotu restartuji i NetworkManager:

$ cat /etc/pm/sleep.d/40z60m
#!/bin/bash
LOG=/var/log/mk.log
if [ "$1" = "suspend" ]
then
/etc/init.d/mythtv-backend stop
sleep 2
echo "--- Now is `date --rfc-3339=seconds`. Suspending..." >> $LOG
fi
if [ "$1" = "resume" ]
then
echo "--- Now is `date --rfc-3339=seconds`. Resuming" >> $LOG
/etc/init.d/NetworkManager restart
sleep 3
/etc/init.d/mythtv-backend start
fi

MythWelcome hlásí po probuzení chybu, že se nemůže připojit k backendu. To je způsobeno jeho zastavením během uspávání. Stačí potvrdit chybové hlášení a znovu se připojí. Ideální by bylo ukončit i MythWelcome a po probuzení jej znovu spustit.

Vypínání při nečinnosti

V mythtv-setup lze nastavit, po jaké době se má backend vypnout a jaký skript se má provést před samotným vypnutím. Je-li spuštěn frontend, backend se nevypne nikdy. Aplikace mythwelcome umí zobrazit stav backendu a přitom nenaruší vypnutí po uplynutí časové prodlevy. (Viz dokumentace.)

Skript pro testování „nečinnosti“ počítače (mythwelcome je spuštěn v X sezení uživatele „myth“, je-li přihlášen ještě jiný uživatel, k vypnutí nedojde):

$ cat /usr/local/bin/mk-myth-preshutdown
#!/bin/bash
LOG=/var/log/mk.log
# Will allow shutdown only if no user (apart from myth) is logged.
# mythshutdown script cannot be used directly - it assumes that MythTV is
# a standalone box.
echo "--- Now is `date --rfc-3339=seconds`" >> $LOG
if mythshutdown --check
then
if last | head | grep "logged in" | grep -q -v "myth"
then
echo "mk-preshutdown result: exit 1, an user logged in, resetting idle" >> $LOG
exit 1
else
echo "mythshutdown result: exit 0, going to power off" >> $LOG
exit 0
fi
else
echo "mythshutdown result: exit 1, resetting idle" >> $LOG
exit 1
fi
exit 1

Skript pro uspání počítače (zapíše datum a čas do RTC alarmu BIOSu a provede suspend):

$ cat /usr/local/bin/mk-rtc-alarm
#!/bin/bash
LOG=/var/log/mk.log
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo $1 > /sys/class/rtc/rtc0/wakealarm
echo --- RTC alarm saved on `date --rfc-3339=seconds` >> $LOG
echo Wake up time ${1}, or `date --date "@${1}" +%F" "%T` >> $LOGexit 0
$ cat /etc/rc.local
# Set MythTV backend access to RTC wake alarm
/bin/chown root:mythtv /sys/class/rtc/rtc0/wakealarm
/bin/chmod 664 /sys/class/rtc/rtc0/wakealarm
exit 0

Vzdálené připojení k MythTV

Pro plánování nahrávání či následné přehrávání pořadů používám občas MythWeb. Aby se notebook automaticky nevypnul, tak to prozatím řeším otevřením samostatného ssh sezení (jako neprivilegovaný uživatel). Výše uvedený skript mk-myth-preshutdown pak zajistí, aby se backend zůstal zapnutý.

Archivace nahraných pořadů

Před dalším zpracováním pořadů nahraných z DVB-T je nutné nejprve opravit možné chyby v transport streamu (MPEG TS) – používám Java aplikaci ProjectX (součást Ubuntu) s výstupem opět PS MPEG. ProjectX umožňuje i ruční střih (reklamy apod.), ale vzhledem k občasným problémům se synchronizací zvukové stopy s obrazem se mi jeví spolehlivější provést střih až v Avidemuxu.

Opravený MPEG stream lze bez problémů otevřít v Avidemuxu a dále konvertovat do libovolného formátu. Pokud je pořad v prokládaném (interlaced) formátu, používám filtr kerndeint.

$ cat /usr/local/bin/mk-correct-TS.sh
#!/bin/bash
# Helper for video conversion
# Workflow:
#   1. MythTV recording is a TS MPEG 2 stream
#   2. ProjectX corrects the stream and demuxes audio and video
#   3. Mencoder remuxes the audio and video together
#   4. Avidemux2 for editing
# Ad 2.
# It is better not to do any cutting in ProjectX, but later in Avidemux2
inname=`basename "$1" .mpg`
projectx -demux -out /tmp "$1"
# Ad 3.
# FFmpeg had problems with some demuxed files
#ffmpeg -i "$inname".mp2 -i "$inname".m2v -acodec copy -vcodec copy "$inname"_corrected.mpeg
mencoder -audiofile /tmp/"$inname".mp2 /tmp/"$inname".m2v -of mpeg -oac copy -ovc copy -o "${1}"_corrected_TS.mpg
rm -f /tmp/"$inname".mp2 /tmp/"$inname".m2v /tmp/"$inname"_log.txt
# Ad 4.
echo "Now edit the movie in Avidvemux2."
echo "Save the film as a copy of video and audio to MPEG (PS stream)"

Jako výstupní formát pro archivaci i přehrávání v mobilu Sony Ericsson P1i volím H.264 v kontejneru MP4.

Záloha DVD

Přehrávání DVD činí v MythTV někdy potíže – občas není DVD detekováno (pomůže restartovat X sezení pomocí ctrl+alt+backspace), občas při přehrávání (zvláště počátečních reklam) přehrávač zamrzne.

Dávám přednost vytvoření kopie přímo na hdd – jednotlivé kapitoly extrahuji pomocí OGMRip do formátu MP4 (H.264, AAC):

  • OGMRip umožňuje vložit do MP4 kontejneru více zvukových stop;
  • při převodu vobsub titulků do textové podoby používá tesseract-ocr – počítejte s tím, že nejprve budete muset tesseract naučit jednotlivé znaky (viz dokumentace), zvláště v případě češtiny;
  • zdrojové snímky neořezávám ani neměním poměr stran;
  • lze zvolit „animované“ a „deinterlace“ před samotným kódováním beze změny nastavení profilu.

V některých případech OGMRip nerozpozná správně kapitoly, pak lze ripnout jednotlivé kapitoly (bez re-komprese) a následně je konvertovat v Avidemuxu:

$ mplayer dvd:// -dvd-device /media/tmp -chapter 13 -dumpstream -dumpfile "Kapitola 13.avi"

kde -dvd-device určuje umístění adresářové struktury DVD (v tomto případě ručně připojeného ISO souboru pomocí mount -t iso9660 dvd.iso /media/tmp)

OGMRip – vlastní profil (MP4, H.264, AAC)

<ogmrip>
<profile base="/apps/ogmrip/profiles/0t1246180407ut449961u1000p17004r1118633301k1919007512">
<entry>
<key>name</key>
<value>
<string>PC, High Quality 2
(MP4 + x264 + AAC)</string>
</value>
</entry>
<entry>
<key>subp/eol</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>subp/charset</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>subp/codec</key>
<value>
<string>srt</string>
</value>
</entry>
<entry>
<key>subp/spell_check</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>subp/forced</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>audio/quality</key>
<value>
<int>3</int>
</value>
</entry>
<entry>
<key>audio/srate</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>audio/channels</key>
<value>
<int>1</int>
</value>
</entry>
<entry>
<key>audio/normalize</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>audio/codec</key>
<value>
<string>aac</string>
</value>
</entry>
<entry>
<key>video/max_height</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>video/max_width</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>video/codec</key>
<value>
<string>x264</string>
</value>
</entry>
<entry>
<key>video/can_crop</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/expand</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/dering</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>video/can_scale</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/qpel</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>video/denoise</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>video/turbo</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/threads</key>
<value>
<int>2</int>
</value>
</entry>
<entry>
<key>video/trellis</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/bitrate</key>
<value>
<int>1200</int>
</value>
</entry>
<entry>
<key>video/passes</key>
<value>
<int>2</int>
</value>
</entry>
<entry>
<key>video/preset</key>
<value>
<int>3</int>
</value>
</entry>
<entry>
<key>video/deblock</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>video/encoding</key>
<value>
<int>1</int>
</value>
</entry>
<entry>
<key>video/quantizer</key>
<value>
<int>2</int>
</value>
</entry>
<entry>
<key>video/scaler</key>
<value>
<int>7</int>
</value>
</entry>
<entry>
<key>x264/global_header</key>
<value>
<bool>false</bool>
</value>
</entry>
<entry>
<key>x264/vbv_bufsize</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>x264/bframes</key>
<value>
<int>3</int>
</value>
</entry>
<entry>
<key>x264/weight_b</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/cabac</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/me</key>
<value>
<int>2</int>
</value>
</entry>
<entry>
<key>x264/level_idc</key>
<value>
<int>51</int>
</value>
</entry>
<entry>
<key>x264/brdo</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/b_pyramid</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/subq</key>
<value>
<int>6</int>
</value>
</entry>
<entry>
<key>x264/dct8x8</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/mixed_refs</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>x264/vbv_maxrate</key>
<value>
<int>0</int>
</value>
</entry>
<entry>
<key>x264/frameref</key>
<value>
<int>3</int>
</value>
</entry>
<entry>
<key>container/format</key>
<value>
<string>mp4</string>
</value>
</entry>
<entry>
<key>container/ensure_sync</key>
<value>
<bool>true</bool>
</value>
</entry>
<entry>
<key>container/target_size</key>
<value>
<int>700</int>
</value>
</entry>
<entry>
<key>container/target_number</key>
<value>
<int>1</int>
</value>
</entry>
<entry>
<key>container/fourcc</key>
<value>
<int>0</int>
</value>
</entry>
</profile>
</ogmrip>

H.264 pro HTC Touch HD – vlastní skrip Avidemux 2.5.x

Nezapomenout zkontrolovat filtry – resize 800×480 (násobky 16x). Pro přehrávání v WM Playeru doplnit černé pruhy (jinak zkresluje poměr stran či naopak ořezává). Lepší přehrávač je v TouchFLO.

//AD  <- Needed to identify//
//--automatically built--

var app = new Avidemux();

//** Video **
//** Postproc **
app.video.setPostProc(3,3,0);

app.video.fps1000 = 25000;

//** Filters **
app.video.addFilter("mpresize","w=592","h=480","algo=0");
app.video.addFilter("addblack","left=104","right=104","top=0","bottom=0");

//** Video Codec conf **
app.video.codecPlugin("32BCB447-21C9-4210-AE9A-4FCE6C8588AE", "x264", "AQ=25", "<?xml version='1.0'?><x264Config><presetConfiguration><name>&lt;default&gt;</name><type>default</type></presetConfiguration><x264Options><threads>0</threads><deterministic>true</deterministic><idcLevel>-1</idcLevel><vui><sarAsInput>false</sarAsInput><sarHeight>1</sarHeight><sarWidth>1</sarWidth><overscan>undefined</overscan><videoFormat>undefined</videoFormat><fullRangeSamples>false</fullRangeSamples><colorPrimaries>undefined</colorPrimaries><transfer>undefined</transfer><colorMatrix>undefined</colorMatrix><chromaSampleLocation>0</chromaSampleLocation></vui><referenceFrames>2</referenceFrames><gopMaximumSize>250</gopMaximumSize><gopMinimumSize>25</gopMinimumSize><scenecutThreshold>40</scenecutThreshold><bFrames>0</bFrames><adaptiveBframeDecision>0</adaptiveBframeDecision><bFrameBias>0</bFrameBias><bFrameReferences>0</bFrameReferences><loopFilter>true</loopFilter><loopFilterAlphaC0>-1</loopFilterAlphaC0><loopFilterBeta>1</loopFilterBeta><cabac>false</cabac><interlaced>false</interlaced><cqmPreset>flat</cqmPreset><intra4x4Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intra4x4Luma><intraChroma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intraChroma><inter4x4Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></inter4x4Luma><interChroma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></interChroma><intra8x8Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intra8x8Luma><inter8x8Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></inter8x8Luma><analyse><partitionI4x4>true</partitionI4x4><partitionI8x8>false</partitionI8x8><partitionP8x8>false</partitionP8x8><partitionP4x4>true</partitionP4x4><partitionB8x8>false</partitionB8x8><dct8x8>false</dct8x8><weightedPrediction>false</weightedPrediction><directPredictionMode>spatial</directPredictionMode><chromaLumaQuantiserDifference>0</chromaLumaQuantiserDifference><motionEstimationMethod>hexagonal</motionEstimationMethod><motionVectorSearchRange>4</motionVectorSearchRange><motionVectorLength>-1</motionVectorLength><motionVectorThreadBuffer>-1</motionVectorThreadBuffer><subpixelRefinement>1</subpixelRefinement><chromaMotionEstimation>false</chromaMotionEstimation><mixedReferences>false</mixedReferences><trellis>disabled</trellis><fastPSkip>false</fastPSkip><dctDecimate>false</dctDecimate><noiseReduction>0</noiseReduction><interLumaDeadzone>21</interLumaDeadzone><intraLumaDeadzone>11</intraLumaDeadzone></analyse><rateControl><quantiserMinimum>25</quantiserMinimum><quantiserMaximum>35</quantiserMaximum><quantiserStep>2</quantiserStep><averageBitrateTolerance>1</averageBitrateTolerance><vbvMaximumBitrate>0</vbvMaximumBitrate><vbvBufferSize>0</vbvBufferSize><vbvInitialOccupancy>0</vbvInitialOccupancy><ipFrameQuantiser>1</ipFrameQuantiser><pbFrameQuantiser>1</pbFrameQuantiser><adaptiveQuantiserMode>variance</adaptiveQuantiserMode><adaptiveQuantiserStrength>1</adaptiveQuantiserStrength><quantiserCurveCompression>0</quantiserCurveCompression><reduceFluxBeforeCurveCompression>20</reduceFluxBeforeCurveCompression><reduceFluxAfterCurveCompression>0</reduceFluxAfterCurveCompression></rateControl><accessUnitDelimiters>false</accessUnitDelimiters><spsIdentifier>0</spsIdentifier></x264Options></x264Config>");

//** Audio **
app.audio.reset();
app.audio.codec("Faac",128,4,"80 00 00 00 ");
app.audio.normalizeMode=1;
app.audio.normalizeValue=0;
app.audio.delay=0;
app.audio.mixer="STEREO";
app.audio.resample=44100;
app.setContainer("PSP");
setSuccess(1);
//app.Exit();

//End of script

Tabulka přiřazení kanálů a vysílacích frekvencí

V současné době (říjen 2008) dochází k masívním změnám ve vysílacích frekvencích, při ladění stanic může pomoci následující tabulka:

Kanál       DVB-T frekv. (MHz)
-----       -----------------------
5              177,5
6              184,5
7              191,5
8              198,5
9              205,5
10              212,5
11              219,5
12              226,5
21              474
22              482
23              490
24              498
25              506
26              514
27              522
28              530
29              538
30              546
31              554
32              562
33              570
34              578
35              586
36              594
37              602
38              610
39              618
40              626
41              634
42              642
43              650
44              658
45              666
46              674
47              682
48              690
49              698
50              706
51              714
52              722
53              730
54              738
55              746
56              754
57              762
58              770
59              778
60              786
61              794
62              802
63              810
64              818
65              826
66              834
67              842
68              850
69              858

Jedna odpověď na “Notebook IBM Lenovo Z60m a MythTV v Ubuntu”

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..