Re: Re: [opensuse-multimedia-de] Kleine mkv-Clips bis zu x MB zusammenfügen
Al Bogner <suse-multimedia-Wco+c2LKsy1DayIqkcHqbfyE8WyFmGdT@public.gmane.org>
| Newsgroups | gmane.linux.suse.multimedia.german |
|---|---|
| Message-ID | <[email protected]> |
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