Welcome!

I am Andri Johandri Programmer Python Entusiast

View Work Hire Me!

About Me

Device
Networking
Application
Siapa Saya

Andri Johandri

Programmer Aplikasi

25 Tahun menjadi seorang programmer Komputer, bermula dari Programmer Tasm, QBasic, DBase III Plus,Cliper dan FoxPro di tahun 90an.

Kini di era millenial lebih memfokuskan diri pada Pemrograman Python, Pengembangan Teknologi Artificial Intellegence, IoT , Robotika dan Bigdata .

Services

Python Application

Nulla metus metus ullamcorper vel tincidunt sed euismod nibh Quisque volutpat

Development

Nulla metus metus ullamcorper vel tincidunt sed euismod nibh Quisque volutpat

Branding

Nulla metus metus ullamcorper vel tincidunt sed euismod nibh Quisque volutpat

Marketing

Nulla metus metus ullamcorper vel tincidunt sed euismod nibh Quisque volutpat

Our Blog

Perpustakaan Video Digital dengan Python MediaDrop/MediaCore Virtual Environment

Teknologi pendistribusian Video Streaming saat ini sudah sangat dibutuhkan sebagai media pembelajaran di Sekolah ataupun kampus perguruan tinggi terutama didalam membangun perpustakaan video digital. Nah, bagi anda pengguna Operasi Sistem Linux terutama pengguna distro Ubuntu , saat ini saya akan berbagi pengalaman membangun sebuah media web untuk perpustakaan Video Digital dengan menggunakan aplikasi MediaDrop yaitu web cms Video dengan bahasa pemrograman Python.


Ok, langsung praktek saja. Untuk menginstall MediaDrop / MediaCore Python yang paling penting anda harus memiliki koneksi internet karena pada saat setup berlangsung ada beberapa modul python yang akan didownload secara langsung.

Tahap pertama adalah menginstall aplikasi python yang dibutuhkan 

sudo apt-get install python-pastescript mysql-server mysql-client libmysqlclient-dev python-dev python-doc libjpeg-dev libjpeg62 zlib1g-dev libfreetype6 libfreetype6-dev git python-setuptools python-virtualenv

Selanjutnya kita harus membangun Virtual Environment nya python untuk mediacore dan pada contoh disini kita akan membuat virtual environment python di directory opt dengan perintah

cd /opt
virtualenv --no-site-packages mediacore_env
source mediacore_env/bin/activate

Selanjutnya, untuk setup aplikasi mediacore ini maka anda harus mengaktifkan virtualenv nya yaitu dengan perintah 

source mediacore_env/bin/activate

setelah di terminal tampil :
(mediacore_env)root@master:/opt/mediacore-community#

berarti anda telah dapat melakukan installasi mediacore pythonnya. Dimana anda mendownloadnya sourcenya dengan menggunakan git dan simpan hasilnya di /opt

cd /opt
git clone git://github.com/mediacore/mediacore-community.git
cd mediacore-community
python setup.py develop

Setelah selesai proses setup, ada harus membuat database Mysql untuk mediacore:

mysql -u root -p
mysql> create database mediacore;
Query OK, 1 row affected (0.00 sec)

mysql> grant usage on mediacore.* to mediacore_user@localhost identified by 'mysecretpassword';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on mediacore.* to mediacore_user@localhost;
Query OK, 0 rows affected (0.33 sec)

mysql> exit;

Tahap selanjutnya adalah mengedit file deveploment.ini pada /opt/mediacore-community

nano /opt/mediacore-community/deveploment.ini

edit bagian :
sqlalchemy.url = mysql://mediacore_user:mysecretpassword@localhost/mediacore?charset=utf8&use_unicode=0

sesuaikan username dan password dan database mysql yang baru dibuat.

Setelah mengedit adalah membuat database sql nya dengan perintah

paster setup-app development.ini

selajutnya anda telah dapat menjalankan mediacore dengan menggunakan virtual environment python

paster serve --reload development.ini

selanjutnya buka browser ketik url localhot:8080

untuk masuk ke admin http://localhost:8080/admin

Streaming Server RTMP dengan Nginx

Nginx ( dibaca engine x ) adalah sebuah aplikasi http server yang saat ini mulai banyak digunakan untuk pembuatan webserver, bahkan dengan keamanan yang tinggi telah banyak layanan webserver menggunakan Nginx sebagai aplikasi http server nya. Namun ada yang menarik dari nginx ini yaitu, bahwa nginx ini dapat dijadikan server media streaming RTMP flash . Ya Nginx dengan tambahan module rtmp-nginx akan berubah fungsi menjadi server streaming RTMP.


Untuk membuat server streaming RTMP dengan nginx ini sangat mudah terutama bagi pengguna ubuntu :

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

selanjutnya anda dapat mendownload source code nginx dan source code rtmp-nginx module

wget http://nginx.org/download/nginx-1.4.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

setelah anda download, extract kedua file tersebut
tar -zxvf nginx-1.4.2.tar.gz
unzip master.zip

selanjutnya masuk kedirektori :
cd nginx-1.4.2

selanjutnya anda tinggal compile dengan perintah
./configure --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install

sudah selesai di compile dan install, edit file /usr/local/nginx/conf/nginx.conf
tambahkan text berikut

rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } }

