Dvb wiki script/Script: Unterschied zwischen den Versionen
Escho (Diskussion | Beiträge) (Absicherung gegen unerwünschtes Löschen) |
Escho (Diskussion | Beiträge) (0.7.3: Requantisieren ausgebaut) |
||
Zeile 8: | Zeile 8: | ||
#Name: DVB_Wiki_Buch_Script | #Name: DVB_Wiki_Buch_Script | ||
− | #Version: 0.7. | + | #Version: 0.7.3 |
− | #Erstellungsdatum: | + | #Erstellungsdatum: 3.1.2009 |
#Autor: escho (www.linux-club.de) | #Autor: escho (www.linux-club.de) | ||
#Benutzung auf eigene Gefahr | #Benutzung auf eigene Gefahr | ||
Zeile 422: | Zeile 422: | ||
java -jar ${pjx} -demux -gui -ini ${default_pfad}/X.ini.film -out ${tmp_pfad} -name film "$quelldatei" 1>/dev/null | java -jar ${pjx} -demux -gui -ini ${default_pfad}/X.ini.film -out ${tmp_pfad} -name film "$quelldatei" 1>/dev/null | ||
echo "*** erledigt" ; echo | echo "*** erledigt" ; echo | ||
+ | audio_video_summe=`du -bc ${tmp_pfad}/*.ac3 ${tmp_pfad}/*.mp2 ${tmp_pfad}/*.m2v | cut -f1 | tail -n 1` | ||
+ | if [ $audio_video_summe -ge $maxgroesse ] | ||
+ | then | ||
+ | kdialog --error "Der Film ist zu groß für eine einzige DVD" | ||
+ | exit | ||
+ | fi | ||
} | } | ||
Zeile 440: | Zeile 446: | ||
#°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Bearbeitung°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° | #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Bearbeitung°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#........mp2-Ton auf einheitliche Lautstärke bringen (-12dBfs).......... | #........mp2-Ton auf einheitliche Lautstärke bringen (-12dBfs).......... | ||
Zeile 516: | Zeile 505: | ||
ac3_audio=`find ${tmp_pfad} | grep "ac3"` | ac3_audio=`find ${tmp_pfad} | grep "ac3"` | ||
− | |||
${mplex} -v1 -f8 -o ${tmp_pfad}/film.mpg ${mpeg1_video} ${mpeg2_video} ${ac3_audio} ${mp2_audio} 2>/dev/null | ${mplex} -v1 -f8 -o ${tmp_pfad}/film.mpg ${mpeg1_video} ${mpeg2_video} ${ac3_audio} ${mp2_audio} 2>/dev/null | ||
Zeile 639: | Zeile 627: | ||
11) filmauswahl_dvd #Fernsehaufnahme schneiden und als Video-DVD brennen | 11) filmauswahl_dvd #Fernsehaufnahme schneiden und als Video-DVD brennen | ||
pjx_demux_gui | pjx_demux_gui | ||
− | |||
multiplexen | multiplexen | ||
authoring_ohne_menue | authoring_ohne_menue | ||
Zeile 647: | Zeile 634: | ||
12) filmauswahl_dvd #Fernsehaufnahme schneiden und DVD-Struktur in Datei sichern | 12) filmauswahl_dvd #Fernsehaufnahme schneiden und DVD-Struktur in Datei sichern | ||
pjx_demux_gui | pjx_demux_gui | ||
− | |||
multiplexen | multiplexen | ||
authoring_ohne_menue | authoring_ohne_menue |
Version vom 3. Januar 2009, 16:32 Uhr
Vom DVB zur DVD, ein Wikibuch: Übersicht - Der Weg - Die Helferprogramme - Das Script - Installation - Bedienungsanleitung - Programmieranleitung |
Bitte die Installationsanleitung beachten!
#!/bin/bash #++++++++++++++++++++++++++++++++++++++++++++++++++++++++BESCHREIBUNG ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #Name: DVB_Wiki_Buch_Script #Version: 0.7.3 #Erstellungsdatum: 3.1.2009 #Autor: escho (www.linux-club.de) #Benutzung auf eigene Gefahr #Dieses Shell Script automatisiert weitgehend die Vorgänge, die nötig sind, um aus einer DVB-Aufnahme #eine abspielbare Video-DVD zu erzeugen #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Funktionen++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Für's Austesten°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° stop () { kdialog --msgbox "Programm unterbrochen" } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Initialisierung°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° #-----Basisverzeichnis festlegen beim ersten Scriptaufruf----- basisverzeichnis_festlegen () { echo "*** Festlegen des Basisverzeichnisses ***" if [ ! -e ~/.dvb_wiki_script_arbeitsverzeichnis.txt ] then hilfsverzeichnis=`kdialog --caption "Name des Arbeitsverzeichnisses" --inputbox ~/ dvb_wiki_script` if [ $? = 0 ] then basisverzeichnis=~/`echo $hilfsverzeichnis | tr -d " "` if [ -e ${basisverzeichnis} ] then kdialog --passivepopup "Verzeichnis existiert schon! Bitte neu wählen" 3 basisverzeichnis_festlegen else kdialog --passivepopup "Die Verzeichnisstruktur wird in folgendem Arbeitsverzeichnis erstellt: ${basisverzeichnis}" 3 echo ${basisverzeichnis} > ~/.dvb_wiki_script_arbeitsverzeichnis.txt fi else kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi fi echo "*** erledigt" ; echo } #-----Basisverzeichnis auf einige nicht erlaubte Zeichen testen----- string_basisverzeichnis_testen () { if [ -s ~/.dvb_wiki_script_arbeitsverzeichnis.txt ] then grep -e " " -e "*" -e "~" ~/.dvb_wiki_script_arbeitsverzeichnis.txt if [ $? = 0 ] then kdialog --error "Basisverzeichnis enthält unerlaubte Zeichen! Bitte Installation überprüfen!" exit fi else kdialog --error "String Basisverzeichnis leer! Bitte Installation überprüfen!" exit fi } #-----Basisverzeichnis und Arbeitsverzeichnisse anlegen----- arbeitsverzeichnisse_erstellen () { basisverzeichnis=`cat ~/.dvb_wiki_script_arbeitsverzeichnis.txt` if [ ! -e ${basisverzeichnis} ] ; then mkdir ${basisverzeichnis} ; fi if [ ! -e ${basisverzeichnis}/dvd_aufnahme ] ; then mkdir ${basisverzeichnis}/dvd_aufnahme ; fi if [ ! -e ${basisverzeichnis}/dvd_tmp ] ; then mkdir ${basisverzeichnis}/dvd_tmp ; fi if [ ! -e ${basisverzeichnis}/dvd_tmp1 ] ; then mkdir ${basisverzeichnis}/dvd_tmp1 ; fi if [ ! -e ${basisverzeichnis}/dvd_struktur ] ; then mkdir ${basisverzeichnis}/dvd_struktur ; fi if [ ! -e ${basisverzeichnis}/dvd_sicherung ] ; then mkdir ${basisverzeichnis}/dvd_sicherung ; fi if [ ! -e ${basisverzeichnis}/dvd_default ] ; then mkdir ${basisverzeichnis}/dvd_default ; fi if [ ! -e ${basisverzeichnis}/dvd_screenshot ] ; then mkdir ${basisverzeichnis}/dvd_screenshot ; fi if [ ! -e ${basisverzeichnis}/dvd_direktdruck ] ; then mkdir ${basisverzeichnis}/dvd_direktdruck ; fi } programmerkennung () { echo "*** Programmerkennung ***" name[0]=mplex name[1]=tcrequant name[2]=dvdauthor name[3]=ProjectX.jar name[4]=normalize name[5]=ffmpeg name[6]=growisofs name[7]=kdialog name[8]=kaffeine for ((i=0 ; i<9 ; i++)) do touch $basisverzeichnis/dvd_default/pfad[$i].txt pfad[i]=`cat $basisverzeichnis/dvd_default/pfad[$i].txt` if [ ! -e ${pfad[i]}/${name[i]} ] then echo "${name[i]}: Datei wird gesucht" gefundene_pfade=`find /bin /home /opt /usr -type f -name ${name[i]} -printf "%h " 2>/dev/null` pfadanzahl=`echo "$gefundene_pfade" | wc -w` case "$pfadanzahl" in 0) kdialog --passivepopup "Das Programm wurde nicht gefunden. Bitte installieren." 3 exit ;; 1) echo "${name[i]}: Datei gefunden" ; echo echo $gefundene_pfade > $basisverzeichnis/dvd_default/pfad[$i].txt ;; *) auswahl_gefundene_pfade=`kdialog --caption "${name[i]}" --combobox "Bitte Pfad auswählen" $gefundene_pfade --default $gefundene_pfade` if [ $? = 0 ] then echo ${auswahl_gefundene_pfade} > $basisverzeichnis/dvd_default/pfad[$i].txt else kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi echo "${name[i]}: Datei gefunden" ; echo ;; esac fi done echo "*** erledigt" ; echo } #-----Variablenzuweisungen zur besseren Lesbarkeit des Scriptes----- variablenzuweisungen () { mplex=${pfad[0]}/${name[0]} tcrequant=${pfad[1]}/${name[1]} dvdauthor=${pfad[2]}/${name[2]} pjx=${pfad[3]}/${name[3]} normalize=${pfad[4]}/${name[4]} ffmpeg=${pfad[5]}/${name[5]} growisofs=${pfad[6]}/${name[6]} kdialog=${pfad[7]}/${name[7]} kaffeine=${pfad[8]}/${name[8]} aufnahme_pfad=${basisverzeichnis}/dvd_aufnahme tmp_pfad=${basisverzeichnis}/dvd_tmp dvdstruktur_pfad=${basisverzeichnis}/dvd_struktur sicherungs_pfad=${basisverzeichnis}/dvd_sicherung screenshot_pfad=$basisverzeichnis/dvd_screenshot default_pfad=${basisverzeichnis}/dvd_default clip_pfad=~/Videoclips_mp2_ac3 direktdruck_pfad=${basisverzeichnis}/dvd_direktdruck } #-----Vorbereiten der X.ini's für ProjectX---- konfiguration () { #---X.ini für Filmbearbeitung--- echo \ "# Application Application.Agreement=1 Application.Language=de # WindowPosition WindowPosition.Main.Height=670 WindowPosition.Main.Width=866 WindowPosition.Main.X=500 WindowPosition.Main.Y=0 # OptionPanel OptionPanel.NormalLog=0 OptionPanel.closeOnEnd=1" > ${default_pfad}/X.ini.film #---Voreinstellungen--- brenngeschwindigkeit=8 #maximale Brenngeschwindigkeit maxgroesse=4600000000 #für DVD5 } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Verwaltung / Löschen°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° loeschen_temporaere_arbeitsordner () { echo "*** Löschen der temporären Arbeitsordner (kann etwas dauern)***" rm -- ${basisverzeichnis}/dvd_tmp/* 2>/dev/null rm -- ${basisverzeichnis}/dvd_tmp1/* 2>/dev/null rm -r -- ${basisverzeichnis}/dvd_struktur/* 2>/dev/null echo "*** erledigt" ; echo } loeschen_dvd_sicherung () { loeschordner="dvd_sicherung" anzeige_was_wird_geloescht wirklich rm -r -- ${basisverzeichnis}/dvd_sicherung/* } loeschen_dvd_screenshot () { loeschordner="dvd_screenshot" anzeige_was_wird_geloescht wirklich rm -- $basisverzeichnis/dvd_screenshot/* } basisverzeichnis_aendern () { kdialog --msgbox "Es wird folgende Datei gelöscht: ~/.dvb_wiki_script_arbeitsverzeichnis.txt Beim nächsten Scriptstart wird sie neu angelegt. Dann muß ein neues Arbeitsverzeichnis gewählt werden " wirklich rm -- ~/.dvb_wiki_script_arbeitsverzeichnis.txt } deinstallation () { kdialog --msgbox "Es werden folgende Dateien gelöscht: ~/.dvb_wiki_script_arbeitsverzeichnis.txt ${basisverzeichnis} DEINSTALLATION DES SCRIPTS Alle Scriptordner werden gelöscht. Das Aufnahmeverzeichnis wird gelöscht. " wirklich rm -- ~/.dvb_wiki_script_arbeitsverzeichnis.txt rm -r -- ${basisverzeichnis} } anzeige_was_wird_geloescht () { cd ~/dvb_wiki_script_basisordner/$loeschordner ordnerinhalt=`ls -d1 * ` kdialog --msgbox "$loeschordner enthält folgende Dateien: $ordnerinhalt" } wirklich () { kdialog --yesno "??? WIRKLICH LÖSCHEN ???" if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Aufgabenmenues°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° hauptmenue () { auswahl_hauptmenue=`kdialog --caption "Hauptmenue" --geometry 200x250+500+400 --radiolist "Bitte einen Aufgabenbereich wählen" \ 1 "VIDEO-DVD" on \ 2 "TS-Stream" off \ 3 "Videoclips" off \ 8 "DVD bedrucken" off \ 9 "Verwaltung" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } untermenue_video_dvd () { brenn_pfad=${dvdstruktur_pfad} was_tun=`kdialog --caption "Video_DVD" --geometry 600x250+400+400 --radiolist "Was also soll genau getan werden?" \ 11 "VIDEO-DVD........Fernsehaufnahme schneiden --> als Video-DVD brennen" on \ 12 "VIDEO-DVD........Fernsehaufnahme schneiden --> DVD-Struktur in Datei sichern" off \ 13 "VIDEO-DVD........Sicherung brennen" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } untermenue_ts () { was_tun=`kdialog --caption "Daten-DVD" --geometry 600x250+400+400 --radiolist "Was also soll genau getan werden?" \ 21 "TS-Stream..........Fernsehaufnahme schneiden --> TS als Daten-DVD brennen" on \ 22 "TS-Stream..........Fernsehaufnahme schneiden --> TS sichern" off \ 23 "TS-Stream..........Sicherung als Daten-DVD brennen" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } untermenue_videoclip () { was_tun=`kdialog --caption "Videoclips" --geometry 600x250+400+400 --radiolist "Was also soll genau getan werden?" \ 31 "Videoclip.............Schneiden und speichern (Ton: MP2 normalisiert + AC3)" on \ 32 "Videoclip............ Schneiden und speichern (Ton: AC3)" off \ 33 "Videoclip............ Schneiden und speichern (Ton: MP2 normalisiert)" off \ 34 "Mpeg1-Clip............Schneiden und speichern (Ton: MP2 normalisiert)" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } untermenue_direktdruck () { was_tun=`kdialog --caption "Direktdruck" --geometry 600x250+400+400 --radiolist "Was also soll genau getan werden?" \ 81 "DVD bedrucken......Text und Bild (Video-DVD)" on \ 82 "DVD bedrucken......nur Text (Daten-DVD)" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } untermenue_verwaltung () { was_tun=`kdialog --caption "Verwaltung" --geometry 600x250+400+400 --radiolist "Was also soll genau getan werden?" \ 91 "Inhalte löschen...... Temporäre Arbeitsordner" on \ 92 "Inhalte löschen...... gesicherte Aufnahmen (dvd_sicherung)" off \ 93 "Inhalte löschen...... Screenshots (dvd_screenshot)" off \ 94 "Basisverzeichnis..... ändern" off \ 95 "Deinstallation" off` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Auswahl der Eingangsdateien°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° filmauswahl_dvd () { brenn_pfad=${dvdstruktur_pfad} filmauswahl } filmauswahl_ts () { brenn_pfad=${tmp_pfad} filmauswahl } filmauswahl_clip () { filmauswahl } filmauswahl () { quelldatei=`kdialog --caption "Filmauswahl" --geometry 600x500-0+0 --getopenfilename ${aufnahme_pfad}` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi } verzeichnisauswahl_dvd () { verzeichnistyp="*_dvd" verzeichnisauswahl } verzeichnisauswahl_ts () { verzeichnistyp="*_ts" verzeichnisauswahl } verzeichnisauswahl () { anzahl_der_sicherungen=`find $sicherungs_pfad/$verzeichnistyp -maxdepth 0 -type d | wc -l` hilfsverzeichnis=`find $sicherungs_pfad/$verzeichnistyp -maxdepth 0 -type d` case $anzahl_der_sicherungen in 0) kdialog --passivepopup "Es gibt nichts passendes zum Brennen. Das Script wird nun beendet." 3 exit ;; 1) kdialog --passivepopup "Folgende Sicherung wird gebrannt: $hilfsverzeichnis" 3 verzeichnis=$hilfsverzeichnis ;; *) verzeichnis=`kdialog --combobox "Welche Datei soll gebrannt werden?" $hilfsverzeichnis` if [ $? != 0 ] then kdialog --passivepopup "Abbruch durch den Benutzer. Das Script wird nun beendet." 3 exit fi ;; esac brenn_pfad=$verzeichnis } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Eingangsverarbeitung°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° #-----Schneiden und Demultiplexen----- pjx_demux_gui () { echo "*** DVB mit PJX ***" java -jar ${pjx} -demux -gui -ini ${default_pfad}/X.ini.film -out ${tmp_pfad} -name film "$quelldatei" 1>/dev/null echo "*** erledigt" ; echo audio_video_summe=`du -bc ${tmp_pfad}/*.ac3 ${tmp_pfad}/*.mp2 ${tmp_pfad}/*.m2v | cut -f1 | tail -n 1` if [ $audio_video_summe -ge $maxgroesse ] then kdialog --error "Der Film ist zu groß für eine einzige DVD" exit fi } #-----Schneiden und Wandeln nach TS----- pjx_ts_gui () { echo "*** TS mit PJX ***" java -jar ${pjx} -tots -gui -split 4300 -ini ${default_pfad}/X.ini.film -out ${tmp_pfad} -name film "$quelldatei" 1>/dev/null echo "*** erledigt" ; echo } mpeg1_input () { echo "*** mpeg1 demultiplexen ( Video copy, Ton --> wav) ***" ${ffmpeg} -i "${quelldatei}" ${tmp_pfad}/film.mp2 -vcodec copy ${tmp_pfad}/film.m1v echo "*** erledigt" ; echo } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Bearbeitung°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° #........mp2-Ton auf einheitliche Lautstärke bringen (-12dBfs).......... normalisieren () { mv ${basisverzeichnis}/dvd_tmp/film.mp2 ${basisverzeichnis}/dvd_tmp1 2>/dev/null rm -- ${basisverzeichnis}/dvd_tmp/*.mp2 2>/dev/null echo "*** Ton decodieren ***" ${ffmpeg} -i ${basisverzeichnis}/dvd_tmp1/film.mp2 ${basisverzeichnis}/dvd_tmp1/film.mp2.wav 2>/dev/null echo "*** Ton normalisieren ***" ${normalize} ${basisverzeichnis}/dvd_tmp1/film.mp2.wav echo "*** Ton encodieren ***" ${ffmpeg} -i ${basisverzeichnis}/dvd_tmp1/film.mp2.wav -acodec mp2 -ab 192k ${tmp_pfad}/film.mp2 2>/dev/null rm -- ${basisverzeichnis}/dvd_tmp1/* echo "*** erledigt" ; echo } ac3_behalten () { if [ ! -e ${basisverzeichnis}/dvd_tmp/*.ac3 ] then kdialog --passivepopup "Der Clip enthält keinen AC3-Ton. Das Script wird nun beendet." 3 exit fi rm -- ${basisverzeichnis}/dvd_tmp/*.mp2 } mp2_behalten () { if [ ! -e ${basisverzeichnis}/dvd_tmp/*.mp2 ] then kdialog --passivepopup "Der Clip enthält keinen mp2-Ton. Das Script wird nun beendet." 3 exit fi rm -- ${basisverzeichnis}/dvd_tmp/*.ac3 } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Multiplexen, Codieren°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° multiplexen () { echo "*** Multiplexen ***" echo "***Bearbeitung läuft - kann etwas dauern" mpeg1_video= mpeg2_video= mp2_audio= ac3_audio= mpeg1_video=`find ${tmp_pfad} | grep "m1v"` mpeg2_video=`find ${tmp_pfad} | grep "m2v"` mp2_audio=`find ${tmp_pfad} | grep "mp2"` ac3_audio=`find ${tmp_pfad} | grep "ac3"` ${mplex} -v1 -f8 -o ${tmp_pfad}/film.mpg ${mpeg1_video} ${mpeg2_video} ${ac3_audio} ${mp2_audio} 2>/dev/null if [ ! -e ${tmp_pfad}/film.mpg ] then echo "*** Fehler *** Error ***Fehler ***" kdialog --error "Es konnte keine Datei multiplext werden!" exit fi echo "*** erledigt" ; echo } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Author'n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° authoring_ohne_menue () { echo "*** Authoring der DVD ***" ${dvdauthor} -o ${dvdstruktur_pfad} -t ${tmp_pfad}/film.mpg #VOBs und "Kapitel"-IFOs ${dvdauthor} -o ${dvdstruktur_pfad} -T #VIDEO_TS.BUP und VIDEO_TS.IFO echo "*** erledigt" ; echo } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Ergebniskontrolle°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° abspielen () { echo "*** Abspielen ***" echo echo "*****************************************" echo "*** Screenshot mit Strg + s ***" echo "*** Weiter mit Strg + q ***" echo "*****************************************" echo $kaffeine -nofork --geometry 600x500-0+0 ${brenn_pfad} echo "*** erledigt" ; echo } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Brennen°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° brennen_video_dvd () { echo "*** Video-DVD brennen ***" kdialog --msgbox "Bitte leere DVD einlegen" ${growisofs} -speed=${brenngeschwindigkeit} -dvd-compat -Z /dev/dvd -dvd-video ${brenn_pfad} kdialog --msgbox "Bitte DVD entnehmen" echo "*** erledigt" ; echo } brennen_ts () { echo "*** Daten-DVD brennen ***" dvdzahl=`find ${brenn_pfad} -type f | wc -l` kdialog --msgbox "Anzahl der notwendigen DVDs: ${dvdzahl}" for((i=1; i<=${dvdzahl}; i++)) do kdialog --msgbox "Bitte DVD Nr.: $i einlegen" ${growisofs} -speed=${brenngeschwindigkeit} -Z /dev/dvd -allow-limited-size -R -J ${brenn_pfad}/"film($((i-1)))"* kdialog --msgbox "Bitte DVD entnehmen" done kdialog --msgbox "fertig" echo "*** erledigt" ; echo } #°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Sichern°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° sichern_dvd_struktur () { echo "*** DVD-Struktur sichern ***" sicherungsordner="$(date +%Y%m%d%H%M%S)_dvd" mkdir ${sicherungs_pfad}/${sicherungsordner} mv ${dvdstruktur_pfad}/* ${sicherungs_pfad}/${sicherungsordner} kdialog --msgbox "Datei gesichert nach "${sicherungs_pfad}/${sicherungsordner} echo "*** erledigt" ; echo } sichern_ts () { echo "*** TS sichern ***" sicherungsordner="$(date +%Y%m%d%H%M%S)_ts" mkdir ${sicherungs_pfad}/${sicherungsordner} mv ${tmp_pfad}/*.ts ${sicherungs_pfad}/${sicherungsordner} kdialog --msgbox "Datei gesichert nach "${sicherungs_pfad}/${sicherungsordner} echo "*** erledigt" ; echo } sichern_clip () { clipspeicher=`kdialog --title "$quelldatei" --getsavefilename ${clip_pfad}` mv ${tmp_pfad}/film.mpg "${clipspeicher}" } #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Hauptprogramm++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #-----Initialisierung----- basisverzeichnis_festlegen string_basisverzeichnis_testen arbeitsverzeichnisse_erstellen programmerkennung variablenzuweisungen konfiguration loeschen_temporaere_arbeitsordner #-----Hauptmenue----- hauptmenue case $auswahl_hauptmenue in 1) untermenue_video_dvd ;; 2) untermenue_ts ;; 3) untermenue_videoclip ;; 8) untermenue_direktdruck ;; 9) untermenue_verwaltung ;; esac #-----untermenue_video_dvd----- case $was_tun in 11) filmauswahl_dvd #Fernsehaufnahme schneiden und als Video-DVD brennen pjx_demux_gui multiplexen authoring_ohne_menue abspielen brennen_video_dvd ;; 12) filmauswahl_dvd #Fernsehaufnahme schneiden und DVD-Struktur in Datei sichern pjx_demux_gui multiplexen authoring_ohne_menue abspielen sichern_dvd_struktur ;; 13) verzeichnisauswahl_dvd #DVD-Struktur brennen abspielen brennen_video_dvd ;; esac #-----untermenue_ts----- case $was_tun in 21) filmauswahl_ts #Fernsehaufnahme schneiden, TS als Daten-DVD brennen pjx_ts_gui brennen_ts ;; 22) filmauswahl_ts #Fernsehaufnahme schneiden, TS und sichern pjx_ts_gui sichern_ts ;; 23) verzeichnisauswahl_ts #gesichertes TS-file als Daten-DVD brennen brennen_ts ;; esac #-----untermenue_videoclip----- case $was_tun in 31) filmauswahl_clip #DVB-Clip: Schneiden und speichern (Ton: MP2 normalisiert + AC3) pjx_demux_gui normalisieren multiplexen sichern_clip ;; 32) filmauswahl_clip #DVB-Clip: Schneiden und speichern (Ton: AC3) pjx_demux_gui ac3_behalten multiplexen sichern_clip ;; 33) filmauswahl_clip #DVB-Clip: Schneiden und speichern (Ton: MP2 normalisiert) pjx_demux_gui mp2_behalten multiplexen sichern_clip ;; 34) filmauswahl #Mpeg1-Clip: Schneiden und speichern (Ton: MP2 normalisiert) mpeg1_input normalisieren multiplexen sichern_clip ;; esac #----untermenue_direktdruck case $was_tun in 81) oodraw -o $direktdruck_pfad/videodvd.odg ;; 82) oodraw -o $direktdruck_pfad/datendvd.odg ;; esac #-----untermenue_verwaltung----- case $was_tun in 91) loeschen_temporaere_arbeitsordner wirklich ;; 92) loeschen_dvd_sicherung ;; 93) loeschen_dvd_screenshot ;; 94) basisverzeichnis_aendern ;; 95) deinstallation ;; esac kdialog --passivepopup "Bearbeitung beendet." 3 exit
Vom DVB zur DVD, ein Wikibuch: Übersicht - Der Weg - Die Helferprogramme - Das Script - Installation - Bedienungsanleitung - Programmieranleitung |