Jumaat, 6 Ogos 2010

Live Streaming menggunakan Wowza Media Server Centos


Alkisahnya, saya tengah research mengenai Wowza Media Server. Alternatif kepada Adobe Flash Media Server dan Microsoft Silverslight.

Saya mempunyai task di mana client ingin beralih dari Microsoft Media Server ke Flash. Keperluan client adalah seperti berikut :

1. HD quality streaming
2. End format in FLV
3. Smooth Streaming Technology
4. Adove Media Encoder compability mode
5. Variable streaming rate, bergantung kepada speed broadband user

Saya menggunakan VMWARE ESX virtual machine yang menggunakan CentOS 5.1 sebagai OS utama. Wowza memerlukan Java versi seperti di bawah :

[root@wowza azril]# java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (rhel-1.11.b16.el5-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

Download Wowza versi developer dalam bentuk RPM executables dan install. Kemudian isi no serial untuk developer ( percuma )

Pastikan port 1935 dan 8086 dibuka, dan run startup.sh yang terletak di dalam path /usr/local/WowzaMediaServer/bin

Wowza berjaya run
Sekarang saya akan cuba setting server untuk menerima Live Feed dari HD Webcam yang dipasang di dalam Laptop. Saya mengikuti tuorial yang dibekalkan oleh WowZa, http://www.wowzamedia.com/quickstart_2_1_2.html#live-rtmp.

Adobe Flash Media Live Encoder
 Menggunakan Feed dari Webcam laptop, saya download program Adobe Flash Media Live Encoder dan mula masukkan setting seperti berikut
URL : rtmp://x.x.x.x/live
STREAM: wowza.sdp

Kemudian saya melihat log
Log dari startup.sh
Nampaknya WowzaMediaServer berjaya menerima video feed dari Adobe FLME. Seterusnya saya ingin melihat feed menggunakan 2 player
1. Adobe Flash Media Player
2. Flowplayer dengan plugin RTMP

Streaming Live dari Mozilla Firefox menggunakan player dari Adobe Flash
Streaming Live menggunakan FLowplayer RTMP Plugin
Nampaknya, misi berjaya. Sebelum ini saya ada pengalaman menggunakan Microsoft Media Server dan Adobe Media Server.

Business Model  yang boleh dibuat dengan servis ini
===================================
1. Live streaming guna Web TV ala Youtube guna Flash. User tak perlu special player, memadai ada Flash
2. Harga berdasarkan  jumlah maksimum Concurrent Users
3  Harga berdasarkan jumlah User yang boleh Akses
4. Harga berdasarkan kualiti stream ( 50kbps - 1.5mb )
5. Sokongan CDN seperti Akamai, Jaring Speed CDN dan sebagainya
6. Anda boleh cipta sendiri plan-plan tersebut
7. Harga berdasarkan jumlah live channel

Flow Untuk Business ( self streaming user )
===================================
Sinopsis : Business ini akan menganggap user mempunyai pengalaman sendiri . Target user ini ialah wartawan yang menggunakan internet, stesen TV/Radio, blogger profesional., event management, kolej yang menawarkan course jarak jauh.


1. User akan subscribe dengan salah satu plan anda
2. User akan diberi trial akaun dan boleh login ke Control Panel
3. User boleh create sendiri live channel mereka, eg http://x.x.x.x/user/live/channelname
4. User publish stream ke channel menggunakan Adobe FLME
5. Dalam control panel akan menunjukkan stream mereka beserta HTML embed code
6. Dalam control panel akan ada statistik penggunaan update setiap 1 jam

Flow Untuk Business ( corporate client )
===================================
Sinopsis: Client yang tiada equipment dan harapkan kita sediakan semua sekali dari A-Z
Peralatan wajib
1. Camera HD, Video Camera Digital
2. Channel Switcher seperti Wirecast
3. PC based encoder yang power ( 12GB ram, highend graphics card )
4. Internet connection yang stabil, mampu hantar video feed pada kelajuan 1mbps
5. Penyediaan website untuk paparkan feed.

Peralatan untuk Server ( minimum )
===================================
1. CPU: Single Dual Core, 3.00 GHz or better
2. RAM: 2GB
3. Disk: 2 or more in RAID 0 (striping)
4. Network: 1Gb Ethernet

OS yang disokong :
1. Windows (XP, Vista, 7, Server 2003 & 2008)
2. Linux (all distributions)
3. Solaris
4. Mac OS
5. Unix

Content Delivery Network ( ini sepatutnya ada sebab untuk kurangkan kos bandwidth video feed )

Skillsets yang diperlukan untuk System Admin
================================
1. Linux basic OS maintenance
2. Network troubleshooting
3. Wowza Server Administration
4. Zabbix Realtime Monitoring

Skillsets yang diperlukan untuk Web App Developer
=====================================
1. Log file manipulations ( apache style )
2. Wowza Configuration management ( XML )
3. Statistics Generation via Flash ( Fusion Chart Free )
4. Any RAD Frameworks
5. Paypal integration

How to Market this business ?
=====================================
1. Live streaming importance
2. Cost saving in longer run
3. Subscription based
4. Technical Supports for SLA
5. CDN as value added service

 Issues dan masalah yang mendatang
=====================================
1. HTML Hotlinking ( kena prevent user dari embed HTML streaming code )
2. SWF Theft ( kena prevent SWF Player dari kena hotlinking ( boleh guna cara PHP gateway technique )
3. Limit siapa yang boleh publish ker server dan limit jenis encoder

Update 07 August 2010
===================
Saya berjaya buat testing untuk prevent Hotlinking menggunakan panduan dari ( http://www.wowzamedia.com/forums/showthread.php?t=5239 )

Untuk Package, saya menggunakan pre compiled edition dari, http://www.wowzamedia.com/forums/showthread.php?t=6565

Sample configuration
Contoh konfigurasi application/live/Application.xml
Contoh log file menunukkan module HotlinkDenial

5 ulasan:

  1. boleh, semua howto dah ada hint kat atas

    BalasPadam
  2. wowza need licence, use red5 is better and freeware

    BalasPadam
  3. thanks om atas referensinya :D

    PT Printcom Solusi - Printer & Camera Network Specialist
    Authorised Distributor For Axis Camera & NVR GVD
    www.printcom.co.id

    BalasPadam
  4. Awesome article, I will use on future this knowledge for Live Streaming app

    BalasPadam