bila sudah , jalankan aplikasi nginx :

sudo /usr/local/nginx/sbin/nginx
 
untuk memastikan apakah port 1935 pada nginx berfungsi , ketik
netstat -nltp

bila port 1935 tampil berarti sudah aktif Server Streaming RTMP dengan nginx . Selanjutnya kita membuat Live Streaming dengan menggunakan input film dengan codec h264/aac dengan menggunakan server streaming RTMP Nginx ini dengan menggunakan ffmpeg.

ffmpeg -i film.mpg -vcodec libx264 -s 426x240 -b:v 200k -acodec libfdk_aac -ar 22050 -ac 1 -b:a 16k -f flv rtmp://localhost/live/testing.mp4
Ok selanjutnya test live streaming tadi dengan aplikasi ffplay pada ffmpeg
ffplay rtmp://localhost/live/testing.mp4
kalau sudah jalan tinggal masukkan url rtmp tersebut di embeding Falsh Player pada web anda ...

USB Flash Disk Repository Ubuntu

Bagi anda yang memiliki jaringan Internet mungkin untuk menginstall aplikasi yang terdapat pada Linux Ubuntu mungkin sangat mudah anda cukup memasukkan alamat repositorynya. Nah bagaimana bila jaringan Internet yang anda miliki super LOLA ( Loading Lama) , atau barangkali untuk penetrasi penggunaan Linux di daerah pedalaman yang tidak terjangkau jaringan internet mungkin akan sulit untuk melakukan updating ataupun install aplikasi lain yang terdapat pada Ubuntu.


Sebenarnya untuk mempermudah proses repository tanpa jaringan internet bisa dilakukan yaitu dengan membangun server repository dalam Jaringan LAN ataupun LAN dengan Wireless, namun bila jaringan Wifi tidak sampai ke rumah itupun juga sulit. Untuk mengatasi itu tentunya ada alternatif yaitu dengan mendownload seluruh DVD Image Respository Ubuntu namun tentu harus memiliki koneksi yang besar , untuk ukuran Repository keseluruhan satu versi saja anda harus mendowload sebanyak lebih dari 52GB.

Nah untuk membantu anda, maka saya mencoba memberikan satu solusi yaitu menyediakan USB Flash Disk Repository Ubuntu, jadi anda tidak perlu menggunakan akses internet saat anda menginstall aplikasi linux yang berada di Ubuntu.

Saat ini saya hanya menyediakan USB Repository Ubuntu untuk:
  1. Ubuntu Versi 12.04
  2. Ubuntu Versi 12.10
  3. Ubuntu Versi 13.04
  4. Ubuntu Versi 13.10
Jadi dengan USB Flash Disk Repository ini anda dapat langsung menginstall aplikasi aplikasi linux pada ubuntu tanpa harus terkoneksi dengan jaringan Internet.

Sebenarnya untuk buat USB Flash Disk Repository sederhana saja , anda timggal mendowload Ubuntu Repository ISO, selanjunya  anda dapat mengekstrask seluruh ISO tersebut kedalam satu buah Flash disk. Dan untuk menggunakannya , anda tinggal memasukkan mounting media anda di repositories ubuntu /etc/apt/resources.list.

Live Streaming Full Linux (FFMPEG) di Galow IT Bojonegoro


Kegiatan Galow ( Gaul Ama Onno W Purbo ) IT di Bojonegoro, Minggu 11 Mei 2014 yang dihadiri lebih dari 600 peserta adalah kegiatan Seminar IT yang langsung dapat ditonton melalui layanan Live Streaming dengan menggunakan Teknologi Multiprotocol dan CDN ( Content Delivery Network ) dimana satu sumber dikirimkan secara estafet dari satu server ke server yang lain , diantaranya adalah pendistribusian streaming menuju Server Streaming yang berada di IIX jakarta, Server yang berada di US. Dan Server US mendistribusikan kembali menuju Server Youtube Live dan Ustream.


Live Streaming yang digunakan menggunakan Aplikasi FFMPEG sebagai encodernya dan menggunakan aplikasi NasrulMedia yang dikembangkan oleh saya sendiri dengan menggunakan dan memodifikasi Source Code CVS yang didapatkan di Helix Community dengan license RPSL ( Realnetworks Public Source License ) . Dan salah satu pengiriman Live Streaming ini menuju Youtube Live yang telah menjadi Ondemandnya disini.


Pada hari pelaksanaan Live Streaming ini disiarkan oleh beberapa website diantaranya adalah tvdialog.bojonegorokab.go.id , www.bojonegorokab.go.id, rtikbojonegoro.com dan www.galow-it.com .

Topologi Pendistribusian streaming yang digunakan adalah : Encoder Live Streaming FFMPEG berada di jaringan Lokal yaitu dengan IP 192.168.1.3 mengirimkan ke Server Streaming CDN yang berlokasi di Pendopo dengan IP 192.168.1.1 , dari sini Streaming dikirimkan ulang Menuju Server IP Publish satu yang berada di IIX dan satu lagi yang berada di US. Untuk penonton yang berlokasi di Indonesia mendapatkan pendistribusian Streaming dari Server Streaming yang berlokasi di IIX Jakarta, sedangkan Server Streaming CDN US mengirimkan kembali live streaming menuju Youtube Live dan Ustream. Sehingga Live streaming ini dapat disaksikan secara langsung dengan menggunakan 4 buah server yaitu 1 buah server di IIX Jakarta , 1 Buah Server di US, 1 buah Di Youtube live dan 1 lagi di Ustream.tv.

