Memaparkan catatan dengan label linux. Papar semua catatan
Memaparkan catatan dengan label linux. Papar semua catatan

Rabu, 1 September 2010

Web Application Development

Now the workload is getting heavy
  • Google Map for Base Stations and Subscribers
  • CCTV Management System
  • Video Management System
  • Wowza Log Management System and Wowza System Administration
  • CDS-IS CDN Log Management System
All these development is powered by CakePHP 1.3 & MySQL on Linux

Ahad, 15 Ogos 2010

Paparkan asset dalam folder

Semua fail video dan gambar CCTV, saya simpan dalam /tmp/motion. Saya menggunakan teknik PHP Gateway untuk paparkan semula imej dan video yang ditangkap menggunakan CCTV

$filename = basename($_GET['filename']);
$dir = '/tmp/motion/';
$path = $dir . $filename ;
$info = getimagesize( $path );
header( "Content-type: {$info['mime']}" );
@readfile( $path );
?>

Kemudian, saya boleh lihat kembali menerusi, alamat seperti gambar di bawah

Isnin, 9 Ogos 2010

Mengesan staff / pekerja / kekasih guna teknologi GPS



Saya ada membuat satu sistem pengesan GPS yang simple yang mempunyai ciri-ciri berikut :

1. Aplikasi GPS Tracking yang run dalam Nokia E71/E72/E75 ( Java App ) yang akan menghantar data GPS mengikut interval yang ditentukan menggunakan 3G ( HTTP Protokol )

2. Penerima data menggunakan CakePHP dan data yang diterima akan dimasukkan ke dalam database MySQL

3. View data menggunakan kordinat dari dalam database menggunakan Google MAP JS API

Untuk menggunakan SMS pun boleh tapi disebabkan kos yang tinggi, buat masa ini sistem ini hanya menggunakan HTTP update sahaja

Ahad, 8 Ogos 2010

Axis 2100 Ip Camera MJPEG stream to Wowza Server

So I have an Axis 2100 IP Camera running on the network and these are the specs :

1. 15 FPS max
2. JPG or MJPEG format
3. Direct URL will be http://10.0.0.5/cgi-bin/video640x480.mjpg

Planned Stream
1. Will be published to Wowza server using RTMP format, rtmp://x.x.x.x/live/axis.sdp
2. Will be published in FLV format
3. FFMPEG will transcode the input format in MJPEG and output in FLV

FFMPEG
1. Using Ubuntu Server Operating system
2. Network for OS will be same segment with Axis camera ( 10.0.0.X )
3. Compile FFMPEG with RTMP support
  1. 3.1 sudo apt-get install libssl-dev
  2. 3.2 svn co svn://svn.mplayerhq.hu/rtmpdump/trunk rtmpdump 
  3. 3.3 Configure;Make,Make Install rtmpdump then ldconfig
  4. 3.4. Download and compile latest FFMPEG with these options,  ./configure --enable-gpl --enable-shared --enable-librtmp
4. Now, transcode using this command
ffmpeg -f mjpeg -i http://10.0.0.5/cgi-bin/video320x240.mjpg -an   -vcodec flv   -b 100k -r 15 -f flv rtmp://x.x.x.x/live/axis.sdp

5. Grab back the video using your favorite player eg Flowplayer.

Screenshots

Flowplayer RTMP streaming from Wowza Server
FFMPEG transcoding result
MJPEG from Axis Camera Web Server

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

Selasa, 27 Julai 2010

CakePHP Search Filtering


Tadi masa training @ PMO, saya membuat contoh Search Engine menggunakan model Post dan Category.


Schema Post
---------------------------------
id |title |created | modified

Schema Post
---------------------------------
id | category_id | title | contents | created | modified

Relations
----------------------------------
Post belongsTo Category
Category hasMany Post

Strategi untuk Search
----------------------------------
1. User boleh search by keyword tanpa pilih Category. Akan return semua data
2. User boleh search by keyword tapi terhad kepada Category tertentu
3. Guna wildcard  OR dan AND serentak. AND digunakan jika nilai $category_id dikesan
4. Pagination digunakan hasil carian dan bawa keyword menggunakan URL

 Screen Shots
----------------------------------
User boleh search by Category atau All data tanpa isi Query. Data paginated

Jumaat, 23 Julai 2010

Pasang CCTV di rumah cara mudah guna Zone Minder

 Ubuntu Server & Client Lappy


Anda ingin memasang CCTV tetapi ingin kos yang rendah dah murah ? Nak dijadikan cerita, saya tengah menguji sistem CCTV menggunakan perisian open source, ZoneMinder.