áá»áœááºáá±á¬áºááá¯á· á¡áá»á¬ážá á¯áᬠááááºáááºážááŸá¬ áá±áá®ááᯠáá¬ážáá±á¬ááºááá¬ááᯠááŸá áºáááºááŒáá«áááºá ááŒá®ážáá±á¬á· áá¬áá¬áá²á·ááááºáááºážáá áºáá¯ááŸá¬ ááŒááºááœááºáž 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 ááá¯á·áá±á«áºáááºá
á¡áá¬á¡á¬ážáá¯á¶ážáááºá¡ááœááºááá¯ážááŸááºážáá«áááºá 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 ááŸá¬ áá«ááᯠáááºááá¯áá¯ááºáááá²ááá¯áᬠááááá±ážáá°ážá
áá¬ááºááœáŸááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá«áááºá
source: www.habr.com