Sedikit Alay Boleh Kan ...


Gagal kembali ke Jakarta dengan BUS langsung kembali Ke Pendopo. Kayanya malam ini penyakit insomania bakal terus ada, gak tidur lagi padahal udah tiga hari lebih di Bojonegoro mata masih aja "Melotot" . Dari pada bengong bongkar ulang aplikasi sambil buat  proposal penawaran project untuk beberapa institusi swasta ( Ngamen ala orang IT ) soalnya harus nambahin dana transportasi untuk keliling sepeti jaman dulu. Travelling ala gembel jalanan . Jadi inget masa nongkrong di Malioboro, ngegembel jadi seniman. dan inget sama lagu ini . "Dan senja datang ...." lagunya Cyndi Claudia , jadi inget masih suka iseng nulis cerpen ketika masih ada majalan Anita Cemerlang dan Majalah Gadis.

Hm, ( Tarik nafas dulu ah ... ) rasanya baru aja kemarin masa itu datang, tapi kini harus kembali Traveling menikmati hidup dengan tetap terus mensyukuri apa yang diberikan oleh Illahi Rabbi. "Hanya Tuhan yang tahu apa yang kita pikirkan" rasanya itu yang terasa didalam benak ini. Berjalan dan terus berjalan dengan apa yang tengah ada didalam pikiran ini, tanpa harus menjadi manusia yang selalu protes dengan keadaan. Kekurangan ku adalah kelebihan yang telah ditetapkan Tuhan pada ku. Rasanya benar bila banyak orang bijak mengatakan "Di atas langit ada langit" semakin aku keluar, semakin kecil saja duniaku. Tak ada satupun yang dibanggakan dan tak ada satupun yang dapat dipamerkan. Semuanya hanya titipan sementara dan itu harus aku berikan kepada semua orang, biar mereka merasakan sesuatu yang lebih dari apa yang aku rasakan.

Malam ini jadi melo ( hehehe )...
Tahu kenapa  mungkin ini yang namanya "golek", Tuhan senang mainkan hati manusia karena kekuasaan-Nya ( Ya Muqallibul Qullub ) tapi ya nikmati saja. Enak gak enak ya harus menikmati karena semua perjalanan yang telah ada yang "mengatur" dan tidak ada satupun kejadian di muka bumi ini adalah karena "Kebetulan" tapi semua telah diatur dengan rapihnya untuk setiap manusia satu persatu.

Hari ini sebenarnya tak ingin bicara tentang "Streaming" aku lebih suka gaul dengan kawan-kawan dibelakang layar, tapi karena seorang tamu tidak hadir dan keinginan kawan panitia akhirnya harus turun juga walaupun aku takut semua cuma diam karena aku bukan pembicara yang hebat, bukan seorang orang IT yang handal, aku cuma tukang ngoprek yang senang dengan apa yang sedang terjadi didalam kepala ini. Mencari tahu dan terus mencari tahu, belajar dan terus belajar.

Aku ingin belajar dari seorang Anak kecil tentang sebuah kejujuran, aku ingin belajar dari orang Buta betapa terangnya hati, aku ingin belajar dengan orang cacat karena kekurangannya adalah kelebihannya, aku ingin belajar dengan orang Gagu agar aku dapat belajar menjaga mulut ini.

Belajar dan terus belajar hingga nyawa harus meninggalkan jasad yang hina ini. Kembali ke sisi Cahaya sang Pencipta. Dan disana sebenarnya hidup yang aku Cari ...  

Dukungan Input IP Camera RTSP di Helix Universial Media Server


Kini semakin lengkaplah Helix Universal Media Server benar-benar menjadi penguasa sistem Media Server Streaming di Dunia, karena pada bulan April 2014 yang lalu Realnetworks telah merilis kembali versi 15.1.2 dengan satu dukungan teknologi yang sangat ditunggu para pengguna Helix Universal Media Server, yaitu dengan tersedianya layanan secara langsung untuk memasukkan IP Kamera dengan protokol RTSP langsung di Trancode ulang menjadi :



  1. RTSP Live Streaming
  2. RTMP Live Streaming
  3. MPEGTS Live Streaming ( HLS )
  4. DASH Live Streaming
Teknologi yang diperkenalkan pada Release terbaru April 2014 ini adalah RTSP Ingest yaitu Helix Universal Media Server dapat langsung melakukan transcoding langsung IP Kamera. Dengan catatan Video dan Audio pada IP Kamera tersebut harus menggunakan Codec H264/AAC
Selain itu Fungsi tambahan lainnya yang terdapat pada Helix Universal Media Server adalah mampu menerima Multibitrate pendistribusian RTMP dengan menggunakan Flash Media Live Encoder :
Selain itu ada lagi kemampuan dari Release ini yaitu SMIL Scanning


Dan satu lagi Versi ini hanya didukung untuk OS Linux dan Solaris Saja.

Set Top Box RaspBerry PI dengan OpenELEC


