Kamis, 17 April 2014

Setelah sekian lama saya tidak menulis lagi karena kesibukan saya, akhirnya saya dapat menulis lagi untuk tema yang baru.

Mungkin semua sudah tahu mengenai video streaming, jadi rasanya tidak perlu saya jelaskan lagi. Biasanya video streaming menggunakan protokol transport UDP (User Datagram Protocol) atau TCP (Transmission Control Protocol). Namun kali ini saya mencoba menggunakan salah satu protocol transport yang akhir-akhir ini banyak dijadikan objek penelitian, tugas akhir (TA) ataupun Thesis yaitu SCTP (Stream Control Transmission Protocol).

Kali ini, saya tidak akan membahas mengenai SCTP, bisa kalian lakukan sendiri, namun saya akan menjelaskan bagaimana membuat streaming server yang mampu menggunakan protocol SCTP sebagai protocol transportnya.
Hardware dan Software yang dibutuhkan ialah
  • Komputer atau laptop sebagai server dan client. 
  • OS Linux Ubuntu (tidak harus ubuntu, yang penting linux)
  • Feng, sebagai Streaming Server
  • Libnemesi, sebagai RTP/RTSP client-library
  • MPlayer, sebagai pemutar video di client.
Topologinya mungkin seperti ini saja, biar gak bingung. yang penting sistemnya server-client. Bisa juga dilakukan sendiri dalam 1 komputer untuk mengetahui server dapat melakukan fungsinya dengan baik. Untuk kali ini, komputer saya bertindak sebagai server dan client.

Lakukan instalasi Linux sebagai OS-nya, saya anjurkan mulai Gentoo sebagai OS-nya karena penelitian feng dilakukan di linux ini oleh pembuatnya. Untuk kali ini saya menggunakan Ubuntu 10.10.  Instal dependencies yang dibutuhkan untuk Feng, yaitu Netembryo, glib version 2, ffmpeg version 5, libev.

Setelah diinstall, supaya feng dapat melakukan streaming menggunakan SCTP, aturlah pada main configuration (/etc/feng.conf)

#Configuration for SCTP
$SERVER["socket"] == "localhost:5554" { 
   sctp.protocol = "enable" 
   sctp.max_streams = 16 


server.port = 554 
server.username = "feng" 
server.groupname = "feng" 
server.max-connections = 100 
server.document-root = var.basedir + "/avroot" 
server.errorlog = var.logdir + "/error.log"

Dari konfigurasi diatas, dapat dilihat bahwa
  • untuk port SCTP = 5554, sedangkan port TCP = 554
  • untuk document-root atau bisa dikatakan directory tempat menyimpan file video ada pada /var/avroot/feng/
  • maksimum connection ke server 100
Kita beralih ke sisi Client, hal yang perlu diinstall tidak terlalu banyak, namun memiliki dependencies yang cukup banyak untuk MPlayer. Install libnemesi dengan dependencies netembryo. Install MPlayer dengan semua dependecies yang dibutuhkan.

Ok, jika semua sudah terpenuhi,  kita jalanin servernya.

Pada gambar diatas, feng menunjukkan bahwa port untuk TCP adalah 554 dan SCTP adalah 5554, sesuai dengan config yang kita lakukan tadi


Diatas kita memutar menggunakan TCP command yang digunakan : 
mplayer -rtsp-stream-over-tcp rtsp://localhost/yugioh-gx-01.avi 

Untuk memastikan ini TCP kita lihat dumpnya menggunakan sudo tcpdump -ni lo tcp

kalau mendapatkan hasil seperti gambar diatas, berarti ini streaming menggunakan protocol TCP.

Untuk SCTP, kita coba command seperti ini:
mplayer -rtsp-stream-over-sctp rtsp://localhost:5554/yugioh-gx-01.avi

Untuk memastikan ini SCTP kita lihat dumpnya menggunakan sudo tcpdump -ni lo sctp

Ok, sampai disini dulu penjelasannya, untuk post berikutnya akan membahas bagaimana menggabungkan live streaming ke server ini.

Selamat Belajar!!!

0 komentar:

Posting Komentar