source: old/audio_tools.py @ efbc9f9

cremcrem2devdev2diademsfeature/breadcrumbsfeature/ts-0.5feature/ts-0.5.4feature/writecacheformagenericinstru_searchlamlam2mapsv3mergenlivemultiproductionrelease/1.4.4sabiodsecurityserversocialstoragetelecastertestvideo
Last change on this file since efbc9f9 was efbc9f9, checked in by yomguy <>, 7 years ago

Moved tolls and main shell scripts to 'old/' (preparing the web interface)

  • Property mode set to 100644
File size: 6.1 KB
Line 
1#!/usr/bin/python
2# *coding: utf-8*
3#
4# Copyright (c) 2006-2007 Guillaume Pellerin <pellerin@parisson.com>
5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU Library General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
19
20import os, sys, re, string
21import tag_tools
22from audio_tools import *
23
24def encode(enc_type,dir_in,file_in,dir_out,file_out):
25        media_in = dir_in+file_in
26        media_out = dir_out+file_out
27
28        if enc_type == 'flac' :
29                quality = tag_tools.get_opt_value(enc_type+'_quality')
30                os.system('flac -f -V -q '+quality+' -o "'+media_out+'" "'+media_in+'"')
31
32        if enc_type == 'ogg':
33                bitrate = tag_tools.get_opt_value(enc_type+'_bitrate')
34                os.system('oggenc -b '+bitrate+' -o "'+media_out+'" "'+media_in+'"')
35
36        if enc_type == 'mp3':
37                bitrate = tag_tools.get_opt_value(enc_type+'_bitrate')
38                tag='temp'
39                os.system('lame -b '+tag+' --ta "'+tag+'" --tt "'+tag+'" --tl "'+tag+'" --ty '+tag+' --tg "Other" --tc "'+tag+'" "'+media_in+'" "'+media_out+'"')
40
41        if enc_type == 'wav':
42                if iswav16(media_in):
43                        os.system('cp -a "'+media_in+'" "'+media_out+'"')
44                else:
45                        os.system('sox "'+media_in+'" -w -r 44100 -t wav -c2 "'+media_out+'"')
46
47#       if enc_type == 'ogg' and ismp3(media_in):
48#                os.system('mp32ogg --verbose "'+file_in+'" "'+file_out+'"')
49
50def decode(media_in,file_ext):
51        if ismp3(media_in) or file_ext == 'mp3':
52                os.system('mpg123 -q -s "'+media_in+'" -w "'+media_in+'.wav"')
53        if isogg(media_in) or file_ext == 'ogg':
54                os.system('oggdec -o "'+media_in+'.wav" "'+media_in+'"')
55        if isflac(media_in) or file_ext == 'flac':
56                os.system('flac -d "'+media_in+'"')
57        if iswav(media_in) or file_ext == 'wav':
58                os.system('sox "'+media_in+'" -w -r 44100 -t wav -c2 "'+media_in+'.wav"')
59        if isaiff(media_in) or file_ext == 'aiff':
60                os.system('sox "'+media_in+'" -w -r 44100 -t aiff -c2 "'+media_in+'.wav"')
61
62def normalize(media_in):
63        os.system('normalize-audio "'+media_in+'"')
64
65def create_md5_key(dir_in,file_in):
66        media_in = dir_in+file_in
67        os.system('md5sum -b "'+media_in+'" "'+media_in+'.md5"')
68
69def check_md5_key(dir_in,file_in):
70        media_in = dir_in+file_in
71        md5_log = os.popen4('md5sum -c "'+media_in+'" "'+media_in+'.md5"')
72        if 'OK' in md5_log.split(':'):
73                return True
74        else:
75                return False
76
77def compare_md5_key(file_in,file_out):
78        media_in = file_in
79        media_out = file_out
80        if not os.path.exists(media_in):
81                return False
82        else:
83                print 'Checking md5sums...'
84                file_in_in, file_in_out = os.popen4('md5sum -b "'+media_in+'"')
85                file_out_in, file_out_out = os.popen4('md5sum -b "'+media_out+'"')
86                for line in file_in_out.readlines():
87                        line = line.split('*')
88                        line = line[0]
89                        #print line
90                        for file_out_out_line in file_out_out.readlines():
91                                file_out_out_line= file_out_out_line.split('*')
92                                file_out_out_line= file_out_out_line[0]
93                                #print file_out_out_line       
94                                if line == file_out_out_line:
95                                        print 'Files are equal...\n'
96                                        return True
97                                        exit
98                                else:
99                                        print 'Files are different...\n'
100                                        return False
101                                        exit
102               
103def create_par_key(dir_in,file_in):
104        media_in = dir_in+file_in
105        os.system('par2 c -n1 "'+media_in+'"')
106
107def recover_par_key(dir_in):
108        for file in os.listdir(dir_in):
109                media_in = dir_in+file
110                if iswav(media_in):
111                        os.system('par2 r "'+media_in+'"')
112
113def verify_par_key(media_in):
114        os.system('par2 v "'+media_in+'.par2"')
115
116def clean_directory(dir_in,type_list):
117        for enc_type in type_list:
118                if os.path.exists(dir_in+enc_type):
119                        print 'Removing '+dir_in+enc_type
120                        os.system('rm -rf "'+dir_in+enc_type+'"')
121
122def audio_length_sec(file) :
123        file_in, file_out = os.popen4('wavinfo "'+file+'" | grep wavDataSize')
124        for line in file_out.readlines():
125                line_split = line.split(':')
126                value = int(int(line_split[1])/(4*44100))
127                return value
128
129def ext_is_audio(file):
130        file_name_woext, file_ext = tag_tools.filename_split(file)
131        return file_ext == "mp3" or file_ext == "ogg" or file_ext == "flac" or file_ext == "wav" or file_ext == "aif" or file_ext == "aiff" or file_ext == "WAV" or file_ext == "AIFF" or file_ext == "AIF" or file_ext == "MP3" or file_ext == "OGG" or file_ext == "FLAC"
132
133def isaudio(file) :
134        file_in, file_out = os.popen4('file "'+file+'"')
135        for line in file_out.readlines():
136                line_split = line.split(' ')
137                return (iswav16(file) or iswav(file) or ismp3(file) or isogg(file) or isflac(file) or isaiff(file) or isaiff16(file))
138
139def iswav(file) :
140        file_in, file_out = os.popen4('file "'+file+'"')
141        for line in file_out.readlines():
142                line_split = line.split(' ')
143                return ('WAVE' in line_split)
144
145def iswav16(file) :
146        file_in, file_out = os.popen4('file "'+file+'"')
147        for line in file_out.readlines():
148                line_split = line.split(' ')
149                return ('WAVE' in line_split) and ('16' in line_split)
150
151def isaiff(file) :
152        file_in, file_out = os.popen4('file "'+file+'"')
153        for line in file_out.readlines():
154                line_split = line.split(' ')
155                return ('AIFF' in line_split)
156
157def isaiff16(file) :
158        file_in, file_out = os.popen4('file "'+file+'"')
159        for line in file_out.readlines():
160                line_split = line.split(' ')
161                return ('AIFF' in line_split) and ('16' in line_split)
162
163def ismp3(file) :
164        file_in, file_out = os.popen4('file "'+file+'"')
165        for line in file_out.readlines():
166                line_split_space = line.split(' ')
167                line_split_comma = line.split(',')
168                return (('MPEG' in line_split_space and ' layer III' in line_split_comma) or 'MP3' in line_split_space)
169
170def isogg(file) :
171        file_in, file_out = os.popen4('file "'+file+'"')
172        for line in file_out.readlines():
173                line_split = line.split(',')
174                return (' Vorbis audio' in line_split)
175
176def isflac(file) :
177        file_in, file_out = os.popen4('file "'+file+'"')
178        for line in file_out.readlines():
179                line_split = line.split(' ')
180                return ('FLAC' in line_split)
Note: See TracBrowser for help on using the repository browser.