Daftar Isi :
Apa Itu Streaming Server
Kamu akan membuat radio streaming server dimana server mu akan didedikasikan khusus untuk menyediakan konten multimedia baik secara live stream ataupun on-demand,front end nya biasanya menggunakan web interface.
Streaming server merupakan bentuk stasium pemancar radio virtual yang menggunakan jaringan internet berbasis TCP/IP untuk menyampaikan content multimedia ke pemirsa.
Cara Kerja Streaming Server
Streaming server bekerja seperti tower pemancar radio pada umunya yaitu dengan membrodcast /relay siaran dari source/feed .
Bedanya dengan tower di real world menggunakan gelombang radio untuk memancarkan siaran sedangkan pada streaming server menggunakan jaringan internet berbasis IP untuk broadcasting content multimedia.
source /feed bisa berupa file mutimedia ,microphone atau gabungan dari keduanya untuk melakukan broadcast live atau on-demand , feed/source bisa berada jauh dari lokasi server dan menggunakan jaringan internet untuk mengirim broadcast ke streaming server
Feed/Source : Sumber dari siaran streaming, bisa berupa mic atau file multimedia seperti mp3 atau video.
Streaming server : berfungsi sebagai broadcaster yang mengantarkan multimedia content ke listener/client/pemirsa
Manfaat Membuat Radio Streaming server
Secara umum streaming server berguna untuk menyiarkan content multimedia secara live atau on-demand menggunakan jaringan internet,sehingga siaran dapat dinikmati kapanpun dan dimanapun dengan menggunakan berbagai macam device yang terhubung ke internet,mulai dari smartphone,PC,laptop,smart tv dll.
Tetapi dalam tutorial kali ini saya secara pribadi membuat streaming server ini untuk tujuan yang spesifik, dimana menjadikan streaming server untuk sumber music yang akan di play di semua cabang toko /swalayan tempat saya bekerja, sehingga disemua toko /cabang swalayan akan memainkan music yang sama. karena menggunakan jaringan internet maka server bisa diakses dari cabang manapun.
Cara Install Icecast Radio Streaming Server
Icecast menjadi pilihan favorit saya,karena kita bisa menginstall streaming server di komputer windows dan Linux dan yang paling utama adalah gratis 100%, berikut cara membuat streaming server dengan icecast.
Untuk membuat radio streaming server Silakan download icecast di website official http://icecast.org/download/ sesuaikan sistem operasi yang akan digunakan, untuk linux agar penginstallan lebih mudah maka gunakan saja package manager (apt ,yum,pacman)
Installasi Icecast radio streaming server di Linux
icecast sudah tersedia di semua repository linux untuk menginstall gunakan perintah:
sudo apt-get install icecast2
(untuk apt)
sudo yum install icecast.x86_64
(untuk RHEL)
sudo pacman -S icecast
(untuk arch-family)
Mengontrol Service
ketika kamu selesai menginstall, icecast tidak otomatis berjalan ,untuk memanage nya kamu bisa menggunakan perintah :
sudo systemctl start icecast.service
(untuk menjalankan service daemon)
sudo systemctl stop icecast.service
(untuk menghentikan service daemon)
sudo systemctl restart icecast.service
(untuk merestart service daemon)
Installasi icecast radio streaming server di Windows
Install seperti mengisntall aplikasi biasa dengan klik double pada file yang telah kamu download tadi dan ikuti petunjuknya.
untuk menjalankan aplikasi kamu perlu membuka folder installasi icecast " c:\program Files\Icecast"
dan jalankan icecast.bat
Setting Konfigurasi Icecast Radio streaming server
Saat membuat radio streaming server, jangan jalankan service icecast sebelum kamu merubah konfigurasi default . Untuk Linux edit konfigurasi dengan perintah sudo nano /etc/icecast.xml
dan untuk windows edit file icecast.xml yang berada di folder installasi icecast menggunakan text editor favoritmu
Rubah pada bagian penting berikut ini ,abaikan yang lain dulu . Pada bagian hackme dan admin silakan ganti sesuai dengan yang kamu inginkan. Pada bagian <hostname> isikan domain atau IP server.
<authentication> <!-- Sources log in with username 'source' --> <source-password>hackme</source-password> <!-- Relays log in username 'relay' --> <relay-password>hackme</relay-password> <!-- Admin logs in with the username given below --> <admin-user>admin</admin-user> <admin-password>hackme</admin-password> </authentication>
untuk panduan lengkap nya kamu bisa membaca dokumentasi di official icecast website http://icecast.org/docs/icecast-2.4.0/config-file.html
Setelah setingan default dirubah,jalankan icecast dengan klik double pada file icecast.bat untuk windows atau menggunakan command sudo systemctl start icecast.service
untuk linux.
Icecast Web Panel
untuk mengakses web panel gunakan protocol http ke ip /host name icecast diinstal ditambahkan dengan port 8000 secara default misal :
http://192.168.2.6:8000
jika telah ada feed /source yang telah terkonek ke icecast server maka otomatis akan ter list di bagian server status, tab administration digunakan untuk memanage streaming feed yang terkoneksi (gunakan username dan password yang telah kita set sebelum nya di file icecast.xml untuk login)
icecast radio streaming server bisa menerima streaming feed dari multiple source,asalkan mount point yang digunakan tidak sama.Mount point diset pada aplikasi streaming feed/source. jika ingin menggunakan source lebih dari 2 baiknya kamu mengubah isi file icecast.xml pada bagian <sources> dan isikan berapa jumlah maximal soure yang bisa dihandle,karena secara default hanya 2.
<Limits>
<clients>100</clients>
<sources>2</sources>
Install dan Setting Penyiar
(Streaming Radio feed/source)
Streaming feed /source bertindak sebagai sumber siaran /broadcasting/streaming ,feed /source bisa berada jauh dari lokasi server dengan memanfaatkan koneksi internet /LAN untuk konek ke server. PC atau laptop bisa menjadi streaming feed selama bisa terkoneksi ke server menggunakan aplikasi yang didukung icecast,Ada beberapa aplikasi feed /source yang didukung oleh icecast, saya akan membahas 2 saja yang populer.
Menggunakan Edcast radio streaming feed
ada 2 jenis edecast,stand alone dan plugin untuk winamp, stand alone bisa digunakan tanpa harus membuka winamp sedangkan plugin hanya bisa digunakan jika kamu menggunakan winamp.
Aplikasi edcast baik yang standalone atau plugin memerlukan microsoft Visual C++ 2005 Redistribute agar bisa berjalan, dan jika tidak terinstall Visual C++ 2005 Redistribute maka pada plugin winamp akan tampil pesan winamp plugins edcast NOT_LOADED
Cara install Edcast radio streaming feed
1.Download Edcast bundle
Sengaja saya kumpulkan dan paketkan semua aplikasi yang diperlukan agar streaming feed/source diinstall dan berjalan dengan lancar di komputermu, di dalam paket ini terdapat edcast standalone,plugin,lame encoder,winamp v.5666,dan icecast untuk windows.
2.Install winamp ,_vcredist_vs2005sp1_x86 dan install edcast (pilih stand alone atau plugin)
3.Kopikan file lame_enc.dll ke directory winamp (c:\program Files\Winamp atau c:\program files(x86)\winamp) , atau jika kamu menggunakan versi standalone maka kopikan lame_enc.dll ke directory edcast diinstall (c:\program Files\edcast atau c:\program files(x86)\edcast)
4.Buka Winamp > Option >preferences >plug-ins >DSP/Effect>klik pada edcast DSP v3 ,pastikan plugin edcast telah diload dengan ditandai tulisan dsp_edcast.dll disebelah kanan nya.
5.Edcast biasanya akan terbuka otomatis kotak dialog edcast,jika belum maka klik pada configure active plug-in atau bisa dengan mengklik logo 3 pada tray menu untuk merestore kotak dialog edcast.
6.Pada bagian basic settings rubah bagian encoder type menjadi MP3 Lame,Server IP diisi dengan hostname atau ip dari server icecast ,server type pilih icecast,server port sesuaikan dengan port yang telah kamu konfigurasi pada icecast.xml ,encoder password adalah password yang kamu telah set pada file icecast.
xml di bagian <source-password>, Mount point diisi bebas dan harus diawali dengan garis miring,karena ini akan menjadi URL untuk mengakses streaming mu.
7.YP setting diisi dengan informasi streaming , stream URL disesuaikan dengan IP port dan mount point yang kamu gunakan ,karena nantinya akan ditampilkan di icecast web panel
8.klik OK lalu connect untuk memulai stream, jika status nya diskonek /gagal konek maka periksa kembali informasi yang dimasukan pada tab basic setting (langkah 6) telah benar sesuai dengan konfigurasi icecast server.
Tambahan
Install Null_output_plugin.exe jika kamu menggunakan komputer tanpa soundcard (misal server/vps) untuk menipu winamp agar tetap bisa berjalan tanpa soundcard. set pada bagian output ke N.O.P (Null output plugin )v0.1(x86) pada menu option >preferences>Plug-ins >Output
Menggunakan BUTT (Broadcast Using This Tool) radio streaming feed
Jika kamu menggunakan aplikasi pemutar music selain winamp atau menggunakan OS selain Windows maka kamu bisa menggunakan Butt sebagai aplikasi streaming source.
Butt memberikan flexibilitas input untuk streaming,yang perlu diingat adalah butt menggunakan soundcard hardware dan driver yang ada di komputermu untuk menangkap audio,jadi jika audio driver atau hardware kamu tidak lengkap maka tidak bisa memenuhi apa yang kamu inginkan.
Cara install Butt di Windows
1.download butt official server dan install seperti biasa
Cara install Butt di Windows
lakukan seperti biasa klik next sambil merem juga bisa ya ^_^ .
Cara install Butt di Linux
Pastikan linux kamu sudah mempunyai dependencies fltk-1.3, portaudio, libmp3lame, libvorbis, libogg, libFLAC, libopus, libsamplerate, libfdk-aac , jika belum maka install terlebih dahulu menggunakan package manager linux kalian . untuk ubuntu sudo apt-get install libfltk1.3-dev portaudio19-dev portaudio19-dev libmp3lame-dev libvorbis-dev libogg-dev libflac-dev libopus-dev libsamplerate0-dev libfdk-aac-dev
1.Download butt di official server dan pilih Source Code (tar.gz)
2.Masuk ke directory dimana kamu download file tadi dengan perintah cd /directory/kamu/download
3.Extract dengan perintah tar -xvf butt-0.1.15.tar.gz
4. Masuk ke directory hasil extract cd butt-0.1.15
5.Configure dengan perintah ./configure
Jika hasilnya berakhir error seperti dibawah ini ,dan terlihat bahwa c++ compiler belum terinstall.maka install g++ compiler terlebih dahulu dengan perintah sudo apt-get install g++
(jika menggunakan package manager lain harap disesuaikan sendiri baik untuk yum /pacman) dan jalankan ulang ./configure
masarie@DeserT ~/butt-0.1.15 $ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes /home/masarie/butt-0.1.15/missing: Unknown `--is-lightweight' option Try `/home/masarie/butt-0.1.15/missing --help' for more information configure: WARNING: 'missing' script is too old or missing checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for g++... no checking for c++... no checking for gpp... no checking for aCC... no checking for CC... no checking for cxx... no checking for cc++... no checking for cl.exe... no checking for FCC... no checking for KCC... no checking for RCC... no checking for xlC_r... no checking for xlC... no checking whether the C++ compiler works... no configure: error: in `/home/masarie/butt-0.1.15': configure: error: C++ compiler cannot create executables See `config.log' for more details
5.jika diakhir proses tanpa error sama sekali maka lannjutkan dengan mengetikan perintah make
checking for inline... inline checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for gethostbyaddr... yes checking for gethostbyname... yes checking for memset... yes checking for pow... no checking for select... yes checking for socket... yes checking for strchr... yes checking for strdup... yes checking for strpbrk... yes checking for strrchr... yes checking for strstr... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands masarie@DeserT ~/butt-0.1.15 $ make
6. dilanjutkan dengan perintah sudo make install
untuk menginstall butt ke sistem
lude -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/Fl_My_Native_File_Chooser.o -MD -MP -MF $depbase.Tpo -c -o FLTK/Fl_My_Native_File_Chooser.o FLTK/Fl_My_Native_File_Chooser.cxx &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo FLTK/fl_timer_funcs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/fl_timer_funcs.o -MD -MP -MF $depbase.Tpo -c -o FLTK/fl_timer_funcs.o FLTK/fl_timer_funcs.cpp &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo aac_encode.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT aac_encode.o -MD -MP -MF $depbase.Tpo -c -o aac_encode.o aac_encode.cpp &&\ mv -f $depbase.Tpo $depbase.Po g++ -g -O2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -L/usr/local/lib -o butt butt.o cfg.o icecast.o lame_encode.o parseconfig.o port_audio.o ringbuffer.o shoutcast.o sockfuncs.o strfuncs.o timer.o util.o vorbis_encode.o vu_meter.o wav_header.o opus_encode.o flac_encode.o FLTK/Fl_ILM216.o FLTK/fl_callbacks.o FLTK/fl_funcs.o FLTK/flgui.o FLTK/Fl_My_Native_File_Chooser.o FLTK/fl_timer_funcs.o aac_encode.o -lfdk-aac -lsamplerate -lpthread -lportaudio -lFLAC -lmp3lame -lopus -lvorbisenc -lvorbis -logg -Wl,-Bsymbolic-functions -lfltk_images -lfltk -lX11 make[2]: Leaving directory '/home/masarie/butt-0.1.15/src' make[2]: Entering directory '/home/masarie/butt-0.1.15' make[2]: Leaving directory '/home/masarie/butt-0.1.15' make[1]: Leaving directory '/home/masarie/butt-0.1.15' masarie@DeserT ~/butt-0.1.15 $ sudo make install <<--------------------------------PERHATIKAN COMMAND NYA Making install in src make[1]: Entering directory '/home/masarie/butt-0.1.15/src' make[2]: Entering directory '/home/masarie/butt-0.1.15/src' /bin/mkdir -p '/usr/local/bin' /usr/bin/install -c butt '/usr/local/bin' make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/home/masarie/butt-0.1.15/src' make[1]: Leaving directory '/home/masarie/butt-0.1.15/src' make[1]: Entering directory '/home/masarie/butt-0.1.15' make[2]: Entering directory '/home/masarie/butt-0.1.15' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/home/masarie/butt-0.1.15' make[1]: Leaving directory '/home/masarie/butt-0.1.15'
7.jalankan butt dengan mengetikan perintah butt &
ke terminal , penambahan &
dimaksudkan agar butt tetap berjalan di background walau kita menutup jendela terminal
Cara Setting butt radio streaming source
1.Jalankan Butt dan klik settings
2.pada tab “Main” >server setting klik add dan isikan informasi yang dibutuhkan sama seperti saat setting edcast mulai dari ip server,port,mount point,user password , klik save untuk menyimpan
3.pada bagian streeam infos klik add dan masukan informasi tentang stream mu, informasi ini akan muncul di Icecast web panel dan akan dilihat user.
4.Pada tab stream pilih audio source yang ingin dicapture, jika ada suara maka pitch indicator pada butt mainwindow akan menyala
5.Mulai stream dengan klik play,main window butt akan menampilkan status stream,mulai dari strteam time,jenis server,bitrate,codec,samplerate dll.
6.Buka icecast panel dan lihat status streaming kita ^_^
Membuat Streaming Radio Receiver
(Penerima Siaran)
Untuk bisa menikmati streaming kita memang bisa menggnakan beberapa media seperti browser,vlc,mplayer dan player lain yang mendukung streaming play.
Namun dalam projek ini diharuskan semua berjalan otomatis tanpa operator,jadi kita memilih raspberry pi sebagai Radio Streaming Receiver. Raspberry pi akan play stream otomatis begitu dihidupkan dari streaming server yang telah kita setting.
Kenapa memilih raspberry pi? alasan mendasar adalah bentuk nya kecil dan menghemat tempat serta bisa dibuat otomatis sesuai dengan yang kita inginkan,dalam hal ini Radio Player dari streaming server yang telah kita buat.
Raspberry pi Radio Streaming Receiver
Setelah raspberry pi diinstall dan sound telah diarahkan ke 3.5mm jack, maka kamu hanya perlu mengikuti step dibawah ini :
Install VLC
Kita akan menggunakan VLC untuk play streaming dari streaming server yang telah kita buat, install dengan menggunakan perintah sudo apt-get install vlc
Auto start dan play VLC setelah booting
Agar vlc kita memplay otomatis maka kita perlu membuat vlc run saat start up, disini kita akan membuat infinite loop menggunakan bash scripting sederhana untuk mempertahankan VLC ketika kehilangan source dan mengalami quit /exit.
Karena VLC tidak bisa dijalankan oleh root user maka kita akan menjalankan VLC menggunakan pi user.
edit file rc.local
dengan perintah nano /etc/rc.local
dan tambahkan baris berikut ini sebelum exit 0
statment pada file rc.local
while /bin/true; do if pgrep -x "vlc" > /dev/null then echo "VLC is up and Running" sleep 60s else echo "VLC is Stopped" (sleep 20s;su - pi -c "cvlc http://ip_server:port/stream_mount_point vlc://quit") sleep 25s fi done &
sehingga akan terlihat seperti contoh dibawah ini
Mengatur Volume 3.5mm Jack Raspberry pi
untuk mengatur volume level gunakan perintah alsamixer
dan tekan f6 untuk memilih soundcard,dan gunakan panah atas bawah untuk mengontrol volume, ctrl + C untuk keluar
Kesimpulan
Dengan sedikit kreatifitas,kita bisa membuat radio streaming server dari komputer biasa (karena tidak memerlukan banyak resource) baik windows atau Linux dan menggunakan nya untuk tujuan yang kita kehendaki,misalnya membuat siaran music terpusat yang bisa dipakai oleh semua toko/swalayan di semua cabang.
Menggunakan raspberry pi tidak menjadi keharusan karena pada kasus saya memang saya harus menggunakan raspberry pi sebagai player yang otomatis play dan lebih hemat biaya dibanding membeli 1 unit komputer hanya untuk nyetel lagu 😀 .
Semoga tutorial ini bermanfaat,jika ada kesulitan silakan drop komen di bawah.