โฮมเพจอยู่ที่ pymedia - Python module for wav, mp3, ogg, avi, divx, dvd, cdda etc files manipulations.
ดาวน์โหลดแพกเกจได้ที่ pymedia.sourceforge.net
ต้องติดตั้งแพกเกจดังนี้
$ sudo aptitude install libogg-dev libvorbis-dev liblame-dev libfaad2-dev faad
แล้วก็ติดตั้งได้
$ sudo dpkg -i pymedia_1.3.5_i686-py2.4.deb
ทดสอบด้วยการเรียกใช้ python
$ python
Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pymedia >>>
ถ้าไม่ฟ้องอะไรออกมา ก็แสดงว่าผ่านแล้ว
เอกสาร Tutorial ในเพจของ pymedia เอง ค่อนข้างหยาบและมีที่ผิดเยอะ
จะลองรวบรวมเฉพาะโค๊ดมาใช้ดู
ลองเล่นไฟล์ wav
import time, wave, pymedia.audio.sound as sound sFile= "YOUR FILE NAME" f= wave.open( sFile, 'rb' ) sampleRate= f.getframerate() channels= f.getnchannels() format= sound.AFMT_S16_LE snd= sound.Output( sampleRate, channels, format ) s= f.readframes( 300000 ) snd.play( s )
แปลง codec
ตัวอย่างนี้ รันไม่ผ่าน เกิด seg-fault
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
sName='01A.mp3'
f= open( sName, 'rb' )
s= f.read( 8192 )
file_ext = str.split( sName, '.' )[ -1 ].lower()
dm = muxer.Demuxer( file_ext )
frames= dm.parse( s )
print dm.hasHeader(), dm.getInfo()
dec= acodec.Decoder( dm.streams[ 0 ] )
frame= frames[ 0 ]
r= dec.decode( frame[ 1 ] )
print r.sample_rate, r.channels, r.bitrate, r.sample_length
params= {
'id': acodec.getCodecID('wma'),
'bitrate': 16,
'sample_rate': 16000,
'ext': 'wma',
'channels': 1 }
enc= acodec.Encoder( params )