Π‘Π²ΠΎΡ‘ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π°Π΄ΠΈΠΎ

МногиС ΠΈΠ· нас ΠΏΠΎ ΡƒΡ‚Ρ€Π°ΠΌ Π»ΡŽΠ±ΡΡ‚ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈΠΎ. И Π²ΠΎΡ‚ Π² ΠΎΠ΄Π½ΠΎ прСкрасноС ΡƒΡ‚Ρ€ΠΎ я осознал, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ мСстныС ЀМ радиостанции. НС интСрСсно. Но ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ° оказалась Π²Ρ€Π΅Π΄Π½ΠΎΠΉ. И я Ρ€Π΅ΡˆΠΈΠ» Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ЀМ-ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ. Π‘Ρ‹ΡΡ‚Ρ€Π΅Π½ΡŒΠΊΠΎ ΠΊΡƒΠΏΠΈΠ» Π΄Π΅Ρ‚Π°Π»ΠΈ Π½Π° АлиэкспрСсс ΠΈ собрал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ.

О ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅. Π‘Π΅Ρ€Π΄Ρ†Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° β€” ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ESP32. ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΎΡ‚ KA-radio. Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΌΠ½Π΅ обошлась Π² 12 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° сборки ΠΌΠ½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π° ΠΏΠ°Ρ€Ρƒ Π΄Π½Π΅ΠΉ. Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π—Π° 10 мСсяцСв Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависло Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€Ρƒ Ρ€Π°Π· ΠΈ Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° ΠΌΠΎΠΈΡ… экспСримСнтов. Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ интСрфСйс позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с смартфона ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Одним словом это Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ.

ВсС классно. Но ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π°Π½Π½ΠΈΠΌ ΡƒΡ‚Ρ€ΠΎΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ доступа ΠΊ дСсяткам тысяч радиостанций Π½Π΅Ρ‚ интСрСсных станций. МСня Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π»Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°, Ρ‚ΡƒΠΏΡ‹Π΅ ΡˆΡƒΡ‚ΠΊΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ ΠΏΡ€Ρ‹Π³Π°Π» с ΠΎΠ΄Π½ΠΎΠΉ станции Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. МнС нравится Spotify ΠΈ ЯндСкс.ΠœΡƒΠ·Ρ‹ΠΊΠ°. Но ΠΏΠ΅Ρ‡Π°Π»ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ Π² ΠΌΠΎΠ΅ΠΉ странС. И Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΡ… ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ.

Π― вспомнил своё дСтство. Π£ мСня Π±Ρ‹Π» ΠΌΠ°Π³Π½ΠΈΡ‚ΠΎΡ„ΠΎΠ½ ΠΈ Π΄Π²Π° дСсятка кассСт. ΠšΠ°ΡΡΠ΅Ρ‚Π°ΠΌΠΈ мСнялся с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ. И Π±Ρ‹Π»ΠΎ чудСсно. Π― Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ стриминг своих Π°ΡƒΠ΄ΠΈΠΎΠ°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎΠΏΠ»Π΅Π΅Ρ€ ΠΈΠ»ΠΈ ipod ΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ ΠΈ Π½Π΅ ΠΏΠ°Ρ€ΠΈΡ‚ΡŒΡΡ. Но это Π½Π΅ наш ΠΏΡƒΡ‚ΡŒ! НСнавиТу ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹)

Начал ΠΈΡΠΊΠ°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. На Ρ€Ρ‹Π½ΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ своё ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ€Π°Π΄ΠΈΠΎ ΠΎΡ‚ Radio-Tochka.com. Π― потСстировал 5 Π΄Π½Π΅ΠΉ. Π‘ ΠΌΠΎΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ всС Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ прСкрасно. Но Ρ†Π΅Π½Π° оказалась для мСня Π½Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. ΠžΡ‚ΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ‚ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ»Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ хостинг 10 GB. РСшил Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° Ρ‡Π΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π±Ρ‹Π» стриминг Π°ΡƒΠ΄ΠΈΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΈΡ… mp3 Ρ„Π°ΠΉΠ»ΠΎΠ². РСшил Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° PHP. Π‘Ρ‹ΡΡ‚Ρ€Π΅Π½ΡŒΠΊΠΎ написал ΠΈ запустил. ВсС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ. Π‘Ρ‹Π»ΠΎ классно! Но Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ Π΄Π½Π΅ΠΉ ΠΏΡ€ΠΈΡˆΠ»ΠΎ письмо ΠΎΡ‚ администрации хостинга. Π’ Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚Π° процСссорных ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ нСобходимости ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Ρ‚Π°Ρ€ΠΈΡ„ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Ну ΠΊΠ°ΠΊ Ρ‚Π°ΠΊ? НС ΠΌΠΎΠ³Ρƒ ΠΆΠΈΡ‚ΡŒ Π±Π΅Π· Ρ€Π°Π΄ΠΈΠΎ. Если Π½Π΅ Π΄Π°ΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт Π½Π° Ρ‡ΡƒΠΆΠΎΠΌ хостингС, Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π°Π΄ΠΎ свой сСрвак. Π“Π΄Π΅ я Π±ΡƒΠ΄Ρƒ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ моя Π΄ΡƒΡˆΠ° ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚.

