Tälllainen räpellys pääsi syntymään
. Aloittelija asialla
Käyttö:
./rojektiks /polku/videoon.m2t
KDE:n sevicemenu eli toiminnot valikkoon m2t tiedostolle:
Tallenna ~/.kde/share/apps/d3lphin/servicemenus/rojektiks
chmod +x rojektiks
Vaihda d3lphinin tilalle mahdollisesti konqueror
Tallenna tuo
/.kde/share/mimelnk/video/m2t.desktop
[Desktop Entry]
Comment=
Hidden=false
Icon=video
MimeType=video/m2t
Patterns=*.m2t;*.M2T
Type=MimeType
Tallenna tuo
~/.kde/share/apps/d3lphin/servicemenus/projectx.desktop
[Desktop Entry]
ServiceTypes=video/m2t
Actions=rojectiks;
[Desktop Action rojectiks]
Name=Käsittele ProjectX:llä
Exec= ~/.kde/share/apps/d3lphin/servicemenus/rojektiks %f
Icon=video
Vaihda d3lphinin tilalle mahdollisesti konqueror tallennuskohteeseen ja sisältöön.
Melkoista räpellystä. Tiedetään... mutta menköön.
ei kovinkaan näppärän näköinen
#!/bin/bash
#DVB-video demuksataan ProjectX:llä (java) ja muksataan mplex:llä (mjpegtools).
#Suomentakaa sanat, jos haluatte :)
#Mahdolliset tekstitykset muunnetaan tekstimuotoon son2srt -skriptillä. Löytyi tuolta:
#http://www.cs.helsinki.fi/u/mikkila/son2srt/. Vaatimukset: python, gocr ja netpbm
PAIKKA=`dirname "$1"`
cd "$PAIKKA"
tiedosto=`basename "$1"`
###############################Täytä oikein!#############################################
#Javan sijainti
JAVA=
#ProjectX.jar sijainti
PX=
#X.ini sijainti. Määrittele X.ini tiedostolle tekstityksien muodoksi son ProjectX:llä
XINI=
#Komento son2srt
s2s=
#Kirjaimien kuvatietokannan sijainti
tk=
#Tekstieditori
te=
#########################################################################################
#Muutetaan mahdollisesti tiedoston nimi
#ääkköset poistetaan mkvtoolnix:in vuoksi
uusi=`echo "$tiedosto" | sed -e 's/ */_/g' -e 's/_-_/-/g' -e 's/__/_/g' -e 's/ä/a/g' -e 's/å/o/g' -e 's/Å/O/g' -e 's/ö/o/g' -e 's/Ä/A/g' -e 's/Ö/O/g' `
mv "$tiedosto" $uusi
tiedosto="$uusi"
aika=`date +%d-%m-%H-%M-%S`
tmp=$(echo $PAIKKA/tmp-"$tiedosto"-"$aika")
mkdir "$tmp"
demux=`echo $JAVA -jar $PX ""$PAIKKA"/"$tiedosto"" -out "$tmp" -ini $XINI `
kdialog --icon video --caption "Leikataanko?" --yesnocancel \
"Haluatko leikata $tiedosto -videon?"
kysymys=`echo $?`
if [ "$kysymys" = 0 ]
then
kdialog --title "Jatko" --passivepopup \
"Suljettuasi ProjectX:n tiedostot muksataan mpeg-tiedostoksi" 20 &
$demux -gui
elif [ "$kysymys" = 1 ]
then
kdialog --title "Jatko" --passivepopup \
"Videon ääni, kuva ja tekstitykset muksataan erilleen" 10 &
konsole -title Demuksataan --caption ProjectX --nomenubar --noframe --notabbar --geometry 800x300 -e $demux
elif [ "$kysymys" = 2 ]
then
exit 0
fi
tiedosto="${tiedosto%.m2t}"
cd $tmp
if [ -f "$tmp"/"$tiedosto".m2v ]
then
kdialog --title "Jatketaan" --passivepopup \
"Muksataan mpeg-tiedostoa" 5 &
(mplex -f8 "$tiedosto".m2v "$tiedosto"*.mp2 -o "$tiedosto".mpg && rm "$tiedosto".m2v "$tiedosto"*.mp2)&
sleep 2
kuvakoko=$(du "$tiedosto"*.mp2 | cut -f1)
aanikoko=$(du "$tiedosto"*.m2v "$tiedosto"*.ac3 | cut -f1| xargs| sed 's/ /+/g'|bc)
koko=$(echo $kuvakoko + $aanikoko | bc)
mpgkoko=0
dcopRef=`kdialog --title Muksataan --caption mplex --icon video --progressbar "Muksataan videota $tiedosto.mpg" $koko`
dcop $dcopRef showCancelButton true
while [ -f "$tiedosto"*.m2v ]
do
if [ "true" == `dcop $kdialog wasCancelled` ]
then
kill %1
rm -rf $tmp
exit 0
fi
mpgkoko=$(du "$tiedosto".mpg | cut -f1)
dcop $dcopRef setProgress $mpgkoko;
sleep 0.2
done
dcop $dcopRef close
if [ -f $tiedosto.son ]
then
#Muunnetaan tekstitykset tekstitiedostoiksi
kdialog --title "Tekstitykset" --passivepopup \
"Yritetään tunnistaa kirjaimet. Mikäli ei onnistu niin voit yrittää itse ja lisätä tietokantaan" 5 &
xterm -title son2srt -e "$s2s" -d "$tk" -c -a -v -s 9 -r 4 -i ""$tmp"/"$tiedosto".son" -o ""$tmp"/"$tiedosto".srt"
#Korjataan joitakin mahdollisia virheitä.
#Suurilla kirjaimilla pitää arvailla (alkaen kolmas rivi komennon alusta)
cat $tiedosto.srt |sed \
-e 's/\([a-zåäö]\)I/\1l/g' -e 's/\([A-ZÅÄÖ]\)I\([a-zåäö]\)/\1l\2/g' -e 's/AI /Al /g' \
-e 's/Iaa/laa/g' -e 's/Iah/lah/g' -e 's/Iai/lai/g' -e 's/Iak/lak/g' -e 's/a_/ä/g' \
-e 's/Iant/lant/g' -e 's/Iam/lam/g' -e 's/Iap/lap/g' -e 's/Ias/las/g' -e 's/Ieh/leh/g' \
-e 's/Iento/lento/g' -e 's/Iep/lep/g' -e 's/Iia/lia/g' -e 's/Iii/lii/g' -e 's/Iu/lu/g' \
-e 's/Iäh/läh/g' -e 's/Iäm/läm/g' -e 's/Iäp/läp/g' -e 's/Iäksin/läksin/g' -e 's/Iäksiä/läksiä/g' -e 's/Iänt/länt/g' \
-e 's/Iöy/löy/g' -e 's/Iäs/läs/g' -e 's/Iäksy/läksy/g' -e 's/Iäkäh/läkäh/g' -e 's/Iät/lät/g' -e 's/hantä/häntä/g' \
-e 's/Iää/lää/g' -e 's/Iöi/löi/g' -e 's/Iöy/löy/g' -e 's/a_/ä/g' -e 's/silma/silmä/g' -e 's/tya/tyä/g' \
> $tiedosto-sed.srt
mv $tiedosto-sed.srt $tiedosto.srt
kdialog --title "Turhat tiedostot poistetaan" --passivepopup \
"Suljettuasi "$te"n kuvatekstit poistetaan" 7 &
#Tarkastetaan tekstitykset
$te $tiedosto.srt
#Asetustiedosto:~/.kde/share/config/rojektis
kdialog --icon video --caption "Merkistökoodaus?" --dontagain rojektis:nofilemsg --yesno "Haluatko vaihtaa UTF-8 merkistökoodauksen ISO-8859-1:ksi?"
if [ 0 -eq "$?" ]
then
iconv -f UTF-8 -t ISO-8859-1 $tiedosto.srt >"$tiedosto"-iso.srt
mv "$tiedosto"-iso.srt $tiedosto.srt
fi
fi
kdialog --title "Valmis" --passivepopup \
"Video "$tiedosto".mpg on valmis" 5 &
if [ -f $PAIKKA/$tiedosto.m2t ]
then
kdialog --icon video --caption "Poista?" --yesno "Poistetaanko alkuperäinen $tiedosto.m2t -tiedosto?"
if [ 0 -eq "$?" ]
then
rm "$PAIKKA"/"$tiedosto".m2t
fi
fi
if [ -f "$tiedosto".mpg ]
then
kfmclient move "$tiedosto".mpg "$PAIKKA"/
if [ -f "$tiedosto".srt ]
then
kfmclient move "$tiedosto".srt "$PAIKKA"/
fi
fi
rm -rf $tmp
exit 0
elif ! [ -f $tiedosto.m2v ]
then
kdialog --title "Lopetetaan" --passivepopup \
"ProjectX ei tuottanut m2v -tiedostoa" 5 &
rm -rf "$tmp"
exit 0
fi
Ei kai mitenkään kaunista, mutta toimii
Muoks. korjattiin pieni itsestäänselvyys
Muoks2. Pistettiin pari mgronber ehdotusta toimimaan.
Muoks3. hiottiin vähän sediä
Muoks4. Lisättiin vähän lisää tavaraa ja suojellaan tavaraa tuhoisilta ylikirjoituksilta lisäten hommaan aika selkeyttämään.
Muoks5. Lisätty edistymisdialogi muksauksessa. kfmclient mv korvaamaan. ts tarvitsee KDE:n/KDE:n paketteja.