-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvideopar.pl
executable file
·73 lines (63 loc) · 1.52 KB
/
videopar.pl
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/perl
# videopar.pl
# ffmpegGui
#
# Created by Sebastian on 19.09.10.
# Copyright 2010 Sebastian Rockel. All rights reserved.
# Read and return video parameters
use warnings;
use strict;
use Switch;
if ( $#ARGV+1 < 1) {
print "No argument given\n";
exit 0;
}
#print "Called with args: $ARGV[0]\n";
my $INFILE=shift;
die "Cannot open file $INFILE, $!" if (! -e $INFILE);
my $TMPDIR="/tmp";
my $RAWINFO="rawinfo.txt";
qx(/opt/local/bin/ffmpeg -i "$INFILE" 2&> "$TMPDIR"/"$RAWINFO");
open(RAWINFO, "<", "$TMPDIR/$RAWINFO") or die "Cannot open file: $!";
my @videopar;
my @audiopar;
while (<RAWINFO>) {
chomp($_);
# Video parameters
if ( $_=~ m/Video:(.*)/g ) {
@videopar = split(",", $1);
# Audio parameters
} elsif ( $_=~ m/Audio:(.*)/g ) {
@audiopar = split(",", $1);
}
}
my @vidpar;
# resolution
my @resolution = split(" ", $videopar[2]);
push(@vidpar, $resolution[0]);
# video rate
#my @vrate = split(" ", $videopar[3]);
#push(@vidpar, $vrate[0]);
# fps
#my @fps = split(" ", $videopar[4]);
#push(@vidpar, $fps[0]);
# sample rate
my @srate = split(" ", $audiopar[1]);
push(@vidpar, $srate[0]);
# channels
my @channel = split(" ", $audiopar[2]);
switch($channel[0]) {
case "stereo" { push(@vidpar, "2") }
case "5.1" { push(@vidpar, "6") }
case "6" { push(@vidpar, "6") }
case "1" { push(@vidpar, "1") }
else { push(@vidpar, "-1") }
}
# audio rate
my @arate = split(" ", $audiopar[4]);
push(@vidpar, $arate[0]);
foreach (@vidpar) {
print $_." ";
}
system("rm -f '$TMPDIR/$RAWINFO'");
exit 0;