Thread Skript für automatisches File-Linking mit Matroska (49 answers)
Opened by Habanero at 2010-02-07 13:33

Gast Habanero
 2010-02-10 18:03
#132564 #132564
Das wäre super. Die aktuelle Version ist diese:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use 5.010;
use strict;
use warnings;

# Dateien auflisten und sortieren
my @files = sort glob '*.mkv';

# Segment-UIDs via mkvinfo auslesen
my @uids = map {
my $file = $_;

open my $mkvinfo, '-|', qw/mkvinfo --ui-language en/, $file
or die "Couldn't run mkvinfo on $file: $!";

my $uid;
while (my $_ = <$mkvinfo>) {
if (/\+ Segment UID:\s+0x(.*)$/) {
$uid = $1;
last;
}
}

close $mkvinfo
or die "Error running mkvinfo on $file: $!";

warn "Couldn't determine UID for $file" unless (defined $uid);

$uid
} @files;

# Ueber alle Dateien iterieren und Felder setzen
for ($[ .. $#files) {
my $file = $files[$_];

my $prev_uid = ($_ - 1 >= $[ ? $uids[$_ - 1] : undef);
my $next_uid = ($_ + 1 <= $#uids ? $uids[$_ + 1] : undef);

my @options;
push @options, '--set', "prev-uid=$prev_uid" if (defined $prev_uid);
push @options, '--set', "next-uid=$next_uid" if (defined $next_uid);

if (@options) {
system('mkvpropedit', $file, qw/--edit info/, @options) == 0
or die "Couldn't run mkvpropedit on $file: status $?"
}
}


Das ist das oben von Murphy erstelle Skript mit ausgetauschter Zeile 17. Du müsstest in selber Verzeichnis wie das Skript min. 2 MKV-Dateien sowie das entpackte MKVToolNix 3.1 liegen haben (ob da wirklich alle Dateien nötig sidn weiß ich nicht, hab einfach alles reinkopiert um Fehler auszuschließen).

View full thread Skript für automatisches File-Linking mit Matroska