Bila pada tulisan sebelumnya saya tuliskan sedikit pengalaman membuat Embedding Encoder Live Streaming FFMPEG dengan menggunakan Raspberry PI dan cara Cross Compile nya, kini sedikit saya tuliskan mengenai pembuatan Set Top Box nya dengan Raspberry PI. 


SetTopBox (STB) untuk Raspberry PI saya menggunakan OpenELEC, namun karena OpenELEC telah menyediakan Channel XML secara otomatis yaitu Youtube dan Channel yang lainnya jadi anda harus merombak dan memodifikasi  OpenELEC dan player pada OpenELEC menggunakan XBMC , jadi anda dapat langsung membangun XBMC untuk Raspberry PI anda dan langsung memasukkan secara default layanan Televisi Streaming anda.

Untuk mendevelop ulang OpenELEC dan XBMC akan saya tulis pada tulisan yang terpisah, namun pada tulisan kali ini saya hanya akan menuliskan cara membuat Set Top Box dengan Raspberry PI dengan menggunakan OpenELEC dan selenjutnya menambahkan url Televisi atau Radio streaming anda pada OpenELEC , terutama untuk jaringan Televisi atau IPTV di lingkungan terbatas.

Nah cara nya sederhana untuk menjalankan OpenELEC sebagai embeding Set Top Box pada Raspberry PI anda, anda tinggal mendownload IMG OpenELEC selanjutnya di Install Pada MMC Raspberry PI anda sebagai Boot Storage nya.

Cara install pada Linux sangat mudah terutama untuk Ubuntu :

wget http://mirror.jmu.edu/pub/openelec/OpenELEC-RPi.arm-3.2.4.tar
tar xvf OpenELEC-RPi.arm-3.2.3.tar
cd OpenELEC-RPi.arm-3.2.3
sudo ./create_sdcard /dev/sdX
(/dev/sdX adalah device MMC anda )

selanjutnya ketik
sync

Ok, berarti MMC anda sudah terpasang OpenELEC selanjutnya masukkan pada Raspberry PI anda , dan jalankan. Anda bisa menggunakan TV Analog anda pada input Video RCA , dan Masukkan kabel RCA dari TV Analog dari RCA Video TV ke Ouput RCA pada Raspberry PI anda. Jangan lupa masukkan kebal jaringan untuk mendapatkan koneksi.

FILE STREAMING RTMP DAN RTSP

Untuk anda yang ingin menyaksikan TV Streaming yang anda bangun sendiri terutama untuk Protokol RTMP yang biasa ditempatkan pada Embeding Flash Player pada website anda, anda tinggal membuat sebuah file kecil yang dapat anda simpan pada USB Flash Disk anda yang nantinya akan di putar pada Raspberry PI anda.

Anda cukup membuat sebuah file degan ektensi .strm contoh anda membuat file tvku.strm

nano tvku.strm

selanjutnya isilah file tersebut dengan alamat url streaming anda.

rtmp://xxx.xxx.xxx.xxx/live/namestreaming.mp4

kemudian simpan file tvku.strm , selanjutnya copy kedalam USB Flash Disk yang akan di gunakan di Raspberry PI OpenELEC anda.

Selanjutnya setelah anda memasukkan USB Flash Disk pada Raspberry PI OpenELEC anda file tvku.strm tinggal anda klik.

Cross Compile FFMPEG di Ubuntu 12.04 keatas


Pada tulisan sebelumnya tentang Raspberry PI menjadi Embedding Encoder Live Encoder dengan FFMPEG. Nah pada tulisan lanjutan ini  akan menjelaskan bagaimana mengcompile FFMPEG untuk Raspberry PI  dengan teknik Cross Compile , yaitu mengcompile FFMPEG untuk mesin ARM di PC Komputer X86/X64.


Yang kita butuhkan untuk Cross Compile tentunya adalah compiler ARM, nah bagi anda pengguna Ubuntu 12.04 keatas dukungan Compiler GCC ARM telah tersedia jadi anda tinggal menginstallnya saja di ubuntu anda 

sudo apt-get install arm-linux-gnueabi

Ok setelah anda install compiler ARM tahap selanjutnya adalah mengcompile codec video dan audio yang dibutuhkan oleh FFMPEG. Namun sebelumnya buatlah terlebih dahulu sebuah direktori untuk menyimpan hasil Cross Compile anda contoh 

mkdir /opt/arm-ffmpeg

dan sumber source yang akan di Cross Compile

mkdir /opt/sumber-arm-ffmpeg

CODEC AUDIO AAC

Untuk cross compile Codec Audio AAC :

cd /opt/sumber-arm-ffmpeg
wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz
tar -xzf libaacplus-2.0.2.tar.gz
cd libaacplus-2.0.2
./autogen.sh --with-parameter-expansion-string-replace-capable-shell=/bin/bash --host=arm-linux-gnueabi --enable-static --prefix=/opt/arm-ffmpeg
make
make install

LIBALSA

Libalsa dibutuhkan untuk input Suara :

cd /opt/sumber-arm-ffmpeg
wget http://mirrors.zerg.biz/alsa/lib/alsa-lib-1.0.25.tar.bz2
tar xjf alsa-lib-1.0.25.tar.bz2
cd alsa-lib-1.0.25/
./configure --host=arm-linux-gnueabi --prefix=/opt/arm-ffmpeg
make
make install

CODEC VIDEO LIBx264

