Kleine mkv-Clips bis zu x MB zusammenfügen
Ich bin noch am überlegen, was ich genau will. Dabei kam mir die Idee kleine mkv-Files (x264 + mp3) eines Ordners solange zusammenzufügen bis zB ca. 50MB erreicht sind und dann sollen wieder Clips solange zusammengefasst werden bis 50MB erreicht sind. Die Clips sind so benannt, dass sie sortiert genau den Film ergeben. Die Files sollen automatisch in einem bash-Script abgearbeitet werden. Al -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org
Hallo, Am Son, 21 Feb 2010, Al Bogner schrieb:
Ich bin noch am überlegen, was ich genau will. Dabei kam mir die Idee kleine mkv-Files (x264 + mp3) eines Ordners solange zusammenzufügen bis zB ca. 50MB erreicht sind und dann sollen wieder Clips solange zusammengefasst werden bis 50MB erreicht sind. Die Clips sind so benannt, dass sie sortiert genau den Film ergeben. Die Files sollen automatisch in einem bash-Script abgearbeitet werden.
mkvmerge --split 50m -o "$outfile" *.mkv manpage lesen bildet ;) Das splittet aber auch mitten in nem Schnipsel ... ==== UNGETESTET ==== #!/bin/bash maxsize=$((50*1024*1024)) ## 50MB o=1 outf=ausgabedatei_ohne_Nummer_und_Endung of="$(printf "$outf_%04i.mkv" "$o")" for file; do mkvmerge -o "$of" "$of" "$file" if test $(stat "$of" --printf='%s') -ge $maxsize; then o=$((o+1)); of="$(printf "$outf_%04i.mkv" "$o")" fi done ==== Hoffe mal das klappt so ;) -dnh -- Und wenn man in Aua auf der Au mit Tee-Eiern Eis herstellt, erhält man Teeeiauaaueis - das ich ohne Kontext höchstens im Finnischen gesucht hätte. -- vG -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org
Am Montag, 22. Februar 2010 13:20:11 schrieb David Haller: Hallo David,
Am Son, 21 Feb 2010, Al Bogner schrieb:
Ich bin noch am überlegen, was ich genau will. Dabei kam mir die Idee kleine mkv-Files (x264 + mp3) eines Ordners solange zusammenzufügen bis zB ca. 50MB erreicht sind und dann sollen wieder Clips solange zusammengefasst werden bis 50MB erreicht sind. Die Clips sind so benannt, dass sie sortiert genau den Film ergeben. Die Files sollen automatisch in einem bash-Script abgearbeitet werden.
mkvmerge --split 50m -o "$outfile" *.mkv
manpage lesen bildet ;)
Das ist bekannt, -split will ich aber nicht. Beispiel datei_02.01.mkv 3MB datei_02.02.mkv 20MB datei_02.03.mkv 5MB datei_02.04.mkv 30MB datei_02.01.mkv - datei_02.03.mkv sollen zusammengefügt werden, datei_02.04.mkv nicht mehr, da über 50 MB
Das splittet aber auch mitten in nem Schnipsel ...
Das soll nicht passieren. Ist die Datei größe als die 50MB, dann soll gar nichts passieren.
==== UNGETESTET ==== #!/bin/bash maxsize=$((50*1024*1024)) ## 50MB
So genau ist es gar nicht, ich will einfach nicht Schnipsel mit ein paar MB ansehen und dann das nächste aufrufen. Mein Popcorn hat da noch ein Geheimnis, manchmal spielt er brav alle Files innerhalb eines Ordners ununterbrochen ab, skip zum nächsten File funktioniert und manchmal muss ich jedes File manuell starten. Keine Ahnung, ob Bug oder Feature, vor allem, weil ich die Logik noch nicht kapiert habe. Nach einem Kaltstart ist es so wie ich es will, ein bisschen "skip" gedrückt, neuen Ordner ausgewählt und vorbei ist es mit skip. Daher die Idee, die Files zusammenfassen. Ob ich nun auf 50MB oder 100MB zusammenfasse, steht noch nicht fest.
o=1 outf=ausgabedatei_ohne_Nummer_und_Endung of="$(printf "$outf_%04i.mkv" "$o")"
Über die Benamung habe ich mir noch gar keine Gedanken gemacht, eventuell für obiges Beispiel datei_02.01-03.mkv BTW, der Dateiname hat am Ende immer xx.yy, d.h. bei Bedarf kann das Title.Kapitel sein.
for file; do mkvmerge -o "$of" "$of" "$file" if test $(stat "$of" --printf='%s') -ge $maxsize; then o=$((o+1)); of="$(printf "$outf_%04i.mkv" "$o")" fi done ====
Hoffe mal das klappt so ;)
Al -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org
Hallo, Am Mon, 22 Feb 2010, Al Bogner schrieb:
Am Montag, 22. Februar 2010 13:20:11 schrieb David Haller:
Am Son, 21 Feb 2010, Al Bogner schrieb:
Ich bin noch am überlegen, was ich genau will. Dabei kam mir die Idee kleine mkv-Files (x264 + mp3) eines Ordners solange zusammenzufügen bis zB ca. 50MB erreicht sind und dann sollen wieder Clips solange zusammengefasst werden bis 50MB erreicht sind. Die Clips sind so benannt, dass sie sortiert genau den Film ergeben. Die Files sollen automatisch in einem bash-Script abgearbeitet werden.
mkvmerge --split 50m -o "$outfile" *.mkv
manpage lesen bildet ;)
Das ist bekannt, -split will ich aber nicht.
Beispiel
datei_02.01.mkv 3MB datei_02.02.mkv 20MB datei_02.03.mkv 5MB datei_02.04.mkv 30MB
datei_02.01.mkv - datei_02.03.mkv sollen zusammengefügt werden, datei_02.04.mkv nicht mehr, da über 50 MB
Ah. D.h. man muß vor dem Anhängen der nächsten Datei gucken, wie groß die Datei dann (ungefähr) anschließend werden wird. [..]
==== UNGETESTET ==== #!/bin/bash maxsize=$((50*1024*1024)) ## 50MB
So genau ist es gar nicht,
Dann is es ja praktisch, daß es da als Variable steht ;)
o=1 outf=ausgabedatei_ohne_Nummer_und_Endung of="$(printf "$outf_%04i.mkv" "$o")"
Über die Benamung habe ich mir noch gar keine Gedanken gemacht, eventuell für obiges Beispiel datei_02.01-03.mkv
Ebenfalls leicht anpassbar.
BTW, der Dateiname hat am Ende immer xx.yy, d.h. bei Bedarf kann das Title.Kapitel sein.
for file; do mkvmerge -o "$of" "$of" "$file" if test $(stat "$of" --printf='%s') -ge $maxsize; then o=$((o+1)); of="$(printf "$outf_%04i.mkv" "$o")" fi done ====
for file; do cursize=$(stat "$of" --printf='%s') nextsize=$(stat "$file" --printf='%s') newsize=$(( $cursize + $nextsize )) if test $newsize -ge $maxsize; then o=$((o+1)); of="$(printf "$outf_%04i.mkv" "$o")" fi mkvmerge -o "$of" "$of" "$file" done ==== HTH, -dnh --
Antwort: AW: Antwort: AW: Antwort: AW: Arrgl ... <mit Schaum vor dem Mund nach hinten umkipp> [Martin Wilhelm Leidig in suse-linux] -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org
Am Dienstag, 23. Februar 2010 18:29:53 schrieb David Haller: Hallo David,
Das ist bekannt, -split will ich aber nicht.
Beispiel
datei_02.01.mkv 3MB datei_02.02.mkv 20MB datei_02.03.mkv 5MB datei_02.04.mkv 30MB
datei_02.01.mkv - datei_02.03.mkv sollen zusammengefügt werden, datei_02.04.mkv nicht mehr, da über 50 MB
Ah. D.h. man muß vor dem Anhängen der nächsten Datei gucken, wie groß die Datei dann (ungefähr) anschließend werden wird.
for file; do cursize=$(stat "$of" --printf='%s') nextsize=$(stat "$file" --printf='%s') newsize=$(( $cursize + $nextsize )) if test $newsize -ge $maxsize; then o=$((o+1)); of="$(printf "$outf_%04i.mkv" "$o")" fi mkvmerge -o "$of" "$of" "$file" done
Ich werde einige Zeit brauchen bis ich das ausprobieren kann. Ich habe gerade mit dem Entwickler von vid.stab auf der Transcode-ML Kontakt und muss da testen. Das hat viel höhere Priorität zur Zeit. Fast typisch für mich, ich habe gleich am Anfang 2 Beispiele gefunden, wo der Filter genau das Gegenteil bewirkt, nämlich das Bild unruhiger macht. Das kann durchaus an den Optionen liegen, die ich verwendet habe. Ich bin schon gespannt, was er antwortet. Al -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org
participants (2)
-
Al Bogner
-
David Haller