Wew, ternyata sudah 2 bulan lebih tidak melakukan update apapun di blog ini, kangen juga rasanya . Selain karena kesibukan yang aneh-aneh (saya juga tidak tahu kenapa bisa sibuk) juga karena tidak ada ide tulisan samasekali (alasan klise).
OK, streaming. Streaming, IMHO secara garis besar artinya kita menghantarkan suatu media (http://en.wikipedia.org/wiki/Streaming_media) dari satu host ke host lain dalam suatu jaringan komputer atau internet. Dalam hal ini marilah kita bicara mengenai video-streaming, hilangkan jauh-jauh pikiran mengenai audio streaming seperti yang telah dilakukan banyak stasiun radio. Oh ya, ada banyak protocol mengenai streaming ini, misalnya RTP, RTSP, RTCP. Saya tidak akan menjelaskan mengenai protocol tadi, karena itu pekerjaan engineer layer aplikasi (dengan kata lain, saya tidak mengerti). Sebagai engineer layer 3 dan 4 (halah), saya lebih suka mengerjakan sisi multicasting daripada streaming itu sendiri .
Alkisah, ada 2 orang buruh dititahkan untuk membuat streaming server untuk kemudian di-implementasikan secara multicasting. Sebut saja namanya Bunga dan Tukul Joko. Joko kebetulan pernah mengerjakan audio-streaming untuk salah satu stasiun radio ternama, yaitu Acme FM di Kota Aksi. Bunga, seorang model cantik dan seksi yang tengah naik daun. Mereka berdua kerap dituding sebagai orang ketiga yang menyebabkan keretakan rumah tangga Mayangsari dan Bambang serta tentu saja lubang di ozon makin meluas karenanya. Tentu saja gosip miring ini tidak benar dan lagi konyol, karena Bunga dan Joko bukanlah orang ketiga, melainkan orang ketiga dan orang keempat.
Kembali ke streaming server. Awalnya Joko ingin menggunakan Media Server, varian dari Windows Server 2003, namun terhalang oleh mahalnya lisensi yang harus dibayar. Tanpa berpikir panjang, akhirnya Joko memilih Debian Etch yang baru dirilis. Kenapa tidak Debby Sahertian seperti biasanya? “Biar keren aja”, jelas Joko.
Selagi menginstal Etch, Joko mencari referensi mengenai software streaming yang paling tepat. Kriterianya tak banyak, hanya multi-protocol, multi-codec, multi-user, multi-feature, user-friendly, dan yang paling penting : FREE. Seorang teman, sebut saja namanya Sodikin (siapa pula ini), merekomendasikan Darwin Streaming Server dari Apple.
“Endang Telekom pakai Darwin loh untuk streaming server yang 3G!!”, teriak Sodikin dengan bangga saat Joko meneleponnya pagi itu.
“Tapi Darwin yang free cuma bisa mainin .mov, padahal ozawa-ku semuanya .avi”, kilah Joko.
Teman lain, sebut saja namanya Ani, menyarankan untuk memperbudak VLC. Selain bisa berfungsi sebagai player, VLC juga memenuhi semua kriteria yang diinginkan Joko. “Ini baru enakk!!”, seru Joko kegirangan. Tak pelak lagi, akhirnya Joko menambatkan hati dan perahu cintanya pada VLC.
Instalasi Etch berjalan mulus dan bebas hambatan, namun gratis, tidak seperti jalan tol di Jakarta yang bayar tapi macet. Selanjutnya tinggal memasang VLC
root@codename-GoldenSnitch:~# apt-get install vlc
Reading package lists... Done
Building dependency tree... Done
Suggested packages:
mozilla-plugin-vlc
Recommended packages:
videolan-doc
The following NEW packages will be installed:
vlc
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 0B/1142kB of archives.
After unpacking 3256kB of additional disk space will be used.
Selecting previously deselected package vlc.
(Reading database ... 22133 files and directories currently installed.)
Unpacking vlc (from .../vlc_0.8.6.a.debian-6_i386.deb) ...
Setting up vlc (0.8.6.a.debian-6) ...
Simple. Sekarang konfigurasi. Ada banyak sekali antarmuka yang ditawarkan oleh VLC, antara lain antarmuka grafis dengan dunkungan x-window, antarmuka grafis tanpa x-window, antarmuka terminal (ketik-ketik gitu), serta antarmuka HTTP. Demi kepraktisan, mengingat Joko sering pingsan jika berpikir rumit, maka dia gunakan antarmuka HTTP.
root@codename-GoldenSnitch:~# vlc -I http --http-src /usr/share/vlc/http/ --http-host 10.10.10.10:1313
VLC media player 0.8.6a Janus
starting VLC root wrapper... using UID 1002 (joko)
[00000288] main interface: creating httpd
-I adalah parameter antarmuka (interface) -> HTTP
–http-src adalah parameter source-code antarmuka HTTP
–http-host adalah parameter untuk server HTTP lengkap dengan port-nya
Pesan penulis : Jangan tekan Ctrl-C selama VLC masih digunakan, entah untuk konfigurasi atau dalam proses streaming karena dapat menyebabkan kematian pada VLC Anda
Pada perambah dia ketikkanhttp://10.10.10.10:1313/vlm.html
Lalu muncul gambar form berikut di perambah Joko
Dia ketikkan “anunya” pada form “Name”, memasukkan parameter input lalu klik “Edit” pada form output. Sebagai percobaan, Joko menggunakan protocol UDP dengan IP Multicast 239.255.255.10 dan port 1234 lalu klik “Ok”. Dengan hati-berdebar-debar Joko klik “Send” setelah kembali ke halaman utama VLM. Tab “Broadcast Elements” seketika membesar, karena kaget dia segera klik “Play” (Joko termasuk makhluk latah). “OK, seharusnya Ozawa-ku sudah online”, ujar Joko. Demikian mudahnya konfigurasi via web sehingga semua fitur VLC dapat di-set dengan cepat.
Pesan Penulis : Fitur transcode pada VLC berfungsi untuk melakukan encoding-on-the-fly. Asik loh :>
Dari PC lain yang berada dalam 1 network, Joko menjalankan VLC Media Player versi Windows (Windows bajakan tak masalah). Open file, klik tab “Network”, lalu mengetikkan 239.255.255.10 pada pilihan UDP/RTP Multicast, klik OK.
Gambar Ozawa ber-mozaik (sensor euy) pun muncul. “Eureka! Aku berhasil Ayah”, seru Joko entah pada siapa.
Layaknya anak kecil yang mendapat mainan baru, Joko pun pamer pada temannya dan men-share IP multicast dari streaming server-nya. Alangkah pedihnya hati Joko saat mengetahui bahwa Ozawa-nya tidak bisa dinikmati dari luar jaringan rumahnya
“Ayah….bagaimana ini? Aku ga bisa pamerin mainan ini ke temenku…mereka ga bisa liat…”, tangis Joko.
“Anakku Joko, untuk dapat membawa packet dari ip multicast, kamu butuh IGMP di router”, jelas sang Ayah.
“IGMP? Apa itu Ayah?”
“Ayah sedang buru-buru Joko, coba kamu tanyakan pada Tante Google sana”, Ibu tiba-tiba datang membawakan tas kerja Ayah.
“Ayah berangkat dulu ya” sahut sang Ayah sambil berlalu.