Untuk cross compile Codec Video H264 :

cd /opt/sumber-arm-ffmpeg
git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-linux-gnueabi --enable-static --prefix=/opt/arm-ffmpeg --extra-cflags='-march=armv6' --extra-ldflags='-march=armv6'
make
make install


CROSS COMPILE FFMPEG

cd /opt/sumber-arm-ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --enable-cross-compile  --arch=armel --target-os=linux --prefix=/opt/arm-ffmpeg --enable-gpl --enable-libx264 --enable-nonfree --enable-libaacplus --extra-cflags="-I/opt/arm-ffmpeg/include" --extra-ldflags="-L/opt/arm-ffmpeg/lib" --extra-libs=-ldl  --enable-libiec61883
make
make install

Nah bila telah selesai, anda tinggal mencopy file binary ffmpeg, ffplay, ffserver yang berada di /opt/arm-ffmpeg/bin dan copy kedalam MiniBian pada raspberry PI anda.

Bila sudah , anda tinggal jalankan Encoder live streaming dengan kamera melalui input dengan IEEE 1394 yaitu IEC61883.

Encoder Live RaspBerry PI dengan FFMPEG


Dua tahun mengenal perangkat Embeding system Raspberry PI, salah satu project yang pernah dioprek adalah sebagai Set Top Box IPTV  dan Encoder Live RTMP.  Project Embeding System oprekan selama lebih dua tahun ini sebenarnya sanag sederhana karena seluruhnya menggunakan sistem Open Source , jadi toh bagi anda yang membutuhkan perangkat Encoder Live Streaming yang mini dengan menggunakan perangkat Firewire sebagai input Video.


Sebenarnya bisa saja menggunakan Video Capture Card USB , namun terkadang seringkali terjadi Drop power pada saat menggunakan input USB Video Capture jadi alternatif yang terbaik sebagai input Video adalah dengan menggunakan FireWire ieee 1394 , namun karena di Raspberry PI tidak tersedia socket IEEE 1394 , anda membutuhkan converter USB to Firewire 4x

Nah dengan converter ini maka Input Video dari Firewire IEEE 1394 akan dapat bekerja di konektor USB Raspberry Anda. Namun bila anda menggunakan Converter ini maka anda membutuhkan kabel Firewire 4x IEEE 1394 untuk menghubungkan kamera anda dengan input  Firewire Converter ini. Nah ada cara lain yang lebih simpel yaitu dengan menggunakan kabel Firewire 4x IEEE 1394 to USB

Selanjutnya kebutuhan live streaming dengan menggunakan perangkat Embedding System Rapberry ini adalah tentunya kamera yang memiliki ouput FireWire 

Nah perangkat Live Streaming siap digunakan dan yang dibutuhkan pada Raspberry PI anda adalah OS Linux , anda dapat menggunakan Distro Raspbian Mini ( Minibian ) yaitu Distro Debian Minimal untuk Raspberry PI. MiniBian ini adalah Distro Debian Raspberry PI non GUI jadi agak kecil ukurannya , dan tentu saja karena aplikasi FFMPEG juga bekerja pada text command jadi sangat cocok menggunakan MiniBian untuk Embeding System Encoder Live Rapberry PI dengan FFMPEG.

Tahap selanjutnya adalah memasukkan IMG dari Minibian kedalam MMC Card yang dijadikan sebagai boot storage pada Raspberry PI. Bagi pengguna Linux untuk mencopy MiniBian ke MMC silahkan anda mengikuti petunjuk berikut ini .

Nah bila selesai , anda bisa menjalankan dan mengaktifkan Raspbery anda jangan lupa masukan Kabal Jaringan LAN anda , sehingga anda dapat menjalankan secara remoting dengan ssh client.

Setelah anda mengaktifkan Raspberry PI dan jaringan dimasukkan kedalam akses point , anda dapat mencek ip dari raspberry pi anda pada DHCP Client List pada Akses point anda. Bila sudah dapat IP nya anda tinggal meremote Raspberry MiniBian anda. Dan selanjutnya adalah membuat FFMPEG .

Nah untuk FFMPEG jangan menggunakan aplikasi paket FFMPEG yang telah tersedia karena belum tersedia module IEEE 1394 pada FFMPEG jadi anda harus mencompile Ulang FFMPEG sebelum anda copykan dan anda jalankan di Raspberry PI . Namun ingat karena Raspberry PI adalah processor ARM , jadi anda harus melakukan Cross Compiler FFMPEG yang anda butuhkan untuk Live Streaming pada Raspberry PI anda.

Cross Compiler FFMPEG ARM akan dijelaskan pada tulisan selanjutnya pada blog ini.

Intinya bahwa anda, terutama bagi Stasiun Televisi Lokal yang ingin Live Streaming dengan alat Encoder Mini dengan menggunakan Raspberry PI dapat anda membangun sendiri seluruh nya dengan basis OPEN SOURCE.

Encoder Live RTMP dengan FFMPEG di Linux (Bag II)


LIVE DENGAN V4L2

