Re: [opensuse-multimedia -de] Re: [opensuse-multimedia-de] Kleine mkv-Clip s bis zu x MB zusammenfügen

David Haller <[email protected]>
Newsgroups gmane.linux.suse.multimedia.german
Message-ID <[email protected]>
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]
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.