โฮมเพจอยู่ที่ 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 )