PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche mal Hilfe mit cut und echo oder so :)



oliomen
07.11.13, 09:59
Hallo zusammen,

vielleicht kann jemand von euch mir weiterhelfen.

Ich habe eine Kamera die Videos im MTS Format abspeichert. Diese Files hole ich mir auf Platte mit rsync.

Nun möchte ich alle MTS-Dateien in mkv konvertieren und diese Dateien sollen den Namen des Erstellungsdatums und der Uhrzeit erhalten.

Ich hab aber festgestellt, dass das Modifizert-Datum das richtige ist.

Hier ein Beispiel


stat 00021.MTS
Datei: „00021.MTS“
Größe: 73433088 Blöcke: 143424 EA Block: 4096 reguläre Datei
Gerät: 816h/2070d Inode: 5242992 Verknüpfungen: 1
Zugriff: (0644/-rw-r--r--) Uid: ( 1000/ nutzer) Gid: ( 100/ users)
Zugriff : 2013-11-07 10:35:28.117669430 +0100
Modifiziert: 2013-11-02 16:17:04.000000000 +0100
Geändert : 2013-11-07 10:35:27.102652518 +0100
Geburt : -


ich weiß nicht ob das durch rsync passiert :o

Wenn ich nun den Befehl so absende kommt folgenes

stat 00021.MTS | grep Modifiziert | cut -c 14-29 && echo ".mkv"


2013-11-02 16:17
.mkv

Wie bekomme ich es hin, das das ".mkv" mit in der selben Zeile steht ??


Oder hat jemand eine einfachere Idee ??


Folgendes habe ich so zusammen gebaut :)

IFS=$(echo -en "\n\b"); for i in *.MTS;
do
stat "$i" | grep Modifiziert | cut -c 14-29 && echo ".mkv" >"$i".txt";
ffmpeg -i "$i" -scodec copy -acodec copy -vcodec copy -f matroska <"$i".txt";
done
rm -rf *.txt;
rm -rf *.MTS;


Danke schon einmal für alle Tipps und Ideen

Efraim
07.11.13, 10:25
echo "$(stat 00021.MTS | grep Modifiziert | cut -c 14-29).mkv"

oliomen
07.11.13, 10:30
Die Ausgabe sieht es mal super aus, aber wenn ich diesen Befehl so ins Script packe sieht es so aus


IFS=$(echo -en "\n\b"); for i in *.MTS;
do
echo "$(stat 00021.MTS | grep Modifiziert | cut -c 14-29).mkv">"$i".txt";
ffmpeg -i "$i" -scodec copy -acodec copy -vcodec copy -f matroska <"$i".txt"; done

und erstellt mir ein txt-file mit den Name "00021.MTS.txt;
ffmpeg -i 00021.MTS -scodec copy -acodec copy -vcodec copy -f matroska <00021.MTS.txt"

und dem Inhalt

2013-11-02 16:17.mkv

Was läuft falsch ??

oliomen
07.11.13, 11:33
Also ich habe nun selber ein paar fehler entdeckt


IFS=$(echo -en "\n\b"); for i in *.MTS;
do
echo "$(stat "$i" | grep Modifiziert | cut -c 14-29).mkv">"$i".txt ;
ffmpeg -i "$i" -scodec copy -acodec copy -vcodec copy -f matroska <"$i.txt"; done

so sieht es nun aus, aber ffmpeg meldet nun

"At least one output file must be specified"

Was soll ich tun ???

buzz768
07.11.13, 11:56
Also wenn du wirklich Textdateien verwenden willst, um Zeichenketten (also den gewünschten Namen der mkv-Datei) zwischenzuspeichern, müsstest du den ffmpeg-Befehl so abändern


ffmpeg ... -f matroska "$(<$i.txt)"

Aber normalerweise verwendet man Variablen


NAME="$(stat -c %y "$i"| cut -d'.' -f1).mkv"
ffmpeg ... -f matroska "$NAME"

oliomen
07.11.13, 12:50
Vielen Dank für die Hilfe.

Nun funktioniert alles so wie gedacht.

Tausend Dank nochmals