BAB II KONSEP DASAR VIDEO STREAMING SERVER 2.1 Pengertian Server Server adalah komputer yang berfungsi untuk melayani, membatasi, dan mengontrol akses terhadap klien-klien dan sumber daya pada suatu jaringan komputer. Komputer server didukung dengan spesifikasi hardware yang lebih tinggi daripada komputer personal yang biasa digunakan sehari-hari oleh orang pada umumnya. Dilihat dari fungsinya, server bisa di kategorikan dalam beberapa jenis, antara lain: server platform yaitu hardware atau software dasar untuk sistem yang bertindak sebagai mesin yang menggerakkan server, server aplikasi dikenal juga sebagai jenis middleware yang berfungsi sebagai pengolah perintah dari klien ke database, File Transport Protocol (FTP) server untuk transfer data dari atau ke klien, Internet Relay Chat (IRC) server yaitu server yang menyadiakan layanan kepada klien untuk saling berdiskusi lewat jaringan, mail server yaitu untuk mengangani e-mail klien, proxy server yang bertindak sebagai mediator antara klien dengan server yang berada di luar jaringan untuk menyaring atau membatasi permintaan, web server yaitu server yang menyediakan konten ke web browser dan berkomunikasi menggunakan protokol HTTP (Hypertext Transfer Protocol). Fungsi server sangat banyak, misalnya untuk situs internet, ilmu pengetahuan, atau sekedar penyimpanan data. Namun yang paling umum adalah untuk menghubungkan komputer klien ke internet.
Universitas Sumatera Utara
2.2 Pengertian Streaming Streaming adalah suatu teknologi untuk menampilkan file secara langsung maupun dengan prerecord dari sebuah mesin server. File yang terletak pada sebuah server dapat secara langsung dijalankan pada komputer klien sesaat setelah ada permintaan dari pengguna. Proses ini disebut juga on-demand streaming. Jika file audio atau video tersebut langsung di-capture dan kemudian ditampilkan langsung (tanpa proses penyimpanan di server) maka proses ini disebut live streaming. Konsep dasar dari video streaming adalah membagi paket video ke dalam beberapa bagian, mentransmisikan paket tersebut, kemudian pada pihak penerima (klien) dapat men-decode dan memainkan potongan paket file video tanpa harus menunggu seluruh file terkirim ke mesin penerima. 2.2.1 Streaming Versus Download Download (unduh) adalah cara yang biasa dilakukan untuk mengambil file dari internet. Pemanfaatannya biasa digunakan untuk menampilkan halaman web pengguna menunggu beberapa waktu sampai semua file selesai di-download baru dapat ditampilkan dalam web browser. Penggunaan bandwidth jaringan yang lebih besar akan mempercepat pengiriman, sebaliknya dengan bandwidth yang lebih kecil akan memperlambat pengiriman melalui jaringan yang terbatas. Alternatif lainnya bisa dilakukan dengan mengadopsi arsitektur codec terdahulu, yaitu dengan melakukan encode beberapa copy file dari video klip pada kecepatan bit yang berbeda. Server dan video player akan bernegosiasi untuk memilih file yang paling optimum sesuai dengan kondisi jaringan yang ada dan
Universitas Sumatera Utara
bandwidth yang tersedia. Cara tersebut dapat menyelesaikan masalah walaupun bermasalah pada biayanya. Proses encoding harus selesai sebelumnya dan membutuhkan tambahan ruang file yang diperlukan pada server data. Kedua cara tersebut menambah biaya untuk meningkatkan pelayanan streaming. 2.2.2 Live Versus On-Demand Streaming bisa dilakukan dengan 2 cara yaitu media data dikirimkan langsung ke penerima tanpa diperlukan request dari klien, seperti pada siaran televisi biasa. Ini disebut streaming langsung (live streaming). Alternatif lainnya adalah penerima meminta layanan berupa media yang ada di server data untuk distream, seperti penggunaan buku di sebuah perpustakaan yang hanya melayani jika ada yang ingin meminjam buku. Ini disebut streaming yang sesuai permintaan (on-demand). Kejadian yang khusus dari streaming secara langsung adalah simulatedlive, dimana media stream dikirimkan atas permintaan di sisi server. Ini bisa digabungkan dengan presentasi secara langsung sehingga pembicara bisa memperkenalkan sebuah promo, berbicara di depan kamera dan menampilkan video yang telah direkam sebelumnya dari sebuah server. Streaming memerlukan hubungan antara server dan klien secara tetap (konsisten) dan alur data yang kontinu. Berbeda dengan proses pengiriman menggunakan web server yang tidak memerlukan alur data yang kontinu karena sekali data dikirimkan maka data otomatis tersimpan di hardisk lokal dan klien bisa secara bebas membaca informasi yang ada walaupun koneksi ke server telah terputus.
Universitas Sumatera Utara
2.2.3 Arsitektur Streaming Sistem streaming terssusun dari kombinasi server , player, transmisi dan metode encoding yang digunakan. Gambar 2.1 menunjukkan path streaming bagian hubungan setiap komponen penyususun sistem streaming.
Gambar 2.1. Path streaming komponen sistem streaming Pada saat klien me-request data, maka web server akan merespons permintaan tersebut dan melaporkan permintaan tersebut ke streaming server dan selanjutnya streaming server akan mengirimkan file (data) yang diminta oleh klien melalui jaringan yang tersedia. 2.2.4 Format Streaming Hingga kini beberapa jenis format streaming yang banyak digunakan diantaranya adalah untuk Real Media (.rm, .ra, .ram), Windows Media (.asf, .wmf, .asx) dan QuickTime (.mov), dan Flash Player (.flv, .swf, .f4v). Setiap format tersebut membutuhkan sejenis player atau plug-in yang terinstal di komputer klien agar dapat menikmati streaming yang ditawarkan suatu situs. Flash video (FLV) adalah sebuah format file yang digunakan untuk
Universitas Sumatera Utara
mengirim video melalui Internet menggunakan Adobe Flash Player (awalnya diproduksi oleh Macromedia) versi 6-10. Konten video flash juga tertanam di dalam SWF file. Audio dan video FLV data di-encode dalam cara yang sama ketika file tersebut berada dalam file SWF. SWF (Small Web Format) adalah untuk multimedia dan terutama untuk vektor graphics, berasal dari Future Wave Software dan berada di bawah kendali Adobe. SWF saat ini berfungsi sebagai format yang dominan untuk menampilkan animasi vektor grafik di web. 2.3 Protokol Video Streaming Protokol adalah aturan-aturan yang diterapkan untuk komunikasi di dalam jaringan komputer. Protokol di dalam teknologi streaming yang digunakan untuk membawa pesan paket dan komunikasi terjadi melalui protokol tersebut. Beberapa protokol yang digunakan dalam teknologi streaming antara lain adalah: a. RTMP (Real Time Messaging Protocol ) Real Time Messaging Protocol (RTMP) adalah sebuah protokol khusus yang dikembangkan oleh Adobe Systems untuk streaming audio, video dan data melalui internet, antara Flash player dan server. RTMP dirancang untuk kinerja tinggi transmisi audio, video, dan data antara Adobe Flash Platform, termasuk Adobe Flash Player dan Adobe AIR. RTMP sekarang tersedia dengan spesifikasi terbuka untuk menciptakan produk dan teknologi yang memungkinkan pengiriman video, audio, dan data di tempat terbuka dengan format SWF, FLV, dan F4V yang kompatibel dengan Adobe Flash Player.
Universitas Sumatera Utara
b. HTTP (Hypertext Transfer Protocol) Sebuah protokol level aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dengan sistem informasi hypermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen hypertext, yang kemudian membentuk World Wide Web (WWW). 2.4 Metode Transmisi Data Terdapat berbagai metode dalam proses transmisi data, antara lain broadcast, unicast, dan multicast. 1 Broadcast Broadcast merupakan cara transmisi yang sangat umum dikenal dan banyak digunakan. Contoh transmisi ini adalah penyiaran televisi yang digunakan untuk mengirimkan siaran. Broadcast mengirimkan transmisi file ke seluruh penerima pada waktu yang bersamaan walaupun karakteristik media yang tersedia untuk dikirimkan penerima biasanya bervariasi. Seluruh user harus memproses setiap file yang diterimanya walaupun terdapat beberapa user yang tidak meminta untuk dikirimkan. Jika file yang dikirimkan mempunyai ukuran yang cukup besar, maka jalur yang seharusnya dipakai untuk lalu lintas data lain menjadi terpakai untuk sesuatu yang tidak tidak diinginkan oleh user tersebut.
Universitas Sumatera Utara
2 Unicast Pada metode unicast, sebuah server mengirimkan file multimedia ke satu atau berbeda klien penerima. Permasalahan pada metode ini umumnya terjadi ketika beberapa klien mengakses suatu file multimedia tersebut secara bersamaan. Ketika hal ini terjadi, maka copy dari file tersebut akan direplikasi sebanyak jumlah klien yang mengakses. Oleh sebab itu, semakin banyak jumlah klien yang mengakses pada saat yang bersamaan maka jalur jaringan menjadi pada oleh lalu lintas data file multimedia yang diminta oleh klien tersebut, khususnya untuk file video yang umumnya berukuran cukup besar. Hal ini sering menyebabkan permasalahan keterbatasan skalabilitas pada penerapan metode ini. Dua factor yang akan mempengaruhi utilisasi bandwidth bila melakukan transmisi menggunakan metode ini adalah jumlah koneksi klien dan jumlah replikasi file yang ditransmisikan untuk setiap klien. 3 Multicast Multicast bekerja dengan mengirimkan satu buah copy data untuk setiap grup yang terdiri dari klien yang membutuhkan. Setiap grup ditandai dengan sebuah alamat IP, yakni IP multicast. Pada lingkungan yang menerapkan metode multicast, server akan mengirimkan satu buah file ke sebuah grup multicast, sehingga pengiriman ini tidak dipengaruhi oleh jumlah klien yang hendak menerima file tersebut.
Universitas Sumatera Utara
2.5 Sistem Video Streaming Sebuah sistem video streaming yang lengkap melibatkan semua tahapan mulai dari menciptakan, memberikan, dan akhirnya memainkan konten video. Tahapan sistematik dari sistem video streaming yang lengkap terdiri capture dan encoding,
serving,
distribution,
decode
dan
presentation. Gambar 2.2
menunjukkan proses video streaming dari awal yaitu pengambilan video hingga akhirnya dapat dilihat oleh klien.
Capture
Presentation
Encode
Decode
Serving
Distribution
Gambar 2.2. Proses video streaming Adapun proses yang lebih jelas adalah sebagai berikut: 1. Capture Capture adalah proses pengambilan video dan audio. Data yang di-capture tidak bisa langsung diproses oleh suatu aplikasi hingga data tersebut memiliki format yang sesuai dengan aplikasi tersebut.
Universitas Sumatera Utara
2. Encode Data tersebut dienkode (encode) menggunakan algoritma yang telah tertanam (embedded) di dalam aplikasi tersebut. 3. Serving Data kemudian di-upload ke server yang telah di-install dalam PC untuk dikirim ke jaringan. Bagian inilah yang mengatur pengiriman file streaming secara real-time. 4. Distribution Berikutnya adalah pendistribusian data tersebut ke player/klien yang mengaksesnya melalui jaringan yang tersedia. Kualitas jaringan sangat menentukan kelancaran pendistribusian data. 5. Decode Data tersebut harus di-decode agar klien bisa memainkan dengan browser atau player yang sesuai. 6. Presentation/player Data yang diakses bisa dilihat melalui web browser yang didukung untuk menjalankan streaming karena tidak semua web browser bisa menjalankan streaming. Selain diakses melalui web browser, data tersebut juga bisa diakses melalui beberapa stand-alone player yang ada. 2.6 Web Server Web server adalah perangkat lunak yang berjalan pada komputer server yang dapat menerima permintaan dari klien untuk melihat halaman web yang
Universitas Sumatera Utara
berbentuk HTML dan halaman web ini diakses menggunakan protokol HTTP. Contohnya adalah Apache yang merupakan web server open source yang sangat umum digunakan saat ini. 2.7 Red5 Server Red5 server adalah sebuah aplikasi server yang memungkinkan pengiriman data aktual dari klien ke klien yang lainnya. Red5 server mempunyai kemampuan media streaming yang bagus dan lingkungan pengembangan yang fleksibel dan merupakan aplikasi open source yang menjadi salah satu solusi untuk melakukan streaming multi-user. Red5 server merupakan Flash RTMP server berbasis java yang mendukung:
Streaming audio/ video
Recording kliens streams (hanya FLV)
Shared object
Live streaming publishing
Remoting
2.7.1 Komponen Red5 Server Dalam perancangan dan pengembangan ini, aplikasi dibangun dengan menggunakan aplikasi Red5 yang berfungsi sebagai streaming server dan menangani aksi-aksi yang diberikan pada klien yang terhubung dengan Red5 server. Protokol HTTP hanya digunakan untuk memberikan akses kepada pengguna untuk memperoleh file aplikasi sehingga aplikasi dapat dijalankan pada web browser. Ketika aplikasi klien dijalankan, aplikasi akan terhubung dengan
Universitas Sumatera Utara
Red5 server dan berkomunikasi dengan menggunakan protokol RTMP dalam mengakomodasi hubungan antar-aplikasi klien. Hubungan antara klien dan Red5 server menggunakan protokol RTMP yang berbeda dari HTTP karena menyediakan sebuah koneksi secara terusmenerus untuk berkomunikasi dua arah antara flash player pada klien dengan Red5 server. Pada sistem media streaming, pengiriman data dilakukan melalui Red5 server yang kemudian dikirimkan ke flash player pada klien. Ketika terjadi proses streaming, flash player pada klien menciptakan hubungan (koneksi) dengan server yang menyadiakan aliran informasi yang disebut dengan Network Stream (NetStream). 2.7.2 Parameter Enkoder Red5 Server Ketika akan melakukan streaming video menggunakan Red5 server, pada bagian enkoder tersedia beberapa parameter yang bisa diatur agar data yang akan di-streaming-kan sesuai dengan yang diinginkan sesuai kondisi jaringan di tempat tersebut. Parameter yang dapat diatur antara lain adalah quality dan keyframe. 1 Quality Quality (kualitas) adalah parameter yang diatur agar menghasilkan kualitas gambar video yang bagus ketika melakukan streaming video. Skala pengaturan parameter ini dimulai dari 0 (most compressed) hingga 100 (uncompressed). Secara teoritis, jika nilai parameter semakin besar maka gambar video yang dihasilkan semakin bagus.
Universitas Sumatera Utara
2 Keyframe Keyframe adalah frame yang berperan sebagai titik referensi pada saat melakukan proses streaming. Setiap keyframe adalah sebagai titik referensi dan sisanya disebut inbetween frame. Misalnya nilai keyframe adalah 5. Maka tiap keyframe berisi frame 1, 2, 3, 4, dan 5. Frame yang menjadi referensi adalah 1 (frame awal) dan 5 (frame akhir). Skala pengaturan parameter keyframe dimulai dari 1 hingga 100. 2.7.3 Prinsip Kerja Red5 Server Agar komunikasi antara klien dengan Red5 server terjalin terdapat dua file yang berperan yaitu yang pertama adalah file server (.asc) yang dirancang untuk mendukung tujuan dan komunikasi yang ingin dicapai sehingga mampu merespon interaksi yang diberikan dari aplikasi klien dan file (.swf) yang merupakan aplikasi flash yang memberikan serta menyediakan tampilan layar untuk end-user. Komunikasi yang terjadi melalui aplikasi Red5 server yang dikirimkan kepada aplikasi klien (flash player) ketika aplikasi klien menggunakan komponen Red5 server dan hubungan terjalin dengan Red5 server untuk menyediakan aliran informasi yang diinginkan, sedangkan file HTML digunakan sebagai penampung dari aplikasi klien (flash player) untuk dijalankan. Hal ini ditunjukkan pada Gambar 2.3.
Universitas Sumatera Utara
Gambar 2.3. Aliran prinsip kerja Red5 server Ketika klien terhubung dengan aplikasi server, server menggunakan method onAppStart dan kemudian method onConnect
dijalankan untuk
menangani klien yang terhubung ke server. Secara logika method ini yang menentukan untuk menerima atau menolak koneksi aplikasi klien. Kemudian server menggunakan method onStatus untuk memberikan laporan ke klien mengenai koneksi apakah ditolak atau diterima. Ketika klien menutup koneksi, maka server menggunakan method onDisconnect. Hal ini ditunjukkan pada Gambar 2.4.
Gambar 2.4. Proses koneksi antara klien dan server
Universitas Sumatera Utara