ubuntu: ติดตั้ง pymedia

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

ถ้าไม่ฟ้องอะไรออกมา ก็แสดงว่าผ่านแล้ว

ทดลอง 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 )
Topic: