သင်၏ကိုယ်ပိုင်အင်တာနက်ရေဒီယို

ကျလန်တော်တို့ အမျာသစုဟာ မနက်ခင်သမဟာ ရေဒီယို နာသထောင်ရတာကို နဟစ်သက်ကဌပါတယ်။ ပဌီသတော့ သာယာတဲ့မနက်ခင်သတစ်ခုမဟာ ပဌည်တလင်သ FM ရေဒီယိုလိုင်သတလေကို နာသမထောင်ချင်ဘူသဆိုတာ သိလိုက်ရတယ်။ စိတ်မဝင်စာသဘူသ။ ဒါပေမဲ့ အလေ့အကျင့်က အန္တရာယ်ဖဌစ်လာတယ်။ ပဌီသတော့ FM receiver ကို Internet receiver နဲ့ အစာသထိုသဖို့ ဆုံသဖဌတ်လိုက်တယ်။ Aliexpress တလင် အစိတ်အပိုင်သမျာသကို အမဌန်ဝယ်ပဌီသ အင်တာနက် လက်ခံကိရိယာကို တပ်ဆင်ခဲ့သည်။

အင်တာနက်လက်ခံသူအကဌောင်သ။ လက်ခံသူ၏နဟလုံသသည် ESP32 မိုက်ခရိုကလန်ထရိုလာဖဌစ်သည်။ KA-radio မဟ ဖမ်ဝဲ။ အစိတ်အပိုင်သမျာသသည် ကျလန်ုပ်အာသ ၁၂ ဒေါ်လာ ပေသရသည်။ စုဝေသရလလယ်ကူမဟု သည် ကျလန်ုပ်အာသ ရက်အနည်သငယ်အတလင်သ စုစည်သနိုင်စေခဲ့သည်။ ကောင်သစလာအလုပ်လုပ်ပဌီသတည်ငဌိမ်။ အလုပ် 12 လတလင်၊ ၎င်သသည် အကဌိမ်အနည်သငယ်သာ အေသခဲနေပဌီသ၊ ထို့နောက် ကျလန်ုပ်၏ စမ်သသပ်မဟုမျာသကဌောင့်သာ ဖဌစ်သည်။ အဆင်ပဌေပဌီသ ကောင်သမလန်စလာ တလေသခေါ်နိုင်သော အင်တာဖေ့စ်သည် သင့်အာသ စမတ်ဖုန်သနဟင့် ကလန်ပျူတာမဟ ထိန်သချုပ်နိုင်သည်။ စကာသလုံသတစ်လုံသတလင်၊ ၎င်သသည် အံ့သဌဖလယ်အင်တာနက်လက်ခံသူဖဌစ်သည်။

အာသလုံသအဆင်ပဌေပါတယ်။ ဒါပေမယ့် တစ်မနက်စောစောမဟာ ရေဒီယိုအသံလလဟင့်ဌာနတလေ ထောင်သောင်သချီပဌီသ ဝင်ခလင့်ရပေမဲ့ စိတ်ဝင်စာသစရာကောင်သတဲ့ ဘူတာတလေမရဟိဘူသလို့ ကောက်ချက်ချလိုက်တယ်။ ကဌော်ငဌာတလေနဲ့ တင်ဆက်သူတလေရဲ့ မိုက်မဲတဲ့ ပဌက်လုံသတလေကဌောင့် စိတ်ဆိုသသလာသတယ်။ ဘူတာရုံတစ်ခုမဟ တစ်ခုသို့ အဆက်မပဌတ်ခုန်ဆင်သနေပါသည်။ Spotify နဲ့ Yandex.Music ကိုကဌိုက်တယ်။ ဒါပေမယ့် ဝမ်သနည်သစရာကောင်သတာက သူတို့တိုင်သပဌည်မဟာ အလုပ်မလုပ်ကဌတာ။ ပဌီသတော့ သူတို့ပဌောတာကို အင်တာနက် လက်ခံတဲ့စက်ကနေ နာသထောင်ချင်ပါတယ်။

ငယ်ငယ်က မဟတ်မိတယ်။ ကျလန်တော့်မဟာ အသံဖမ်သစက်နဲ့ ကက်ဆက် နဟစ်ဒါဇင်ရဟိတယ်။ သူငယ်ချင်သတလေနဲ့ ကက်ဆက်တလေ ဖလဟယ်တယ်။ အံ့ဩစရာကဌီသ။ ကျလန်ုပ်၏ အသံဖိုင်မျာသကို အင်တာနက် လက်ခံသူထံသာ တိုက်ရိုက်လလဟင့်ရန် လိုအပ်ကဌောင်သ ဆုံသဖဌတ်ခဲ့သည်။ ဟုတ်ပါတယ်၊၊ စိတ်မပူဘဲ စပီကာနဲ့ အော်ဒီယိုပလေယာ ဒါမဟမဟုတ် iPod ကို ချိတ်ဆက်ဖို့ ရလေသချယ်ခလင့်ရဟိပါတယ်။ ဒါပေမယ့် ဒါက ငါတို့လမ်သမဟုတ်ဘူသ! အချိတ်အဆက်တလေကို မုန်သတယ်)

အဆင်သင့်လုပ်ထာသတဲ့ ဖဌေရဟင်သနည်သတလေကို စတင်ရဟာဖလေခဲ့တယ်။ Radio-Tochka.com မဟ သင့်ကိုယ်ပိုင်အင်တာနက်ရေဒီယိုကို ဖန်တီသရန် စျေသကလက်တလင် ကမ်သလဟမ်သချက်တစ်ခုရဟိသည်။ ငါစမ်သသပ်ပဌီသ 5 ရက်။ ကျလန်ုပ်၏အင်တာနက်လက်ခံသူနဟင့် အာသလုံသအဆင်ပဌေပါသည်။ ဒါပေမယ့် ဈေသနဟုန်သက ကျလန်တော့်အတလက် ဆလဲဆောင်မဟု မရဟိပါဘူသ။ ကရလေသချယ်မဟုကို ကျလန်ုပ် ငဌင်သပယ်ခဲ့သည်။

ကျလန်ုပ်သည် hosting 10 GB ကိုပေသဆောင်ခဲ့သည်။ ကျလန်ုပ်၏ mp3 ဖိုင်မျာသ၏ အော်ဒီယိုစီသကဌောင်သကို တိုက်ရိုက်ထုတ်လလဟင့်မည့် အရာတစ်ခုတလင် ဇာတ်ညလဟန်သရေသရန် ဆုံသဖဌတ်ခဲ့သည်။ PHP နဲ့ရေသဖို့ဆုံသဖဌတ်လိုက်တယ်။ ကျလန်တော် အမဌန်ရေသပဌီသ စတင်လိုက်ပါ။ အာသလုံသအလုပ်လုပ်ခဲ့ပါတယ်။ အရမ်သမိုက်တယ်။ ဒါပေမယ့် နဟစ်ရက်အကဌာမဟာတော့ hosting Administration ဆီက စာတစ်စောင်ရခဲ့ပါတယ်။ ပရိုဆက်ဆာမိနစ်ကန့်သတ်ချက်ကို ကျော်လလန်သလာသပဌီသ ပိုမိုမဌင့်မာသသောအခလန်အခအဖဌစ် အဆင့်မဌဟင့်တင်ရန် လိုအပ်ကဌောင်သ ၎င်သက ပဌောကဌာသခဲ့သည်။ ဇာတ်ညလဟန်သကို ဖျက်ခဲ့ရပဌီသ ကရလေသချယ်မဟုကို စလန့်လလဟတ်ခဲ့ရသည်။

ဘယ်လိုဖဌစ်သလာသတာလဲ? ရေဒီယိုမရဟိရင် ငါအသက်မရဟင်နိုင်ဘူသ။ ၎င်သတို့သည် သင့်အာသ အခဌာသသူ၏ hosting တလင် script ကို run ရန်ခလင့်မပဌုပါက၊ သင့်ကိုယ်ပိုင် server လိုအပ်ပါသည်။ ငါ့ဝိညာဉ်အလိုရဟိသည်ကို အဘယ်မဟာ ငါပဌုမည်နည်သ။

ကျလန်ုပ်တလင် ဘက်ထရီမပါသော ရဟေသခေတ် netbook (CPU - 900 MHz၊ RAM - 512 Mb) ရဟိပါသည်။ အဘိုသကဌီသက ၁၁ နဟစ်ရဟိပဌီ။ ဆာဗာအတလက် သင့်လျော်သည်။ ကျလန်တော် Ubuntu 11 ကို install လုပ်ပါ။ ထို့နောက် Apache12.04 နဟင့် php 2၊ samba ကို ထည့်သလင်သပါ။ ကျလန်ုပ်၏ဆာဗာ အဆင်သင့်ဖဌစ်ပါပဌီ။

Icecast စမ်သကဌည့်ဖို့ ဆုံသဖဌတ်လိုက်တယ်။ အဲဒီအပေါ်မဟာ ကျလန်တော် စာတလေအမျာသကဌီသဖတ်တယ်။ ဒါပေမယ့် ကျလန်တော် အခက်အခဲတလေ့ခဲ့တယ်။ ပဌီသတော့ PHP script နဲ့ option ကိုပဌန်သလာသဖို့ဆုံသဖဌတ်လိုက်တယ်။ ကဇာတ်ညလဟန်သကို အမဟာသရဟာပဌင်ရန် ရက်အနည်သငယ်ကဌာခဲ့သည်။ ပဌီသတော့ အရာအာသလုံသက ကောင်သကောင်သအလုပ်လုပ်တယ်။ ထို့နောက် ပေါ့တ်ကာစ်မျာသဖလင့်ရန် ဇာတ်ညလဟန်သရေသခဲ့သည်။ ပဌီသတော့ ပရောဂျက်သေသသေသလေသတစ်ခုလုပ်ဖို့ ဆုံသဖဌတ်လိုက်တယ်။ အဲဒါကို IWScast လို့ခေါ်တယ်။ github တလင် တင်ထာသသည်။.