Π£ мСня Π½Π΅Ρ‚Π±ΡƒΠΊ Π΄Ρ€Π΅Π²Π½ΠΈΠΉ Π»Π΅ΠΆΠΈΡ‚ Π±Π΅Π· аккумулятора (CPU β€” 900 MHz, RAM β€” 512 Mb). Π‘Ρ‚Π°Ρ€ΠΈΡ‡ΠΊΡƒ 11 Π»Π΅Ρ‚ ΡƒΠΆΠ΅. Для сСрвака ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅. Π‘Ρ‚Π°Π²Π»ΡŽ Ubuntu 12.04. Π—Π°Ρ‚Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽ Apache2 ΠΈ php 5.3, samba. Мой сСрвак Π³ΠΎΡ‚ΠΎΠ².

РСшил ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Icecast. Много Ρ‡ΠΈΡ‚Π°Π» ΠΌΠ°Π½Ρ‹ ΠΏΠΎ Π½Π΅ΠΌΡƒ. Но ΠΌΠ½Π΅ ΠΎΠ½ показался слоТным. И я Ρ€Π΅ΡˆΠΈΠ» Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ со скриптом Π½Π° PHP. ΠŸΠ°Ρ€Ρƒ Π΄Π½Π΅ΠΉ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ этого скрипта. И всё прСкрасно Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ. Π—Π°Ρ‚Π΅ΠΌ я Π΅Ρ‰Π΅ написал скрипт для воспроизвСдСния подкастов. И ΠΌΠ½Π΅ это Ρ‚Π°ΠΊ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСбольшой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Назвал Π΅Π³ΠΎ IWScast. Π’Ρ‹Π»ΠΎΠΆΠΈΠ» Π½Π° github.

Π‘Π²ΠΎΡ‘ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π°Π΄ΠΈΠΎ

ВсС ΠΎΡ‡Π΅Π½ΡŒ просто. Π€Π°ΠΉΠ»Ρ‹ mp3 ΠΈ Ρ„Π°ΠΉΠ» index.php ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽ Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π°ΠΏΠ°Ρ‡Π° /var/www/ ΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎ воспроизводятся. Около 300 пСсСн Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π½Π° вСсь дСнь ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.
Π€Π°ΠΉΠ» index.php β€” это ΠΈ Π΅ΡΡ‚ΡŒ сам скрипт. Π‘ΠΊΡ€ΠΈΠΏΡ‚ считываСт всС ΠΈΠΌΠ΅Π½Π° ΠΌΡ€3 Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² массив. Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π°ΡƒΠ΄ΠΈΠΎ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ подставляСт ΠΈΠΌΠ΅Π½Π° ΠΌΡ€3 Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΡΠ»ΡƒΡˆΠ°Π΅ΡˆΡŒ пСсню ΠΈ Ρ‚Π΅Π±Π΅ ΠΎΠ½Π° нравится. Π’Ρ‹ Π΄ΡƒΠΌΠ°Π΅ΡˆΡŒ, ΠΊΡ‚ΠΎ это ΠΏΠΎΡ‘Ρ‚? Для Ρ‚Π°ΠΊΠΎΠ³ΠΎ случая Π΅ΡΡ‚ΡŒ запись Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠ°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅ΠΊΠΎΠ² Π² Π»ΠΎΠ³ 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 послСдних Ρ‚Ρ€Π΅ΠΊΠ° ΠΈ скачиваСт ΠΈΡ…. ВсС это Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° смартфонС, IPTV приставкС, Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

НСдавно ΡƒΡ‚Ρ€ΠΎΠΌ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»Π° ΠΌΡ‹ΡΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ воспроизвСдСния Π½Π° Ρ‚Ρ€Π΅ΠΊΠ΅. Но Π½Π΅ знаю ΠΏΠΎΠΊΠ°, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° PHP.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ github.com/iwsys/IWScast

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com