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]