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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.