உங்கள் சொந்த இணைய வானொலி

நம்மில் பலர் காலையில் வானொலியைக் கேட்க விரும்புகிறோம். பின்னர் ஒரு காலை வேளையில் நான் உள்ளூர் எஃப்எம் வானொலி நிலையங்களைக் கேட்க விரும்பவில்லை என்பதை உணர்ந்தேன். ஆர்வம் இல்லை. ஆனால் அந்த பழக்கம் தீங்கானது. மேலும் எஃப்எம் ரிசீவரை இன்டர்நெட் ரிசீவருடன் மாற்ற முடிவு செய்தேன். நான் விரைவாக Aliexpress இல் பாகங்களை வாங்கி இணைய ரிசீவரைச் சேகரித்தேன்.

இணைய ரிசீவர் பற்றி. பெறுநரின் இதயம் ESP32 மைக்ரோகண்ட்ரோலர் ஆகும். KA-வானொலியில் இருந்து நிலைபொருள். பாகங்கள் எனக்கு $12 செலவாகும். அசெம்பிளியின் எளிமை என்னை ஓரிரு நாட்களில் அசெம்பிள் செய்ய அனுமதித்தது. நன்றாகவும் நிலையானதாகவும் வேலை செய்கிறது. 10 மாத வேலையில், அது இரண்டு முறை மட்டுமே உறைந்தது, பின்னர் எனது சோதனைகள் காரணமாக மட்டுமே. ஒரு வசதியான மற்றும் நன்கு சிந்திக்கக்கூடிய இடைமுகம் ஸ்மார்ட்போன் மற்றும் கணினியிலிருந்து கட்டுப்படுத்த உங்களை அனுமதிக்கிறது. ஒரு வார்த்தையில், இது ஒரு அற்புதமான இணைய ரிசீவர்.

எல்லாம் சரி. ஆனால் ஒரு அதிகாலையில், பல்லாயிரக்கணக்கான வானொலி நிலையங்களுக்கு அணுகல் இருந்தபோதிலும், சுவாரஸ்யமான நிலையங்கள் இல்லை என்ற முடிவுக்கு வந்தேன். விளம்பரம் மற்றும் தொகுப்பாளர்களின் முட்டாள்தனமான நகைச்சுவைகளால் நான் எரிச்சலடைந்தேன். தொடர்ந்து ஒரு ஸ்டேஷனில் இருந்து இன்னொரு ஸ்டேஷனுக்கு தாவுவது. எனக்கு Spotify மற்றும் Yandex.Music பிடிக்கும். ஆனால் அவர்கள் என் நாட்டில் வேலை செய்யவில்லை என்பது வருத்தமான விஷயம். மேலும் இணைய ரிசீவர் மூலம் அவற்றைக் கேட்க விரும்புகிறேன்.

எனக்கு என் குழந்தைப் பருவம் நினைவுக்கு வந்தது. என்னிடம் ஒரு டேப் ரெக்கார்டர் மற்றும் இரண்டு டஜன் கேசட்டுகள் இருந்தன. நண்பர்களுடன் கேசட்டுகளை பரிமாறிக்கொண்டேன். அது அற்புதமாக இருந்தது. எனது ஆடியோ காப்பகங்களை இணைய ரிசீவருக்கு மட்டுமே ஸ்ட்ரீம் செய்ய வேண்டும் என்று முடிவு செய்தேன். நிச்சயமாக, ஸ்பீக்கர்களுடன் ஆடியோ பிளேயர் அல்லது ஐபாட் இணைக்க ஒரு விருப்பம் உள்ளது மற்றும் கவலைப்பட வேண்டாம். ஆனால் இது எங்கள் வழி அல்ல! இணைப்பிகளை இணைப்பதை நான் வெறுக்கிறேன்)

நான் ஆயத்த தீர்வுகளைத் தேட ஆரம்பித்தேன். Radio-Tochka.com இலிருந்து உங்கள் சொந்த இணைய வானொலியை உருவாக்க சந்தையில் ஒரு சலுகை உள்ளது. 5 நாட்கள் சோதனை செய்தேன். எனது இன்டர்நெட் ரிசீவரில் எல்லாம் நன்றாக வேலை செய்தது. ஆனால் விலை என்னை ஈர்க்கவில்லை. நான் இந்த விருப்பத்தை மறுத்துவிட்டேன்.

