annotate TOOLS/wma2ogg.pl @ 12614:d873777f0acf

Prefer libavcodec for cvid files
author rtognimp
date Sun, 20 Jun 2004 22:11:28 +0000
parents ad68ea76bc05
children 03d3ab9f6400
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12482
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
1 #!/usr/bin/perl
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
2
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
3 #################################
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
4 # wma converter 0.3.6 for Linux #
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
5 #################################
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
6
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
7 # Made by Peter Simon <simon.peter@linuxuser.hu>
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
8 # License: GNU GPL
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
9 #
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
10 # Needed programs:
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
11 #
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
12 # Getopt::Long - Perl Module
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
13 # Mplayer - http://www.mplayerhq.hu
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
14 # BladeEnc - http://bladeenc.mp3.no
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
15 # oggenc - http://www.vorbis.com
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
16 # mp3info - http://www.ibiblio.org/mp3info
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
17
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
18 # changelog:
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
19 # 0.1.0
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
20 # decoding all files to wav without any switches and encoders
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
21 # 0.2.0
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
22 # converting to mp3 or ogg with bitrate, delete options
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
23 # 0.2.1
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
24 # L.A.M.E. support for fanatics
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
25 # Default output filetype: ogg
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
26 # Some error warnings
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
27 # 0.3.0
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
28 # Reading the wma tags out and puting into the mp3 or the ogg tags. (What the MPlayer shows of those.)
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
29 # Default output bitrate: the original bitrate
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
30 # Simlink for the default encode mode (wma2ogg = ogg, wma2mp3 = mp3)
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
31 # 0.3.1
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
32 # Neglecting missing encoders if those are not in use.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
33 # 0.3.2
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
34 # Using mp3info for the mp3 tags
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
35 # 0.3.3
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
36 # Convert more then one files in the start dir.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
37 # 0.3.4-5
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
38 # Some bugfixes.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
39 # 0.3.6
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
40 # Some bugfixes by Diego Biurrun
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
41
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
42 # Why BladeEnc?
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
43 # Eg.: The L.A.M.E.'s code isn't compatible for some hardwer-decoders. Makes noise and clashings.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
44 # I never met this trouble using BladeEnc.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
45 # That's it.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
46
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
47 use Getopt::Long qw(:config pass_through);
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
48
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
49 $ver="0.3.6";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
50
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
51 GetOptions("help|?",\&showhelp, 'a' => \$all, "file|f=s" => \@files,"t=s" => \$mtype, "lame" => \$needlame, "del" => \$delete, "br=i" => \$sbrate);
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
52
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
53 if (@ARGV) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
54 foreach (@ARGV) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
55 error ("Missing parameter after the $_ switch!");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
56 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
57 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
58 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
59
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
60 print "wma2ogg $ver\nPeter Simon <simon.peter\@linuxuser.hu>";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
61
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
62 if (!$all && !@files) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
63 error ("There is no selected file!");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
64 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
65 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
66
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
67 if ($0 =~/wma2mp3/ && !$mtype) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
68 $mtype="mp3";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
69 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
70
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
71 if ($mtype eq "ogg") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
72 $ttype{"ogg"}="oggenc";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
73 needed_prgs (oggenc, "http://www.vorbis.com");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
74 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
75
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
76 if ($needlame && $mtype eq "ogg") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
77 error ("\nYou can not use L.A.M.E. & oggenc together!\n");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
78 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
79 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
80
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
81 if (!$mtype && !$needlame) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
82 $mtype="ogg";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
83 $ttype{"ogg"}="oggenc";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
84 needed_prgs (oggenc, "http://www.vorbis.com");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
85 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
86
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
87
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
88 if (!$needlame && $mtype eq "mp3") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
89 $ttype{"mp3"}="BladeEnc";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
90 needed_prgs (BladeEnc, "http://bladeenc.mp3.no", mp3info, "http://www.ibiblio.org/mp3info");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
91 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
92
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
93 if ($needlame) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
94 $mtype="mp3";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
95 $ttype{"mp3"}="lame";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
96 needed_prgs (lame, "http://lame.sourceforge.net", mp3info, "http://www.ibiblio.org/mp3info");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
97 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
98
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
99 # Main program
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
100 print "\nUsing lame - WARNING - this is not optimal!\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
101 ch_needed ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
102 ch_type ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
103 ch_files ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
104 decode();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
105 # the end.
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
106
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
107
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
108 sub ch_type {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
109 $o_type=$ttype{$mtype};
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
110
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
111 if ($mtype ne "wav") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
112 $def_path=$ENV{PATH};
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
113 @exec_path=split /\:/, $def_path;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
114 foreach $temp_path (@exec_path) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
115 if (-d $temp_path && !$enc_ok) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
116 $enc_ok=`find $temp_path -name $o_type -type f -maxdepth 1 2>/dev/null`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
117 chomp ($enc_ok);
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
118 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
119 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
120 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
121 if ((!$o_type || !$enc_ok) && $mtype ne "wav") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
122 error("Unknown encoder.");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
123 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
124 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
125 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
126
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
127 sub ch_br {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
128 if ($sbrate && ((($sbrate <32 || $sbrate>350) && $mtype eq "mp3") || (($sbrate<64 || $sbrate>500) && $mtype eq "ogg") )) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
129 error("Invalid, missing or redundant bitrate.");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
130 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
131 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
132 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
133
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
134 sub ch_files {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
135 if ($all && @files) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
136 error ("You can't use -a switch and -f together!");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
137 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
138 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
139
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
140 if ($all) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
141 @enc_files=`ls | grep '.wma'\$`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
142 foreach (@enc_files) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
143 chomp $_;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
144 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
145 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
146
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
147 if (@files) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
148 @enc_files=@files;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
149 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
150
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
151 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
152
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
153 sub showhelp {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
154 print "\n\nUsage: wma2ogg [OPTIONS] (-f FILE1 | -f FILE2 ... | -a)\n
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
155 -f, -file filename
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
156 -a converts all wma files in the current directory\n
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
157 OPTIONS:
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
158 -t output filetype (ogg, mp3) [default=ogg]
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
159 -lame I wanna use L.A.M.E. sure enough!
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
160 -br bitrate (kb/s) [default=from the wma]
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
161 -del remove wma file(s) after the transcoding\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
162 print $miss_text;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
163 print "\n$errtext\nExiting program.\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
164 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
165
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
166 sub error {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
167 $errtext=@_[0];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
168 showhelp ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
169
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
170 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
171
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
172 sub missing_prg {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
173 $what=$keys;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
174 $that=$needed{$keys};
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
175 $miss_text.="\nThe needed \'$what\' program is missing, see: $that!";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
176 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
177
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
178 sub ch_needed {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
179
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
180 `perl -e 'use Getopt::Long;' 2>./err`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
181 open (FILE, "<./err");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
182 while ($sor=<FILE>) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
183 if ($sor =~ /Can\'t locate/) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
184 missing_prg ("Getopt::Long", ": your Perl is too old... (uhhh... get a new one!)");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
185 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
186 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
187 `rm ./err`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
188
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
189
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
190 foreach $keys (keys %needed) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
191 `$keys 2>./err`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
192 open (FILE, "<./err");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
193 while ($sor=<FILE>) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
194 if ($sor =~ /$keys\: command not found/) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
195 missing_prg ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
196 $error=1;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
197 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
198 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
199 `rm ./err`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
200 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
201
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
202 close FILE;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
203 if ($error) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
204 showhelp ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
205 exit;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
206 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
207 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
208
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
209 sub get_tags {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
210 my $outfile;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
211 open (FILE, "<./1");
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
212 while ($sor=<FILE>) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
213 $outfile.=$sor;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
214 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
215 close FILE;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
216
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
217 $outfile=~ s/\((\d+\,\d+)\ kbit\)/$1/e;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
218 print "\noriginal bitrate: $1";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
219 $kept_orig_brate=$1;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
220 $kept_orig_brate=~ s/(\d+)/$1/e;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
221 $kept_orig_brate=$1;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
222
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
223 if (!$sbrate) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
224 $brate=$kept_orig_brate;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
225 print " (kept as default)";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
226 } else {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
227 $brate=$sbrate;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
228 print " (new: $brate,0)";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
229 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
230
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
231 ch_br ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
232
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
233 `rm ./1`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
234 my @temp_info=split /Clip\ info\:/, $outfile;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
235 my @temp2_info=split /\n/, @temp_info[1];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
236 my @temp_title=split /\ /, $temp2_info[1],3;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
237 my @temp_author=split /\ /, $temp2_info[2],3;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
238 my @temp_copyright=split /\ /, $temp2_info[3],3;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
239 my @temp_comments=split /\ /, $temp2_info[4],3;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
240 return ($temp_title[2], $temp_author[2], $temp_copyright[2], $temp2_comments[2]);
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
241 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
242
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
243 sub needed_prgs {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
244 %needed=(
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
245 $_[0]=>$_[1],
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
246 $_[2]=>$_[3],
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
247 mplayer=>"http://www.mplayerhq.hu",
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
248 );
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
249 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
250
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
251 sub mp3_info {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
252 if ($title) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
253 $infofile=" -t '$title'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
254 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
255 if ($author) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
256 $infofile.=" -a '$author'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
257 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
258 if ($comments) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
259 $infofile.=" -c '$comments'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
260 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
261
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
262 `mp3info "$p_name.$mtype" $infofile`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
263
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
264 undef ($infofile);
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
265 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
266
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
267
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
268 sub decode {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
269 foreach (@enc_files) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
270 $wav_name=$_;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
271 $wav_name=~ s/(.+)\./$1/e;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
272 $p_name=$1;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
273 $wav_name=$p_name.".wav";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
274 $pwd=`pwd`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
275 chomp $pwd;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
276 $pwd.="/t2";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
277 print "\nConverting $_ to \"wav\" file.\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
278 print "Using MPlayer...\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
279
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
280 `mplayer "$_" -ao pcm -input conf="$pwd" 2>/dev/null >./1`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
281 `mv "audiodump.wav" "$wav_name"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
282
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
283 @tags=get_tags ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
284
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
285 $title=$tags[0];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
286 print "\ntitle: $title";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
287 $author=$tags[1];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
288 print "\nauthor: $author";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
289 $copyright=$tags[2];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
290 print "\ncopyright: $copyright";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
291 $comments=$tags[3];
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
292 print "\ncomments: $comments";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
293
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
294 $comments=$copyright." ".$comments."Transcoded by wma2ogg";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
295
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
296 print "\n\nConverting $wav_name to \"$mtype\" file.";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
297
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
298 print "\nUsing $o_type...";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
299
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
300 if ($mtype eq "ogg") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
301 $br_sw="b";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
302 if ($title) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
303 $infofile=" -t '$title'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
304 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
305 if ($author) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
306 $infofile.=" -a '$author'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
307 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
308 if ($comments) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
309 $infofile.=" -c COMMENT='$comments'";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
310 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
311
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
312 `"$o_type" "-$br_sw" "$brate" "-Q" "./$wav_name" $infofile "-o" "$p_name.$mtype"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
313 `rm -f "$wav_name"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
314 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
315 if ($mtype eq "mp3" && !$needlame) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
316 $br_sw="br";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
317 `"$o_type" "$wav_name" "$p_name.$mtype" "-$br_sw" "$brate" 2>/dev/null >/dev/null`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
318
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
319 mp3_info ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
320
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
321 `rm -f "$wav_name"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
322 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
323 if ($mtype eq "mp3" && $needlame) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
324
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
325 $br_sw="b";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
326 `"$o_type" "-$br_sw" "$brate" "-f" "$wav_name" "$p_name.$mtype" 2>/dev/null >/dev/null`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
327
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
328 mp3_info ();
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
329
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
330 `rm -f "$wav_name"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
331 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
332 if ($delete) {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
333 `rm -f "$_"`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
334 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
335 if (-e "./err") {
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
336 `rm ./err`;
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
337 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
338 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
339 print "\n\nDone.\n\n";
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
340 }
ad68ea76bc05 WMA to Ogg conversion script by Peter Simon <simon.peter@linuxuser.hu>,
diego
parents:
diff changeset
341