Zum Forum springen
Code für Komandozei...
 
Benachrichtigungen
Alles löschen

Code für Komandozeile mit Formular generieren (ffmpeg) ?

32 Beiträge
4 Benutzer
0 Reactions
1,709 Ansichten
ThePhantom
Beigetreten: 13.03.2007

ich habs im moment so gelöst

ich erstelle für jedes video source file eine cuts.txt mit den jeweiligen clip zeiten

00:00:30 00:00:06 clipA
00:51:33 00:00:07 clipB
00:14:45 00:00:07 clipC

das ist sehr übersichtlich und es sind genau die variablen die sich bzgl. einer videos verändern

dann generiere ich mit folgender zeile eine temporäre datei in der ich die jeweiligen ausführbaren ffmpeg zeilen generiere

awk '{print "ffmpeg -i sourcefilder.xyz/sourcevideo.xyz.mp4 -c copy -ss",$1 " -t",$2 " /volumes/500gb.hd/storagefolder/"$3".level.beginners." NR ".avi"}' < @cuts.xyz.txt > temp.storage.txt

da stehen dann alle konstanten bzgl. der einen video source drinnen, welche ich halt nur in der einen zeile für die unterschiedlichen videos anpassen muss

dann kopiere ich manuell die generierten zeilen aus der temp.staroge.txt raus, in die executeme.sh, welche ich dann so nach und nach mit zeilen anfütter und letztendlich im überverzeichners ausführe indem alle source videos in ihren ordnern liegen

im moment ist das die smootheste lösung, ich werde aber mal heute abend dein script da ausprobieren! weiss im moment garnicht ob ich dieses python installiert habe, mal sehen :)


Antwort
Zitat

wenn du nicht überschreiben willst, dann einfach ">>" statt ">" nehmen, das fügt hinten an


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

so genial wie einfach das geht :) und wieder einen arbeitsschritt vorerst gespart, danke.

das script schau ich mir morgen mal an, heute keie kraft mehr


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

omg ich hab nochmal ein problem und sehe nicht wo der fehler liegt, das ist eigentlich noch viel simpler als das vorher

ich habe einen datei data.txt in der ich dateinamen als eine position untereinander habe, so hier

video.1.mp4
video.2.mp4
video.3.mp4

was ich nun mache möchte ist, eine andere datei mit namen ausgabe.txt zu generieren, indem die ganzen dateien wie folgt aufgeführt sind

file 'video.1.mp4'
file 'video.2.mp4'
file 'video.3.mp4'

dazu habe ich versucht das hier zu verwenden

awk '{print "file '"$1"'"}' < data.txt > ausgabe.txt

das geht schonmal nicht, vermutlich wegen den ' zeichen

dann habe ich versucht die ' mit Y auszutauschen um diese dann wiederum in der ausgabe.txt im editor mit suchen/ersetzen wieder durch ' zu ersetzen :/ allerdings komme ich bei der ziele

awk '{print "file Y"$1"Y"}' < data.txt > ausgabe.txt

zu dem ergebnis

file Yvideo.1.mp4
video.2.mp4
video.3.mp4Y

verstehe es nicht, das ist doch eigentlich so einfach, ich bekomms aber einfach nicht klar :/


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

zu mindestens das letztere mus so funktionieren

kann das sein, das die einzelnen zeilen kein \n haben?1


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

nimm halt den ascii-code

awk '{print "file \x27"$1"\x27"}' < data.txt > ausgabe.txt


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

super danke, meine zeile hat jetzt komischerweise wieder funktioniert, aber mit deinem code bekomm ich auch die striche mit rein, danke ;)


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

hab grade versucht, mal diese befehle in der windows shell umzusetzen, bis ich gemerkt habe das es da ja garkein awk gibt :/

awk '{print "file \x27"$1"\x27"}' < examplename.txt > ausgabe.txt

awk '{print "ffmpeg -i inputfile.mp4 -c:v copy -c:a copy -ss",$1 " -t",$2 " "$3".ausgabename." NR ".mp4"}' < eingabedaten.txt > ausgabebearbeitung.sh

gibt es eine möglichkeit genau das in der windows shell umzusetzen?! auf unix ist das ja recht einfach, aber bei windows scheint es natürlich um einiges anders zu sein :(


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

meine idee .. python installieren
und von da aus weiter machen

bin mir aber nicht mal sicher, obs ffmpg auch fuer win gibt

sorry, kann dir da nichts besser zu sagen


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

habe alles über cygwin gelöst, was mir unter windows eine unix shell oder terminal oder wie man das nennt gibt, klappt eigentlich sehr gut und ich bin zuversichtlich dass es für meinen kollegen mit der windowskiste verständlich ist :)

das einzige problem was ich noch habe ist, dass wenn ich beispielsweise eine ausgabe in eine textdatei mache, ich in der txt dann keine zeilenumbrüche habe und alles hintereinander gefügt wird

beispielsweise bei

ls -1 -t -r > liste.txt

auf meinem unix rechner ist alles schön reihe für reihe, auf der win7 kiste mit cygwin und unixumgebung hab ich keine zeilenumbrüche in der txt

gleiches gilt für

awk '{print "file \x27"$1"\x27"}' < liste.txt > ausgabe.txt

auch keine zeilenumbrüche unter cygwin unix terminal

wie kann ich nen zeilenumbruch erzwingen, so dass je zeile eine kommandozeile bzw. dateiname steht?


Antwort
Zitat
k4pl4n
Beigetreten: 14.04.2008

Das liegt an den Zeilenumbrüchen ( http://de.wikipedia.org/wiki/Zeilenumbruch#ASCII ).
Mit folgendem Befehl kannst du Textdateien in das Windowsformat konvertieren:
unix2dos <filename>


Antwort
Zitat
ThePhantom
Beigetreten: 13.03.2007

vielen dank!


Antwort
Zitat