Perancangan dan Implementasi
Server Streaming
Menggunakan Protokol
TCP/IP
dan Protokol
RTMP
Artikel Ilmiah
Calvin Josep Reressy (672010125) Indrastanti R. Widiasari., M.T.
Radius Tanone, S.kom., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi
Server Streaming
Menggunakan Protokol
TCP/IP
dan Protokol
RTMP
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Calvin Josep Reressy (672010125) Indrastanti R. Widiasari., M.T.
Radius Tanone, S.kom., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi
Server Streaming
Menggunakan Protokol
TCP/IP
dan Protokol
RTMP
1)
Calvin Josep Reressy, 2)Indrastanti R. Widiasari, 2)Radius Tanone
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
E-mail : 1) 672010125@student.uksw.edu, 2) indrastanti@staff.uksw.edu, 3) radius.tanone@staff.uksw.edu
Abstract
Live streaming processes are necessary today in order to connect the user's interaction despite not being in the same place. Then made video streaming to solve those problems. In the manufacture of video streaming requires a server, development server that must be made and assessed from several aspects, such as cost, speed of data transfer, and other matters. One technology that can be used to address the problem of making the server that is streaming server makers to use Linux with TCP / IP and RTMP protocol as a liaison network. The results of this study in the form of a streaming server using TCP / IP protocol and RTMP protocol that can work effectively in the process stream.
Keywords: Server streaming, TCP/IP, RTMP
Abstrak
Proses streaming secara live diperlukan sekarang ini agar dapat menghubungkan pengguna itu melakukan interaksi meski tidak berada di tempat yang sama. Maka dibuat video streaming untuk memecahkan masalah tersebut. Dalam pembuatan video streaming
memerlukan sebuah server, pembangunan sebuah server itu harus dibuat dan dinilai dari beberapa aspek, misalnya biaya, kecepatan transfer data, dan hal-hal lainya. Salah satu teknologi yang dapat digunakan untuk menjawab masalah pembuatan server tersebut yakni pembuat serverstreaming dengan menggunakan linux dengan protokol TCP/IP dan protokol RTMP sebagai penghubung jaringannya. Hasil dari penelitian ini berupa sebuah server streaming dengan menggunakan protokol TCP/IP dan protokol RTMP yang dapat bekerja secara efektif dalam melakukan proses streaming.
Kata Kunci : server streaming, TCP/IP,RTMP
1)
Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya Wacana Salatiga.
2)
Staff Pengajar Fakultas Teknologi Infomasi, Universitas Kristen Satya Wacana Salatiga.
3)
1. Pendahuluan
Berdasarkan wawancara dengan beberapa mahasiswa dan dosen, sekarang ini FTI UKSW banyak menyelenggarakan kegiatan-kegiatan seminar dan acara-acara fakultas. Namun kesibukan dosen dan mahasiswa merupakan salah satu kendala utama untuk dapat menghadiri kegiatan-kegiatan tersebut. Kemajuan teknologi smartphone dan provider juga menyediakan layanan internet untuk memudahkan setiap penggunanya untuk mendapatkan informasi yang diinginkan dimana dan kapan saja. Salah satu solusi untuk mendapatkan informasi mengenai kegiatan-kegiatan yang dilakukan FTI UKSW, yaitu dengan menggunakan android streaming. Penelitian android streaming ini sudah pernah dilakukan di FTI UKSW. Namun setelah ditinjau masih terdapat kekurangan pada penelitian sebelumnya itu, maka dibuatlah penelitian ini untuk menyempurnakan dari penelitian sebelumnya. Penelitian terdahulu menggunakan Wowza Media Engine yang merupakan media streaming video dan audio yang prabayar maka dari itu dibuat server menggunakan linux untuk dapat digunakan secara gratis dan tidak perlu melakukan upgrade untuk menggunakannya [1]. Untuk menjawab kekurangan tersebut maka dirancang dan diimplemntasikan server streaming yang baru. Server bekerja menggunakan Real Time Messaging Protocol (RTMP) dan Transmisson Control Protocol/Internet Protocol (TCP/IP). Protokol TCP/IP digunakan sebagai penghubung agar smartphone dan server saling memberikan respon sebelum melakukan perekaman video. Penelitian ini juga menggunakan protokol RTMP agar dapat menghubungkan server streaming dengan pemutar JW player pada website.
Berdasarkan latar belakang masalah, maka dilakukan penelitian perancancangan dan implementasi server streaming menggunakan protokol TCP/IP dan protokol RTMP agar dapat melakukan streaming secara langsung. Adapun batasan masalah yaitu server yang dibangun merupakan server yang akan melengkapi penelitian sebelumnya. Server ini dibangun dengan sistem operasi linux dan memanfaatkan aplikasi android ArutCam untuk mengambil gambar dari smartphone.
2. Tinjaun Pustaka
Penelitian juga dilakukan oleh Arfiandy Arsam membahas pembangunan aplikasi video streaming berbasis android di stv Bandung dengan teknologi broadcast hingga terbentuk gabungan teknologi streaming dengan teknologi mobile berbasis android. Dalam pembangunan aplikasi video streaming untuk mengetahui kelebihan dan kekuranganya dengan pengujian dengan parameter Quality of Service (Qos), seperti berapa lama delay dan kualitas yang dihasilkan dari aplikasi video streaming ini [2].
Ubuntu merupakan sistem operasi berbasis GNU/Linux yang
dikembangkan oleh komunitas sehingga menjadi salah satu Distro Linux yang sempurna untuk perangkat laptop, desktop dan server. Ubuntu dapat digunakan untuk disemua lingkungan baik perkantoran, rumahan maupun pendidikan. Aplikasi yang disediakan sangat lengkap, mulai dari pengolah kata, aplikasi email, multimedia maupun aplikasi internet [3].
Real Time Messaging Protocol (RTMP) adalah aplikasi - lapisan proprietary protokol yang dikembangkan oleh Adobe Systems[4]. Real Time Messaging Protocol (RTMP) juga menyediakan dua arah yang pesan layanannya multiplex seperti TCP [RFC0793], yang dimaksudkan untuk membawa aliran paralel video, audio, dan pesan data, dengan informasi waktu yang terkait [5]. Protokol RTMP memiliki beberapa variasi; protokol "plain" yang bekerja di atas dan menggunakan TCP nomor port 1935 secara default. RTMPS yang RTMP melalui koneksi TLS / SSL, RTMPE yang RTMP dienkripsi menggunakan mekanisme keamanan Adobe sendiri [5].
Transmisson Control Protocol/Internet Protocol (TCP/IP) adalah gabungan dari Transmission Control Protocol (TCP) dan Internet Protocol (IP) sebagai sekelompok protokol yang mengatur komunikasi data dalam proses tukar menukar data dari satu komputer ke komputer yang lain di dalam jaringan internet yang dapat memastikan pengiriman data sampai pada alamat yang dituju[6].
ArutCam adalah sebuah aplikasi android yang dapat diunduh pada playstore untuk melakukan live streaming dari smarthone atau tablet[7].
3. Metode Penelitian
Gambar 1 Tahapan Penelitian [9]
Tahapan pertama yang dilakukan dalam penelitian ini adalah prepare dan plan. Pada tahapan ini membutuhkan berberapa hardware dan software serta melakukan proses identifikasi server streaming dapat menangkap proses perekaman video dari smartphone android dan dapat meneruskan ke halaman webpage.
Gambar 2 Design Sistem
Tahap selanjutnya merupakan design. Tahap ini adalah tahap mendesain sebuah sistem yang akan dibuat. Pada gambar 2 menjelaskan proses perekaman video menggunakan kamera smartphone akan merekam video yang tengah berlangsung, video akan dikirimkan ke server menggunakan jalur TCP, hal Ini dipilih untuk mencegah adanya kesalahan pengiriman data yang tengah berlangsung. Video yang diterima di sisi server akan diproses oleh ffmpeg dan dikirimkan kembali dengan protocol RTMP agar data yang diterima dapat ditampilkan disisi server maupun disisi client yang akan menampilkan layanan live stream. Layanan yang digunakan untuk dapat menampilkan live stream di sisi client menggunakan RTMP dimana data yang diterima akan diproses oleh JW
Smartphone
Server
Web
Player yang berfungsi sebagai encoder supaya gambar dapat ditampilkan di sisi web base.
Tahap selanjutnya adalah tahap implement, implement merupakan tahap implementasi perancangan sistem kedalam hasil nyata. Pada tahapan ini dilakukan penginstalan aplikasi ArutCam pada smartphone android, pembuat server streaming pada linux ubuntu 14.04 dan pemasangan JW Player pada web.
Tahapan Operate merupakan tahap uji coba sistem, tahap pertama ada server menjalakan service setelah itu mengkoneksikan smartphone android dengan server streaming dan webpage dalam suatu jaringan, setelah semuanya terhubung maka akan dimulai proses streaming. Proses streaming dimulai dengan perekaman video dengan menggunakan aplikasi ArutCam setelah itu akan ditangkap oleh server dan akan diteruskan ke halaman webpage pengguna. Untuk tahapan operate akan dibahas lebih lanjut pada bab 4 laporan ini.
Penelitian ini tahap optimize tidak akan dibahas lebih lanjut karena selama penelitian dilakukan belum ditemukan permasalahan yang mengganggu kinerja sistem dan apabila ada kelemahan dalam sistem akan dijadikan saran pengembangan dimasa mendatang.
4. Hasil dan Pembahasan
4.1 Pengoperasian Sistem
Berdasarkan perancangan, berikut hasil dari sistem yang telah dibuat. Hal pertama yang harus dilakukan pada tahap ini adalah melakukan pengecekan service nginx apakah sudah berjalan atau belum. Setelah itu lakukan pengecekan lagi pada service nginx, jika terminal memberikan respon maka service telah berjalan.
Gambar 3 Menjalankan service nginx
Gambar 4 Menjalankan LAMPP
server agar client dapat mengirimkan video. Tahap berikutnya dengan memasukan perintah ffplay, setelah itu server siap menerima streaming dari client.
Gambar 5 Tampilan ArutCam
ArutCam digunakan untuk membantu melakukan perekaman video streaming. ArutCam adalah aplikasi android yang bisa diunduh pada Play Store. Sebelum melakukan proses streaming, harus dipastikan terlebih dahulu bahwa server dan client telah berkoneksi, untuk melakukan koneksi dapat dilakukan dengan menyamakan IP dan nama streaming dari ArutCam dengan server. Setelah semua sudah sesuai maka bisa melakukan proses streaming dengan menekan tombol publish untuk memulai pengiriman video streaming ke server. Tampilan publish dapat dilihat pada gambar 6.
Gambar 6 Tampilan Publish
Gambar 7 Tampilan website live streaming
4.2 Pengujian Performansi
Pengukuran performansi merupakan salah satu upaya untuk mengetahui efisiensi dan efektifitas kerja server streaming. Untuk mengetahui performa server streaming yang dibangun, maka dilakukanlah pengukuran kinerja secara objektif dengan menggunakan QoS. Adapun parameter yang digunakan untuk pengukuran meliputi delay, jitter, throughput dan packet loss. Adapun pengambilan data sampelnya yaitu :
1. Waktu streaming dilakukan selama 120 detik dan 300 detik. 2. Perangkat lunak yang digunakan adalah wireshark.
3. Bitrate yang digunakan dalam pengujian adalah 128, 256, 512, 1024 dan 2048.
4. Pengujian video streaming menggunakan resolusi 320 X 240. 5. Pengukuran dilakukan pada sisi server.
4.2.1 Pengujian Delay
Delay adalah waktu tunda yang terjadi saat pengiriman paket dari satu titik ke titik lain sebagai tujuannya. Rumus untuk menghitung delay adalah :
Rata – rata delay = Total Delay / Total paket yang diterima
Tabel 1 kategori besar delay [11]
a. Pengujian delay pada bitrate 128 K
b. Pengujian delay pada bitrate 256 K selama 120 detik
Rata – rata delay selama 120 detik = Total delay / total paket yang
c. Pengujian delay pada bitrate 512 K selama 120 detik
Rata – rata delay selama 120 detik = Total delay / total paket yang
d. Pengujian delay pada bitrate 1024 K selama 120 detik
Rata – rata delay selama 120 detik = Total delay / total paket yang
Rata – rata delay selama 120 detik = Total delay / total paket yang
Bitrate 128 Bitrate 256 Bitrate 512 Bitrate 1024
Bitrate 2048 120 Detik 23,14 20,7 26,59 22,33 24,78
300 Detik 23,03 19,18 20,7 15,11 18,19
Pada pengujian yang dilakukan terllihat bahwa nilai delay yang terjadi dalam proses pengiriman streaming gambar memperoleh nilai yang bagus. Pada streaming selama 120 detik, nilai bitrate terbaik diperoleh ketika menggunakan kualitas 256K namun pada uji dalam jangka waktu 5 menit justru nilai delay terbaik menggunakan kualitas 1024K.
4.2.2 Pengujian Throughput
Throughput merupakan bandwidth aktual saat itu juga dimana kita sedang melakukan koneksi. Throughput dapat dihitung dengan menggunakan rumus jumlah data yang dikirim dibagi dengan waktu pengiriman data.
Berdasarkan rumus diatas maka perhitungan throughput untuk masing – masing koneksi live streaming yang dilakukan adalah
a. Pengujian throughput pada bitrate 128
120 detik = Jumlah data / waktu pengiriman data = 2941443 Bytes / 123,634 s
= 23791,553 Bytes/sec = 0,190 Mbit/sec
300 detik = Jumlah data / waktu pengiriman data = 7264054 Bytes / 312,524 s
= 23243,184 Bytes/sec = 0,186 Mbit/sec
b. Pengujian throughput pada bitrate 256
120 detik = Jumlah data / waktu pengiriman data = 3413773 Bytes / 123,528 s
= 27635,547 Bytes/sec = 0,221 Mbit/sec
= 9764492 Bytes / 302,544 s = 32274,667 Bytes/sec = 0,258 Mbit/sec c. Pengujian throughput pada bitrate 512
120 detik = Jumlah data / waktu pengiriman data = 2949842 Bytes / 147,610 s
= 19984,043 Bytes/sec = 0,160 Mbit/sec
300 detik = Jumlah data / waktu pengiriman data = 9773017 Bytes / 302,200 s
= 32339,539 Bytes/sec = 0,259 Mbit/sec
d. Pengujian throughput pada bitrate 1024
120 detik = Jumlah data / waktu pengiriman data = 3112807 Bytes / 124,421 s
= 25054,669 Bytes/sec = 0,200 Mbit/sec
300 detik = Jumlah data / waktu pengiriman data = 13896680 Bytes / 304,077 s
= 45701,190 Bytes/sec = 0,366 Mbit/sec
e. Pengujian throughput pada bitrate 2048
120 detik = Jumlah data / waktu pengiriman data = 2806550 Bytes / 121,502 s
= 23098,464 Bytes/sec = 0,185 Mbit/sec
300 detik = Jumlah data / waktu pengiriman data = 12297877 Bytes / 302,376 s
= 40670,853 Bytes/sec = 0,325 Mbit/sec
Tabel 3 komparasi throughput
Bitrate 128 Bitrate 256 Bitrate 512 Bitrate 1024
Bitrate 2048
120 Detik 0,19 0,221 0,16 0,2 0,185
300 Detik 0,186 0,258 0,259 0,366 0,325
Berdasarkan pada table 3 terlihat bahwa penggunaan bandwidth terbesar terletak pada pengujian selama 120 detik dengan bitrate 256 dan 300 detik menggunakan bitrate 1024. Jika dilihat kembali maka semakin tinggi throughput maka delay yang terjadi juga dapat diminimalisir.
4.2.3 Pengujian Jitter
Dimana total variasi delay = (delay 2 - delay 1) + (delay 3-delay 2) + ... + (delay n - delay ( n-1) ). Maka perhitungan jitter pada live streaming yang dilakukan adalah
a. Pengujian jitter pada bitrate 128
Selama 120 detik = Total variasi delay / (total paket - 1) = 123,633924 s / (5342 - 1)
= 123,633924 s / 5341 = 0,0231480853772702s = 23,15 ms
Selama 300 detik = Total variasi delay / (total paket - 1) = 312,524051 s / (13568 – 1)
= 312,524051 s / 13567 = 0,0230356048500037 s = 23,04 ms
b. Pengujian jitter pada bitrate 256
Selama 120 detik = Total variasi delay / (total paket - 1) =123,528329 s / (5968 - 1)
= 123,528329 s / 5967 = 0,0207019153678565 s = 20,70 ms
Selama 300 detik = Total variasi delay / (total paket - 1) = 302,543542 s / (15772 – 1)
= 302,543542 s / 15771 = 0,0191835357301376 s = 19,18 ms
c. Pengujian jitter pada bitrate 512
Selama 120 detik = Total variasi delay / (total paket - 1) = 147,609873 s / (5552- 1)
= 147,609873 s / 5551 = 0,0265915822374347 s = 26,59 ms
Selama 300 detik = Total variasi delay / (total paket - 1) = 302,200254 s / (15058 – 1)
= 302,200254 s / 15057 = 0,0200704160191273 s = 20,07 ms
d. Pengujian jitter pada bitrate 1024
Selama 120 detik = Total variasi delay / (total paket - 1) = 124,240595 s / (5563 - 1)
= 0,0223373957209637 s = 22,34 ms
Selama 300 detik = Total variasi delay / (total paket - 1) = 304,076985 s / (20129 - 1)
= 304,076985 s / 20128 = 0,015107163404213 s = 15,11 ms
e. Pengujian jitter pada bitrate 2048
Selama 120 detik = Total variasi delay / (total paket - 1) = 121,501804 s / (4900 - 1)
= 121,501804 s / 4899 = 0,0248013480302102 s = 24,80 ms
Selama 300 detik = Total variasi delay / (total paket - 1) = 302,375687 s / (16627 – 1)
= 302,375687 s / 16626 = 0,0181869172982076 s = 18,19 ms
Berdasarkan pada pengujian jitter yang telah dilakukan terlihat bahwa pada koneksi streaming yang dilakukan selama 120 detik pada bitrate 256 memiliki nilai terkecil dan pada pengujian selama 300 detik nilai terkecil diperoleh pada bitrate 1024 tabel perbandingan dapat dilihat pada Tabel 4. Perbandingan antara jitter dengan throughput, semakin tinggi throughput maka nilai jitter juga akan semakin berkurang.
Tabel 4 Komparasi jitter
Bitrate 128 Bitrate 256 Bitrate 512 Bitrate 1024
Bitrate 2048
120 Detik 23,15 20,7 26,59 22,34 24,8
300 Detik 23,04 19,18 20,7 15,11 18,19
4.2.4 Pengujian packetloss
Packet loss adalah sejumlah paket yang gagal dikirim / hilang per detik dimana packet loss ini dapat disebabkan karena penurunan signal media, masalah jaringan maupun masalah hardware. Rumus untuk menghitung packet loss adalah
a. Pengujian packet loss pada bitrate 128
Selama 120 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
Selama 300 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((13568 – 13568) : 13568) X 100% = 0%
b. Pengujian packet loss pada bitrate 256
Selama 120 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((5968 – 5968) : 5968) X 100% = 0%
Selama 300 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((15772 – 15772) : 15772) X 100% = 0%
c. Pengujian packet loss pada bitrate 512
Selama 120 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((5552 – 5552) : 5552) X 100% = 0%
Selama 300 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((15058 – 15058) : 15058) X 100% = 0%
d. Pengujian packet loss pada bitrate 1024
Selama 120 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((5563 – 5563) : 5563) X 100% = 0%
Selama 300 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((20129 – 20129) : 20129) X 100% = 0%
e. Pengujian packet loss pada bitrate 2048
Selama 120 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((4900 – 4900) : 4900) X 100% = 0%
Selama 300 detik = ((paket dikirim – paket diterima) : paket dikirim) X 100%
= ((16627 – 16627) : 16627) X 100% = 0%
4.2.5 Pengujian QoS
Berikut ini merupakkan tabel hasil pengujian QoS yang telah dilakukan selama 120 detik dan 300 detik
Tabel 5 pengujian 120 detik
Bitrate (K) Delay (ms) Throughput (kbps) Jitter (ms) Packet loss
(%)
128 23,14 0,19 23,15 0
256 20,70 0,221 20,70 0
512 26,59 0,16 26,59 0
1024 22,33 0,2 22,34 0
2048 24,78 0,185 24,80 0
Tabel 6 pengujian 300 detik
Bitrate (K) Delay (ms) Throughput (kbps) Jitter (ms) Packet loss
(%)
128 23,03 0,186 23,04 0
256 19,18 0,258 19,18 0
512 20,07 0,259 20,70 0
1024 15,11 0,366 15,11 0
2048 18,19 0,325 18,19 0
Seperti terlihat pada tabel 5 pengujian selama 120 detik dan tabel 6 pengujian selama 300 detik, semakin tinggi nilai throughput yang diperoleh maka nilai delay dan jitter yang terjadi akan semakin mengecil.
5. Kesimpulan
Dari hasil penelitian yang telah dilakukan, maka dapat ditarik kesimpulan bahwa server streaming yang digunakan dapat bekerja dengan baik terlihat dari pengujian yang dilakukan. Penggunaan protokol TCP/IP yang digunakan sebagai penghubung antara smartphone dan server dan protokol RTMP yang digunakan sebagai penghubung server dan webpage dapat berjalan dengan baik. Penelitian ini merupakan penyempurnaan dari penelitian terdahulu yang menggunakan Wowza Media Engine, karena pembuatan server streaming menggunakan linux dapat dipakai secara gratis sedangkan menggunakan Wowza Media Engine harus melakukan pembayaran sebelum memakai.
6. Daftar pustaka
[2] Arfiandy Arsam. 2014. Pembangunan Aplikasi Video Streaming Berbasis Android di STV Bandung, Jurnal Ilmiah, Universitas Komputer
Indonesia, ISSN: 2089-9033
[3] OKUSI infotech.,2015.,“Tentang UBUNTU “.,http://okusi.co.id/tentang
-ubuntu.html.,Diakses 20 November 2015.
[4] Seeling, Patrick., 2011., Web Conferencing Traffic-An Analysis Using Dimdim As Example., International Journal of Computer Networks & Communications (IJCNC) Vol.2, No.6:2.
[5] Wikipedia., 2015., “Real Time Messaging Protocol “.,
http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol., Diakses
tanggal 20 November 2015.
[6] Wikipedia.,2015.,“Real Time Messaging Protocol
“.,
https://id.wikipedia.org/wiki/Internet_protocol_suite., Diakses tanggal
20 November 2015.[7] Roman Arutyunyan. 2013. ArutCam,
https://play.google.com/store/apps/details?id=me.arut.cam&hl=en/.Diakse s tanggal 23 November 2015.
[8] Sean Wilkins. 2011. Cisco's PPDIOO Network Cycle,
http://www.ciscopress.com/articles/article.asp?p=1697888&seqNum=2.
Diakses tanggal 20 November 2015
[9] CiscoZine.,2015.,“ The PPDIOO network lifecycle
“.,
http://www.ciscozine.com/the-ppdioo-network-lifecycle/.,
Diaksestanggal 21 November 2015.
[10] Microtik.,2015.,“ TCP/IP
“.,
http://mikrotik.co.id/artikel_lihat.php?id=62.,
Diakses tanggal 21 November 2015.[11] Endi Dwi Kristianto. 2012. Menghitung Delay Paket Pada Jaringan
Menggunakan Wireshark,