Live streaming yang pertama adalah dengan menggunakan  Module V4L2 ( Video For Linux Versi 2 ), untuk input video yang dapat digunakan adalah dengan menggunakan Video Capture dengan menggunakan TV Tunner ataupun USB Card Video Capture  atau UVC Camera. Untuk Mengetahui Video Capture yang support dengan Module V4L2 adalah:
Vendor Headquarters Analog Digital
3Dfx Interactive U.S. Yes ✘ No
ADS Tech Taiwan Yes Yes
Anysee Korea
Yes
AOpen Taiwan Yes Yes
Artec Taiwan ✘ No Yes
ASUS Taiwan Yes Yes
ATI/AMD Canada/U.S. Yes Yes
AVerMedia Taiwan Yes Yes
BBTI U.S. ✘ No Yes
Blackgold G.B. Yes Yes
Compro Technology U.S. Yes Yes
Digital Everywhere Austria ✘ No Yes
DVBWorld China ✘ No Yes
DViCO Korea Yes Yes
Elgato Germany Yes Yes
Encore U.S Yes Yes
Fission Taiwan ✘ No Yes
Fujitsu Siemens Netherlands
Yes
Galaxis Technology AG Germany


Geniatech/MyGica China Yes Yes
Hama Germany
Yes
Hauppauge U.S. Yes Yes
KNC1 Germany Yes Yes
KWorld Taiwan Yes Yes
Leadtek Taiwan Yes Yes
LifeView Taiwan Yes Yes
Linux4Media Germany ✘ No Yes
Magic Pro Hong Kong Yes Yes
Matrox Canada Yes  ?
Medion U.S. Yes

Miglia ? Unknown
Yes
MSI Taiwan Yes Yes
Nebula U.K.
Yes
NEOTION France


PC-Basic France Yes Yes
pcHDTV U.S. ✘ No Yes
Pinnacle U.S. Yes Yes
Pixelview Taiwan Yes Yes
Plextor Japan


Prof China ✘ No Yes
Satelco Germany
Yes
Siano Mobile Silicon Israel ✘ No Yes
Siemens Germany
Yes
SIGMACOM Korea Yes Yes
Skydigital Korea
Yes
STB Systems
Yes ✘ No
Sundtek Germany Yes Yes
TBS China
Yes
TechniSat Germany
Yes
TechnoTrend Germany
Yes
TerraTec Germany Yes Yes
TwinHan Technology Co. Ltd Taiwan Yes Yes
USBGear U.S. Yes Yes
V-Gear
Yes

VBox Israel Yes Yes
Wayjet Technology Inc Taiwan
Yes
X3M digital S.A. Poland Yes Yes


Jika anda menggunakan Video Capture sesuai dengan Daftar Support Hardware untuk module V4L2 ini berarti anda dapat melakukan proses live streaming dengan Menggunakan Kamera Profesional ataupun kamera yang lainnya yaitu yang memiliki Output RCA , selajuntnya output RCA pada kamera dimasukkan pada Input Video yang terdapat pada Video Capture anda.

Untuk proses Live Streamingnya sederhana, anda cukup mengetikkan perintah sebagai berikut :

ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -s 320x240 -b:v 200k -f flv rtmp://xxx.xxx.xxx.xxx/live/namestream.mp4

proses diatas atas adalah melakukan mengencode sumber pada Video di /dev/video0 dengan format V4L2 yang dirubah menjadi video digital dengan Codec Video LIBX264 dengan ukuran screen 320x240  dan bitrate sebesar 200Kb menuju server streaming RTMP xxx.xxx.xxx.xxx dengan nama streaming namestream.mp4

Untuk melihat hasilnya anda dapat menggunakan aplikasi FFPLAY yang terdapat pada aplikasi FFMPEG , dengan perintah

ffplay rtmp://xxx.xxx.xxx.xxx/live/namestreaming.mp4

bila berhasil anda tinggal memasukkan url rtmp://xxx.xxx.xxx.xxx/live/namestreaming.mp4 pada web dengan menggunakan embeding flash player.

MODULE DV (DIGITAL VIDEO) IEEE 1394

Input Video selanjutnya selain V4L2 pada linux adalah input dengan menggunakan Fire Wire IEEE 1394 atau dikenal dengan input FireWire DV ( Digital Video ). 

Pada Komputer anda yang akan dijadikan PC Encoder harus memiliki input Firewire IEEE 1394 seperti gambar berikut :

dan pada kamera yang akan dipakai sebagai sumber Live Streaming harus memiliki output Firewire ( 4x ) IEEE 1394  seperti gambar berikut :





untuk menggunakan module IEEE 1394 anda harus mengkompile ulang FFMPEG anda namun anda harus menginstall file DEV yang dibutuhkan yaitu:

sudo apt-get install libraw1394-dev libiec61883-dev libavc1394-dev
cd ~/sourceffmpeg
cd ffmpeg
sudo make clean
/configure --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-libiec61883

make 
sudo make install 
sudo make distclean 
hash -r 

setalh dikompile anda dapat melakukan live streaming dengan menggunakan module IEEE 1394 dengan perintah

ffmpeg -f iec61883 -i auto -vcodec libx264 -s 320x240 -b:v 200k -f flv rtmp://xxx.xxx.xxx.xxx/live/namestream.mp4

dan untuk melihat hasilnya anda dapat menggunakan aplikasi FFPLAY yang ada pada FFMPEG 

ffplay rtmp://xxx.xxx.xxx.xxx/live/namestream.mp4

INPUT SUARA DENGAN ALSA