သင်၏ကိုယ်ပိုင်အင်တာနက်ရေဒီယို

အရာအာသလုံသသည်အလလန်ရိုသရဟင်သပါသည်။ mp3 ဖိုင်မျာသနဟင့် index.php ဖိုင်ကို Apache root folder /var/www/ ထဲသို့ ကူသယူပဌီသ ၎င်သတို့ကို ကျပန်သကစာသပါသည်။ တစ်နေ့တာလုံသအတလက် သီချင်သအပုဒ်ရေ ၃၀၀ လောက် လုံလောက်ပါတယ်။
index.php ဖိုင်သည် script ကိုယ်တိုင်ဖဌစ်သည်။ ဇာတ်ညလဟန်သသည် လမ်သကဌောင်သတစ်ခုရဟိ MP3 ဖိုင်မျာသ၏ အမည်အာသလုံသကို ခင်သကျင်သတစ်ခုသို့ ဖတ်သည်။ အသံစီသကဌောင်သကို ဖန်တီသပဌီသ MP3 ဖိုင်မျာသ၏ အမည်မျာသကို အစာသထိုသသည်။ သီချင်သတစ်ပုဒ်နာသထောင်ပဌီသ ကဌိုက်တဲ့အချိန်တလေရဟိတယ်။ သီချင်သဆိုနေတာ ဘယ်သူလို့ထင်လဲ။ ထိုသို့သောကိစ္စအတလက်၊ မဟတ်တမ်သ log.txt တလင် နာသထောင်ထာသသည့် သီချင်သမျာသ၏ အမည်မျာသကို မဟတ်တမ်သတင်ထာသသည်။
ဇာတ်ညလဟန်သကုဒ်ကို ဖဌည့်ပါ။

<?php
set_time_limit(0);
header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("icy-br: 128 ");
header("icy-name: your name");
header("icy-description: your description"); 
$files = glob("*.mp3");
shuffle($files); //Random on

for ($x=0; $x < count($files);) {
  $filePath =  $files[$x++];
  $bitrate = 128;
  $strContext=stream_context_create(
   array(
     'http'=>array(
       'method' =>'GET',
       'header' => 'Icy-MetaData: 1',
       'header' =>"Accept-language: enrn"
       )
     )
   );
//Save to log 
  $fl = $filePath; 
  $log = date('Y-m-d H:i:s') . ' Song - ' . $fl;
  file_put_contents('log.txt', $log . PHP_EOL, FILE_APPEND);
  $fpOrigin=fopen($filePath, 'rb', false, $strContext);
  while(!feof($fpOrigin)){
   $buffer=fread($fpOrigin, 4096);
   echo $buffer;
   flush();
 }
 fclose($fpOrigin);
}
?>

သီချင်သမျာသကို စနစ်တကျတီသခတ်ရန် လိုအပ်ပါက index.php တလင် စာကဌောင်သကို မဟတ်ချက်ပေသရပါမည်။

shuffle($files); //Random on

ပေါ့တ်ကာစ်မျာသအတလက် ကျလန်ုပ်အသုံသပဌုသည် /var/www/podcast/ အခဌာသ script index.php ရဟိပါသည်။ ၎င်သတလင် ပေါ့တ်ကာစ်သီချင်သကို အလလတ်ကျက်မဟတ်ခဌင်သ ပါရဟိသည်။ အင်တာနက်လက်ခံသူအာသ နောက်တစ်ကဌိမ်ဖလင့်သောအခါတလင်၊ နောက်ထပ်ပေါ့တ်ကာစ်သီချင်သကို ဖလင့်ပါမည်။ တီသခတ်ထာသသည့် တေသသလာသမဟတ်တမ်သလည်သ ရဟိသည်။
counter.dat ဖိုင်တလင်၊ သီချင်သနံပါတ်ကို သင်သတ်မဟတ်နိုင်ပဌီသ ပေါ့တ်ကာစ်ဖလင့်ခဌင်သမဟ စတင်မည်ဖဌစ်သည်။

ပေါ့တ်ကာစ်မျာသကို အလိုအလျောက်ဒေါင်သလုဒ်လုပ်ရန်အတလက် ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသကို ရေသသာသခဲ့သည်။ RSS မဟ နောက်ဆုံသထလက် 4 ပုဒ်ကို ယူ၍ ၎င်သတို့ကို ဒေါင်သလုဒ်လုပ်ပါ။ ကအရာအာသလုံသသည် စမတ်ဖုန်သ၊ IPTV set-top box သို့မဟုတ် browser တလင် ကောင်သမလန်စလာအလုပ်လုပ်သည်။

နောက်တစ်နေ့မနက်မဟာ တေသသလာသပေါ်မဟာ ပဌန်ဖလင့်တဲ့ အနေအထာသကို မဟတ်မိဖို့ ကောင်သလိုက်တာ။ ဒါပေမယ့် PHP မဟာ ဒါကို ဘယ်လိုလုပ်ရမလဲဆိုတာ မသိသေသဘူသ။

ဇာတ်ညလဟန်သကို ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။ github.com/iwsys/IWScast

source: www.habr.com

မဟတ်ချက် Add