Pokud máte někdo zájem, napsal jsem kraťoučký
skriptík, který
převede libovolnou nahrávku z MythTV do formátu MKV s audiostoupou
ogg a videostoupou buď
h264 nebo mp4 a nakopíruje ji do určeného adresáře, přičemž název odpovídá názvu pořadu (nikoli mythtv číselný kód).
Funguje asi takto:1) převede nahrávku mencoderem (dvouprůchodově, mencoder proto, že má dle mých zkušeností velmi dobrou schopnost zachovat synchronizaci zvuku a videa) do zvoleného obrazového formátu se zvukovou stopou MP2 (můžete si to změnit, ale PCM zabírá přece jen dost místa a FLAC nenačte ffmpeg2theora)
2) mplayerem vytáhne zvukovou stopu
3) pomocí ffmpeg2theora převede do ogg (on to sice umí už mplayer, ale jen do avi a výsledek pak nenačte mkvmerge)
4) slepí je pomocí mkvmerge do jednoho
Přičemž pomocí sedu očeše z jejich názvu nevhodné znaky a pro odlišení nahrávek stejného jména (susediia na markíze třeba) přidá jako rozlišení PID procesu.
Jak nastavit0)
nainstalovat potřebné programy:
mplayer, mencoder, ffmpeg2theora, mkvtoolnix
1)
nastavit si v tom skriptíku
správné cesty, kam vám ukládá mythtv nahrávky a kam chcete, aby se to předělávalo, dále jestli se jedná o 4:3 nebo 16:9 materiál a jestli h264 nebo mp4 - kromě cest vše přidáváním a odebíráním znaků #
standartně je to 4:3 h264. Je praktické jej tam mít dvakrát, jednou třeba jako mythtomkv-16_9.sh a jednou jako mythomkv-4_3.sh.
2) nakopírovat do /usr/bin a
přidat spustitelný příznak (chmod +x nebo v nautilu "povolit spouštět jako program" ve vlastnostech.
3) nejlépe pomocí mythwebu (nastavení - mythtv)
nastavit jako "user job" takto:
LC_ALL=cs_CZ.UTF-8 /usr/bin/mythtomkv.sh "%FILE%" "%TITLE% - %SUBTITLE%"
to lc_all je tam proto, že jinak mythtv ten skript spustí s nějakým jiným locale a výsledné názvy jsou useknuté u prního diakritického znaménka3a)
pojmenovat (též pomocí mythwebu - nastavení, mythtv) ten user job třeba Mythtomkv, fantazii se meze nekladou
4)
restartovat mythbackend /etc/init.d/mythbackend stop
/etc/init.d/mythbackend start
(možná je na to i ikonka někde v menu
)
5) v menu sledování nahrávek v mythfrontendu dát
"i" (info) na pokusnou nahrávku, potom
"volby úlohy" a vybrat objevivší se
MythtomkvTady je:#!/bin/sh
# mythtomkv.sh 0.01
# gnu/gpl v3
# http://mythnotes.blogspot.com
# ------------------
# adresare
RECORDINGS=/mnt/myth/nahravky
OUTPUT=/home/mythtv/video
# definice promennych
SOUND="-oac lavc -lavcopts acodec=mp2"
PICTURE=dummy
#ASPECTRATIO="-aspect 16:9"
ASPECTRATIO="-aspect 4:3"
TEMPORARY=/tmp/mythtomkv-temp-$$
SOUNDFILE=/tmp/mythtomkv-sound-$$
OGGFILE=/tmp/mythtomkv-ogg-$$
PASSLOGFILE=/tmp/mythtomkv-pass1-$$
#OUTFILE=/home/mythtv/video/$2-$$.mkv
TEXTFILE=/tmp/mythtomkv-text-$$
SED=/usr/bin/sed
# lokace programu:
MENCODER="/usr/bin/nice -n10 /usr/bin/mencoder"
MPLAYER="/usr/bin/nice -n10 /usr/bin/mplayer"
FFMPEG2THEORA="/usr/bin/nice -n10 /usr/bin/ffmpeg2theora"
MKVMERGE="/usr/bin/nice -n10 /usr/bin/mkvmerge"
cd /tmp
# nazev souboru
echo $* | $SED "s/$1//g" | $SED 's/\//-/g' | $SED 's/^[ \t]*//' | $SED 's/\"//' | $SED 's/:/-/g' | $SED 's/</-/g' | $SED 's/>/-/g' | $SED 's/?/-/g' | $SED 's/@/at/g' | $SED 's/^[ ]*$/-/' > $TEXTFILE # vypise parametry posle je sedu ktery odstrani nazev souboru pak odstrani lomitka a nakonec pripadne mezery na zacatku
OUTPUTNAME=`cat "${TEXTFILE}"` # vypise shora ziskany nazev do promenne outputname
# PASS 1
# MP4
#$MENCODER $RECORDINGS/$1 $SOUND -ovc xvid -xvidencopts pass=1 -vf lavcdeint,scale=384:288 $ASPECTRATIO -passlogfile $PASSLOGFILE -o "/dev/null"
# x264
$MENCODER $RECORDINGS/$1 $SOUND -ovc x264 -x264encopts turbo=1:subq=1:frameref=1:bframes=2:pass=1 $ASPECTRATIO -passlogfile $PASSLOGFILE -o "/dev/null"
# PASS 2
# MP4
#$MENCODER $RECORDINGS/$1 $SOUND -ovc xvid -xvidencopts pass=2:bitrate=500:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg -vf lavcdeint,scale=384:288 $ASPECTRATIO -passlogfile $PASSLOGFILE -o "$TEMPORARY"
# x264
$MENCODER $RECORDINGS/$1 $SOUND -ovc x264 -x264encopts bitrate=926:subq=7:8x8dct:me=umh:frameref=5:b_adapt:bframes=3:b_pyramid:weight_b:trellis=2:brdo:bime:nofast_pskip $ASPECTRATIO -passlogfile $PASSLOGFILE -o "$TEMPORARY"
# EXTRAKCE ZVUKU
$MPLAYER -nolirc -dumpaudio $TEMPORARY -dumpfile $SOUNDFILE
# OGG
$FFMPEG2THEORA $SOUNDFILE -o $OGGFILE
# MKV
cd $OUTPUT
$MKVMERGE --noaudio $TEMPORARY --novideo $OGGFILE -o "${OUTPUTNAME}".$$.mkv
# UKLID
cd /tmp
rm $TEMPORARY
rm $SOUNDFILE
rm $OGGFILE
rm $PASSLOGFILE
rm $TEXTFILE
Poznámky*K dosažení obdobného cíle jsou i jiné skripty- na stánkách wiki mythtv umístěný skript v perlu, též tvoří mkv, ale je na můj vkus moc složitý a dlouhý, tekže se mi parametry konverze těžko upravují k obrazu svému, navíc má spoustu závislostí
- skript to264.sh Jaye Sprenkela - výstup jen do avi, a licence "kdykoli můžu odvolat cokoli" (proto je v tom mém vzhledem k rozsahu a komplikovanosti asi směšný odkaz na GPLv3), jeho výhoda je ale to, že umí vytáhnout z mythtv databáze i střih. Používal jsem ho až donedávna, a dost se jím inspriruji.
*Provozuji to na OpenSuSE, kde mám nahrávací server. Nevidím ale důvod, proč by to nejelo i jinde, tedy na Ubuntu