Bila dua bagian diatas adalah penjelasan mengenai input Video untuk Live Streaming selanjutnya untuk sumber suara anda dapat menggunakan module Alsa ,sehingga live streaming anda adalah Video dan audio.
Untuk mengambil input suara dari sound card anda dengan module alsa ini anda cukup menambahkan perintah
-f alsa -i hw:0
jadi bila digabungkan adalah :
untuk Video V4L2

ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:0 -vcodec libx264 -s 320x240 -b:v 200k -acodec libfdk_aac -ar 22050 -ac 1 -b:a 16k -f flv rtmp://xxx.xxx.xxx.xxx/live/namestream.mp4.

sedangkan untuk IEEE 1394


ffmpeg -f iec61883 -i auto -f alsa -i hw:0 -vcodec libx264 -s 320x240 -b:v 200k -acodec libfdk_aac -ar 22050 -ac 1 -b:a 16k -f flv rtmp://xxx.xxx.xxx.xxx/live/namestream.mp4

Encoder Live RTMP dengan FFMPEG di Linux ( Bag I )

FFMPEG adalah salah satu aplikasi multimedia yang bersifat open source dan terlengkap, banyak aplikasi pengaturan dan produksi untuk Video dan Audio menggunakan aplikasi FFMPEG sebagai engine yang dipergunakan untuk melakukan proses pengolahan Video dan Audio. Salah satu keunggulan dari FFMPEG saat ini adalah mampu dijadikan sebagai aplikasi encoder sistem yang bersifat Live dengan menggunakan protokol RTMP.


Penggunaan Encoder Live RTMP dengan FFMPEG ini ada dapat digunakan untuk membuat layanan Live Streaming berbasis Linux untuk server Red 5 , Flash Media Server ataupun Helix Universal Media Server dan NasrulMedia Server, Wowza Media Server. Ataupun layanan Streaming berbasis Flash , seperti Justin TV, Livestream, Youtube Live dan layanan streaming video lainnya.

Untuk para pengguna Linux yang akan melakukan Live Streaming dengan encoder live RTMP menggunakan FFMPEG maka proses pertama adalah melakukan kompile aplikas FFMPEG terlebih dahulu karena jika kita menggunakan paket FFMPEG Binari yang telah ada baik untuk Paket Linux RPM maupun DEB ataupun TGZ ada beberapa Codec yang tidak dapat dijalankan terutama untuk Codec Video H264 dan Audio AAC. Jadi proses pertama kali adalah dengan melakukan Meng-Compile  FFMPEG dengan menggunakan codec yang kita butuhkan yaitu Video H264, Audio AAC dan Mp3 , Video VP8 dan yang lainnya. 

Untuk Mencompile FFMPEG terlebih dahulu update paket compiler , bagi para pengguna Debian ataupun ubuntu dan Distro berbasis paket DEB anda dapat menginstall aplikasi Compiler Developer dengan perintah :
# sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
Selanjutnya buatlah direktori untuk mempermudah compile aplikasi FFMPEG 

# mkdir ~/sourceffmpeg

Proses selanjutnya adalah mengcompile library audio dan video yang dibutuhkan oleh FFMPEG

YASM LIBRARY

Mengcompile Library YASM yang dibutuhkan untuk mengcompile Library Codec Video dan Audio . Untuk mengcompile Library YASM proses yang dilakukan adalah :
 
cd ~/sourceffmpeg
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz 
tar xzvf yasm-1.2.0.tar.gz 
cd yasm-1.2.0 
./configure  
make 
sudo make install 
sudo make distclean 

LIBX264 UNTUK VIDEO CODEC H264

Selanjutnya adalah mengcompile Library untuk Codec Video H264 . Proses yang dilakukan adalah :

cd ~/sourceffmpeg 
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 
tar xjvf last_x264.tar.bz2 
cd x264-snapshot* 
./configure --enable-static 
make 
sudo make install 
sudo make distclean

LIBFDK-AAC UNTUK CODEC AUDIO AAC

Proses selanjutnya adalah mengcompile Library untuk Codec Audio AAC. Proses yang dilakukan adalah :

cd ~/sourceffmpeg 
wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zip 
cd mstorsjo-fdk-aac* 
autoreconf -fiv 
./configure --disable-shared 
make 
sudo make install 
sudo make distclean

LIBMP3LAME UNTUK CODEC AUDIO MP3

Selanjutnya adalah Library untuk Codec Audio MP3. Prose compile yang dilakukan adalah :

Install terlebih dahulu aplikasi nasm
sudo apt-get install nasm

cd ~/sourceffmpeg 
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz 
tar xzvf lame-3.99.5.tar.gz 
cd lame-3.99.5 
./configure --enable-nasm --disable-shared 
make 
sudo make install 
sudo make distclean
 
LIBOPUS UNTUK CODEC AUDIO OPUS

Selanjutnya adalah Library untuk Codec Audio OPUS, prose compile yang dilakukan adalah :

cd ~/sourceffmpeg 
wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz 
tar xzvf opus-1.1.tar.gz 
cd opus-1.1 
./configure --disable-shared 
make 
sudo make install 
sudo make distclean

LIBVPX UNTUK CODEC VIDEO WEBM (VP8/VP9)