நான் 10 ஜிபி ஹோஸ்டிங் செலுத்தினேன். எனது mp3 கோப்புகளின் ஆடியோ ஸ்ட்ரீமை ஸ்ட்ரீம் செய்யும் ஏதாவது ஒரு ஸ்கிரிப்டை எழுத முடிவு செய்தேன். நான் அதை PHP இல் எழுத முடிவு செய்தேன். நான் அதை விரைவாக எழுதி துவக்கினேன். எல்லாம் வேலை செய்தது. குளிர்ச்சியாக இருந்தது! ஆனால் இரண்டு நாட்களுக்குப் பிறகு ஹோஸ்டிங் நிர்வாகத்திடமிருந்து எனக்கு ஒரு கடிதம் வந்தது. செயலி நிமிடங்களின் வரம்பு மீறப்பட்டுள்ளதாகவும், அதிக கட்டணத்திற்கு மேம்படுத்த வேண்டிய அவசியம் இருப்பதாகவும் அது கூறியது. ஸ்கிரிப்ட் நீக்கப்பட வேண்டும் மற்றும் இந்த விருப்பம் கைவிடப்பட்டது.

அது நடந்தது எப்படி? வானொலி இல்லாமல் என்னால் வாழ முடியாது. வேறொருவரின் ஹோஸ்டிங்கில் ஸ்கிரிப்டை இயக்க அவர்கள் உங்களை அனுமதிக்கவில்லை என்றால், உங்களுக்கு உங்கள் சொந்த சர்வர் தேவை. என் ஆன்மா விரும்பியதை நான் எங்கே செய்வேன்.

என்னிடம் பேட்டரி இல்லாத பழங்கால நெட்புக் உள்ளது (CPU - 900 MHz, RAM - 512 Mb). முதியவருக்கு ஏற்கனவே 11 வயது. சேவையகத்திற்கு ஏற்றது. நான் உபுண்டு 12.04 ஐ நிறுவுகிறேன். பின்னர் நான் Apache2 மற்றும் php 5.3, samba ஐ நிறுவுகிறேன். எனது சர்வர் தயாராக உள்ளது.

Icecast ஐ முயற்சிக்க முடிவு செய்தேன். நான் அதில் நிறைய மனதைப் படித்தேன். ஆனால் எனக்கு அது கடினமாக இருந்தது. நான் ஒரு PHP ஸ்கிரிப்ட் மூலம் விருப்பத்திற்கு திரும்ப முடிவு செய்தேன். இந்த ஸ்கிரிப்டை பிழைத்திருத்த சில நாட்கள் செலவிடப்பட்டன. மற்றும் எல்லாம் நன்றாக வேலை செய்தது. பின்னர் பாட்காஸ்ட்களை இயக்க ஸ்கிரிப்ட் ஒன்றையும் எழுதினேன். நான் அதை மிகவும் விரும்பினேன், நான் ஒரு சிறிய திட்டத்தை செய்ய முடிவு செய்தேன். இதை IWScast என்று அழைத்தனர். கிதுப்பில் இடுகையிடப்பட்டது.

உங்கள் சொந்த இணைய வானொலி

எல்லாம் மிகவும் எளிமையானது. நான் mp3 கோப்புகள் மற்றும் index.php கோப்பை Apache ரூட் கோப்புறையில் /var/www/ நகலெடுத்து, அவை சீரற்ற முறையில் இயக்கப்படுகின்றன. சுமார் 300 பாடல்கள் ஒரு நாள் முழுவதும் போதுமானது.
index.php கோப்பு ஸ்கிரிப்ட் தானே. ஸ்கிரிப்ட் ஒரு கோப்பகத்தில் உள்ள 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/ மற்றொரு ஸ்கிரிப்ட் index.php உள்ளது. இது போட்காஸ்ட் டிராக் நினைவாற்றலைக் கொண்டுள்ளது. அடுத்த முறை நீங்கள் இன்டர்நெட் ரிசீவரை ஆன் செய்யும் போது, ​​அடுத்த போட்காஸ்ட் டிராக் இயக்கப்படும். விளையாடிய தடங்களின் பதிவும் உள்ளது.
counter.dat கோப்பில், நீங்கள் ட்ராக் எண்ணைக் குறிப்பிடலாம், அதிலிருந்து பாட்காஸ்ட் பிளேபேக் தொடங்கும்.

பாட்காஸ்ட்களை தானாகப் பதிவிறக்குவதற்கான பாகுபடுத்திகளை எழுதினார். இது RSS இலிருந்து சமீபத்திய 4 டிராக்குகளை எடுத்து அவற்றைப் பதிவிறக்குகிறது. இவை அனைத்தும் ஸ்மார்ட்போன், ஐபிடிவி செட்-டாப் பாக்ஸ் அல்லது உலாவியில் சிறப்பாகச் செயல்படும்.

மறுநாள் காலை ஒரு ட்ராக்கில் பிளேபேக் நிலையை நினைவில் வைத்துக் கொள்வது நன்றாக இருக்கும் என்று எனக்கு தோன்றியது. ஆனால் PHP இல் இதை எப்படி செய்வது என்று எனக்கு இன்னும் தெரியவில்லை.

ஸ்கிரிப்டை பதிவிறக்கம் செய்யலாம் github.com/iwsys/IWScast

ஆதாரம்: www.habr.com

கருத்தைச் சேர்