PyMMC: Amazingly Python Example

Dalam suatu diskusi komentar di salah satu situs jejaring sosial, saya pernah mengungkapkan bahwa sangat disayangkan sekali jika setelah perjuangan kita yang berat :p berpindah ke Linux dan kemudian berpikir untuk membangun aplikasi menggunakan Linux tapi ternyata pilihannya jatuh ke bahasa Basic (yang dipopulerkan Microsoft). Apalagi jika tujuannya hanya membuat aplikasi kecil untuk membantu kita melakukan pekerjaan tertentu.

Saya merekomendasikan kepada pembuat thread agar mempelajari bahasa Python bersama dengan library PyGTK. Padahal pada saat itu saya sendiri belum pernah menggunakan, terlebih lagi membuat aplikasi dengan Python.
Dari diskusi tersebut pada akhirnya saya sendiri termotivasi untuk mencoba membuat suatu aplikasi sederhana dengan maksud untuk mendemonstrasikan kemudahan bahasa Python untuk Rapid Application Development di Linux.

PyMMC 0.1


Pembuatan aplikasi ini terinspirasi dari aplikasi Mobile Media Converter buatan MIKSOFT. Sepengetahuan saya aplikasi tersebut dibuat dengan menggunakan RealBASIC.



Aplikasi ini berfungsi sebagai GUI (Frontend) dari FFmpeg. Logikanya sederhana saja, yaitu melakukan konversi dari berbagai macam format video ke format 3gp. Sialnya, ternyata FFmpeg sudah tidak menyertakan dukungan library libfaac secara default karena masalah lisensi. Padahal libfaac ini digunakan sebagai encoder audio untuk format 3gp.


Setelah membaca kebijakan dari penyedia repository ffmpeg yang saya gunakan, sebenarnya mereka tidak menghilangkan total dukungan tersebut, tetapi dibuat opsional, sehingga direkomendasikan agar ffmpeg dibuild ulang dengan menggunakan tag "--with faac".

Anda dapat melakukan kustomisasi format video yang anda inginkan dengan mengedit source PyMMC.py pada bagian berikut:
class PyMMC(object):
__ffmpeg__ = "/usr/bin/ffmpeg"
__parameter__ = " -s qcif -acodec libfaac -vcodec h263 -ac 1 -ar 8000 -r 25 -ab 32 -y "
__src_format__ = ['*.avi', '*.mpg', '*.flv', '*.mov', '*.mp4']
__dst_format__ = ['*.3gp']
ubah variable __src_format__ dan __dst_format__ sesuai dengan yang anda inginkan. Jangan lupa sesuaikan __parameter__ yang dibutuhkan (baca manual FFmpeg untuk informasi ini).

Untuk membangun aplikasi ini saya menggunakan PyDev extension yang dapat berjalan di IDE Eclipse atau Aptana. Untuk membuat interface, saya menggunakan aplikasi Glade 3.


Intinya menurut saya saat ini Python sudah sangat user friendly terlebih lagi dengan adanya library PyGTK untuk kemudahan membuat interface. Saya sendiri hanya perlu waktu dua hari untuk mempelajari Python dari awal hingga membuat aplikasi ini (minimal sampe jalan :p). Artinya jika anda sudah memiliki dasar pemrograman, penyesuaian ke bahasa Python tidak akan sulit.


Saya pribadi sangat takjub dengan kemudahan dan kecepatan pembuatan aplikasi dengan Python. Bahkan kita diberi opsi apakah kita akan membiarkan source code terbuka ataupun dicompile menjadi bytecode. Karena Python sudah menjadi bagian sistem operasi Linux, maka saya lebih suka cara yang pertama untuk pertimbangan kompatibilitas.

Untuk link download dan source code silahkan mampir ke alamat ini: http://pymmc.googlecode.com.

Hati-hati ada bug :D karena proses thread untuk memindahkan output ke widget TextView belum berjalan sempurna. Ada yang bisa memperbaikinya?