Untuk proses compile Libvpx untuk Library Codec Video WebM adalah:
cd ~/sourceffmpeg 
wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2 
tar xjvf libvpx-v1.3.0.tar.bz2 
cd libvpx-v1.3.0 
./configure --disable-examples 
make 
sudo make install 
sudo make clean

COMPILE FFMPEG

Setelah anda mengcompile seluruh Library yang dibutuhkan, selanjutnya adlaah mengcompile aplikasi FFMPEG dengan proses sebagai berikut :

cd ~/sourceffmpeg
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 
tar xjvf ffmpeg-snapshot.tar.bz2 
cd ffmpeg 
./configure --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab 
make 
sudo make install 
sudo make distclean 
hash -r 

Setelah seluruh proses dilakukan berarti anda siap menggunakan aplikasi FFMPEG sebagai encoder Live RTMP
ketik
ffmpeg
 



Workshop IPTV ( TV Digital IP Multicast ) dan Video Call Sekolah untuk Pelajar SMK TKJ Se-Pemalang

Setelah ngoprek bareng dengan KPLI Bogor selama 2 minggu tentang membangun Televisi Internet dan IPTV pada bulan November 2013. Selanjutnya setelah penerapan dan implementasi sistem Media Server Nasrulmedia di beberapa perusahaan swasta di Jakarta, serta pembangunan Prototype IPTV sekolah dan Video Call Sekolah di SMK Negeri Rajapolah Tasikmalaya, serta Uji coba live streaming pada acara Ubuntu Party di Tegal yang diselenggarakan oleh Poltek Tegal dan KPLI Tegal pada tanggal 24 April 2014 serta Uji coba Live Streaming menggunakan aplikasi Media Server Streaming NasrulMedia di Fakultas Ekonomi Universitas Negeri Jakarta pada tanggal 2 Mei 2014 pada acara FEUNJ Expo, kini  pengembang aplikasi Media Server Streaming berbasis Operasi Sistem Linux ini kembali diundang untuk mengisi kegiatan Workshop IPTV ( TV Digital IP Multicast ) dan Video Call Sekolah yang diperuntukkan bagi Pelajar SMK bidang keahlian Teknik Komputer Jaringan se-Pemalang yang diselenggarakan oleh IMPP ( Ikatan Mahasiswa Pelajar Pemalang) jakarta dan Pemalang TV Online.


Kegiatan Workshop ini akan diselenggarakan pada hari kamis sampai dengan Minggu tanggal 19-21 Juni 2014. Penyelenggaraan Workshop ini didasari oleh telah masuknya Mengadministrasi Server Streaming dan sistem VOIP masuk pada silabus Kurikulum 2013 SMK Bidang Keahlian Teknik Komputer Jaringan.

Workshop yang dilaksanakan ini sepenuhnya akan menerapkan konsep praktek secara keseluruhan seperti yang telah di laksanakan pada prototype IPTV Sekolah dan Video Call Sekolah di SMK Negeri Rajapolah Tasikmalaya Jawa Barat. Dimana selluruh peserta yang merupakan wakil dari setiap SMK TKJ di wilayah Kabupaten Pemalang harus dapat menghasilkan server Media Streaming , IPTV dan Video Call yang nantinya dapat diterapkan pada lingkungan Jaringan Lokal Sekolah.

Materi yang di Workshopkan adalah :
  1. Pengetahuan Tentang Codec Video dan Audio dan Protokol Pendistribusian Streaming Video Audio berbasis IP .
  2. Pengetahuan dan Pembangunan Layanan Distribusi Streaming dengan Menggunakan aplikasi open Source Red 5
  3. Pengetahun dan Pembangunan layanan Distribusi Streaming dengan menggunakan aplikasi NasrulMedia berbasis Operasi Sistem Linux.
  4. Membangun layanan Televisi Streaming dalam lingkup terbatas dengan Konten Live dan on demand dengan menggunakan aplikasi open source FFMPEG dan VLC
  5. Membangun layanan Video Call dalam Lingkup Jaringan Terbatas Lingkukan Sekolah dengan menggunakan aplikasi Open Source OpenSIP yaitu Kamailio SIP.  Dan aplikasi Client Berbasis Android.
Agar target kegiatan ini mencapai hasil secara maksimal  maka peserta yang berasal dari tiap SMK TKJ di pemalang diharapkan membawa perlengkapan sebagai berikut :

  1. 1 unit PC Desktop 64 Bit , minimal Memory 2 Gb.
  2. 1 Unit Monitor.
  3. 1 Unit Laptop ( Note Book ) .
  4. 1 Unit Akses Point.
  5. Kabel UTP dan Conector RJ45 secukupnya.
  6. Modem Koneksi Internet.
Pada kegiatan yang akan dilaksanakan ini secara penuh Operasi Sistem yang akan digunakan adalah menggunakan Operasi Sistem Linux yaitu :
  1. Distro Debian 64 Bit
  2. Distro Ubuntu 32 dan 64 Bit 
Untuk informasi mengenai kegiatan ini langsung saja menghubungi Penyelanggara yaitu  IMPP Jakarta dan Pemalang TV yaitu :

085867035034 (burhan)
08978245819 (faruk)
IMPP Jakarta

Contact Us

Phone :

+6285743848604

Address :

Perumahan Green Citayam City Blok AA 10 No 1,
Bogor

Email :

me@andrijohandri.id