HD-Aufnahmen in SD umwandeln
-
-
Und wie wähle ich das zu konvertierende Verzeichnis dabei aus?
Andy
Du wählst eine Aufnahme aus, die Du konvertieren möchtest.
In der reccmds.conf legst Du Dir einen Eintrag an:
-Konvertiere zu SD : /usr/bin/covert-to-sd-skript.sh
Und wenn Du das dann startest, wird eine SD Aufnahme erzeugt, die Du dann mit Burn brennen kannst. Oder suchst Du nach was ganz anderem?
-
Ah jetzt - hieße also, dass die Aufnahme als $1 ans Script übergeben wird?
Andy
-
Ich hab jetzt noch mal einen "Hardcore-Test" gemacht, indem ich eine HD-Aufzeichnung die aus 6 Teilen besteht (a 2 GB) zuerst mit cat zusammengefügt habe und danach mit ffmpeg nach SD gewandelt habe.
Ergebnis: alles OK, auch am Ende der Aufnahme keine Probleme mit A/V-Synchonität. -
Da ich die Vorarbeit ja schon geleistet habe - hätte jemand Lust, den ganzen Prozess (s.o.) in ein kleines Skript zu packen? Ich denke ich bin nicht der einzige, der diese Funktionalität gebrauchen könnte...
Gruß maz
-
Ich sehe mir das an, weil ich das auch brauche. Weiß nur nicht wann ich dazu kommen werde.
Andy
-
Super, sag bescheid wenn ich helfen kann.
-
Ich hab das ganze mal Quick and Dirty realisiert - es gibt an easyVDR Beta 1 genug zu tun.
Im Script sind keine Abfragen oder ähnliches - Benutzung auf eigene Gefahr.
Das ganze getestet mit easyVDR - wobei ich davon ausgehe, dass sich da nicht groß was ändern dürfte.
Das anhängende Script nach /usr/share/vdr/ kopieren und ausführbar machen
In Datei /var/lib/vdr/reccmds.conf folgendes einfügen
Konvertiere zu SD : /usr/share/vdr/convert2sd.sh
Dann VDR neu starten, Aufnahme wählen, Befehle (rot) - Konvertiere zu SD
Nach einiger Zeit ist das ganze fertig und im Aufnahmeverzeichnis findet man einen identischen Ordner mit der Endung _SD
Andy
ToDo: Fehlerabfragen, Info-Datei in SD-Ordner kopieren
-
Super, danke! Ich werde es am (langen) Wochenende mal testen.
Man könnte auch noch ein paar Statusmeldungen per svdrpsend einbauen.Gruß maz
P.S.: Das wäre eine Funktion die man dem Autor des burn-Plugins mal vorschlagen sollte.
-
Das bringt nichts, weil das Fenster im OSD so lange stehen bleibt, bis die Konvertierung fertig ist.
-
Oh - ist das nicht anders zu lösen? Lässt sich das OSD nicht schließen, während das Skript weiter abgearbeitet wird?
Bei den traco-Skripten ist das - wenn ich mich richtig erinnere - auch möglich, dass die Konvertierung im Hintergrund arbeitet.EDIT: Vielleicht muss man an den Befehl noch ein &-Zeichen anhängen, oder es geht mittels "at now" im Skript...
-
Wäre es nicht besser alles in Klammern zu Packen und im Hintergrund abzusetzen?
Wozu sind die Sleeps?
Witzig, ich mache genau das Gegenteil. In einem after recoding hook remuxe ich alles nach mp4. Die SD-Aufnahmen transcode ich dabei nach h264 und sortiere die AC3-Ton-Spur nach oben.
Damit kommt mein plex media server am Besten klar.Grüße
Gerald -
Natürlich kann man das im Hintergrund arbeiten lassen.
Am einfachsten aber doch dann beim Aufruf durch /usr/share/vdr/convert2sd &
Die sleeps waren nur Sicherheit, weil es zweimal passierte, dass ffmpeg die video_hd.ts noch nicht freigegeben hatte und der rm nicht ausgeführt wurde.
Warum, weiß ich nicht - hab das halt an einer sehr langsamen CPU getestet - vielleicht deshalb
Andy
-
Moin,
nur so zur Info: wenn man per
svdrpsend MESG "Blafasel"
eine nachricht auf dem OSD ausgibt, dann verschwindet die nach der eingestellten Zeit auch wieder von selbst...
Ciao Louis
-
Ja klar - nur aktuell bleibt das OSD im Menü des Konvertierens stehen und lässt sich nicht beenden - die Message per svdrpsend kommt dann wenn alles konvertiert ist
Der Aufruf des Scripts mit convert2sd & bringt keine Besserung
Andy
-
Der Aufruf des Scripts mit convert2sd & bringt keine Besserung
Dann vielleicht doch lieber meinen Vorschlag versuchenGerald
-
Dann vielleicht doch lieber meinen Vorschlag versuchenHmm - Bash und ich sind immer noch Kriegsfuss...
Wie soll das dann so aussehen?
Bash
Alles anzeigen#!/bin/bash # Script zum Konvertieren von HD-Aufnahmen nach SD # V 0.0.1 # by Sinai from easyVDR ( VAR=$1 REC_DIR2=${VAR##*/} # Datum und Uhrzeit des Ordners .rec extrahieren REC_DIR_ORG=${VAR%/*}/$REC_DIR2 REC_DIR1=${VAR%/*}_SD # Pfad zur Aufnahme extrahieren und _SD anhängen mkdir $REC_DIR1 # SD-Verzeichnis generieren cd $REC_DIR1 mkdir $REC_DIR2 # .rec-Verzeichnis generieren cat $REC_DIR_ORG/*.ts > $REC_DIR1/$REC_DIR2/video_hd.ts # bestehende ts-Dateien zusammenführen cd $REC_DIR1/$REC_DIR2/ ffmpeg -i video_hd.ts -y -threads 2 -ar 48000 -ac 2 -b 3500k -r 25 -maxrate 8000k -bufsize 1000k -vcodec mpeg2video -s 720x576 -acodec mp2 -ab 192k -async 2 -f mpegts 00001.ts #die Konvertierung sleep 2 rm video_hd.ts # HD-Aufnahme entfernen sleep 2 sudo touch /video0/.update # Aufnahmeverzeichnis updaten ) &
Sorry für die doofe Frage - ich weiß es einfach nicht...
Andy
-
Der Aufruf des Scripts mit convert2sd & bringt keine Besserung
Der VDR wartet soweit ich weiß auch auf das Beenden eines geforkten Prozesses.
Um mal das Beispiel aus dem VDR-Wiki mit at now aufzugreifen ( http://www.vdr-wiki.de/wiki/index.php/Reccmds.conf ) - das könnte dann in etwa so aussehen (ich kann es gerade nicht ausprobieren):Bash
Alles anzeigen#!/bin/bash # Script zum Konvertieren von HD-Aufnahmen nach SD # V 0.0.1 # by Sinai from easyVDR at now <<EOF VAR=$1 REC_DIR2=${VAR##*/} # Datum und Uhrzeit des Ordners .rec extrahieren REC_DIR_ORG=${VAR%/*}/$REC_DIR2 REC_DIR1=${VAR%/*}_SD # Pfad zur Aufnahme extrahieren und _SD anhängen mkdir $REC_DIR1 # SD-Verzeichnis generieren cd $REC_DIR1 mkdir $REC_DIR2 # .rec-Verzeichnis generieren cat $REC_DIR_ORG/*.ts > $REC_DIR1/$REC_DIR2/video_hd.ts # bestehende ts-Dateien zusammenführen cd $REC_DIR1/$REC_DIR2/ ffmpeg -i video_hd.ts -y -threads 2 -ar 48000 -ac 2 -b 3500k -r 25 -maxrate 8000k -bufsize 1000k -vcodec mpeg2video -s 720x576 -acodec mp2 -ab 192k -async 2 -f mpegts 00001.ts #die Konvertierung sleep 2 rm video_hd.ts # HD-Aufnahme entfernen sleep 2 svdrpsend UPDR svdrpsend MESG "Konvertierung von $1 wurde abgeschlossen" EOF
Edit: Ich würde außerdem kein sudo in so einem Skript verwenden (wozu braucht man das überhaupt, für den VDR sollte doch das Video-Verzeichnis immer beschreibbar sein) , da die Passwortabfrage niemals interaktiv ist und man sich den Eintrag in der /etc/sudoers für das Anfassen der .update eigentlich auch direkt sparen kann, weil man die gleiche Funktion auch über SVDRP auslösen kann -
Super sache, bin schon gespannt ob das so funktioniert (bin gerade nicht zu Hause...)
Ich würde nur noch vor dem ffmpeg-Befehl einfügen:
Und ffmpeg sollte noch in lifeguard.conf stehen, damit der VDR während der Konvertierung keinen shutdown auslöst. Kann man auch eine Fehlermeldung per svrdp ausgeben lassen, falls die Konvertierung fehlschlägt?
@seahawk: Ist ffmpeg standardmäßig bei yavdr enthalten? Dann könnte man das Skript ggf. standardmäßig in yavdr integrieren, ist sicher für viele User nützlich.Gruß maz
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!