Как записать радио поток?

Здравствуйте,есть задача:
Постоянная запись радио с дроблением по часам...Пример:
Берем поток (Например: kpradio.hostingradio.ru:8000/russia.radiokp32.mp3 ) и записываем его в постоянно,при этом каждый час делая новый файл. В итоге получаем:
17-11-2016-10-00
17-11-2016-11-00
17-11-2016-12-00
17-11-2016-13-00
...тп

Вопрос именно записи потока и его разрыва каждый час. Сам разрыв можно делать по таймеру,но подумал что WPF тут не к чему и можно лишь консолью обойтись. Или возможно есть готовая программа для автоматизации данного процесса?

Нашел такой пример, но как это организовать на несколько потоков сразу (5-6) и разрыв по часу сделать?
private void GetStream()
        {
            string now = DateTime.Now.ToLongTimeString();
            now = now.Replace(':', '-');
            fs = new FileStream(now + ".mp3", FileMode.Create);
            WebResponse response = WebRequest.Create(radioStation).GetResponse();
            // Получаем поток порциями в 65536 байтов
            using (Stream stream = response.GetResponseStream())
            {
                byte[] buffer = new byte[65536];
                int read;
                while ((state == true) && ((read = stream.Read(buffer, 0, buffer.Length)) > 0))
                {
                    long pos = fs.Position;
                    fs.Position = fs.Length;
                    fs.Write(buffer, 0, read);
                    fs.Position = pos;
                }
                fs.Flush();
            }
            response.Close();
            fs.Close();
        }
  • Вопрос задан
  • 765 просмотров
Пригласить эксперта
Ответы на вопрос 1
В сторону от вопроса, решение на shell под linux с использование ffmpeg и libmp3lame (адаптированный под задачу ТС). Оригинальный скрипт пишет видео с IP-камер. Скрипт вешается на Cron с частотой запуска "раз в час".
#!/bin/sh

STREAM_1_URL="http://kpradio.hostingradio.ru:8000/russia.radiokp32.mp3"
STREAM_2_URL="http://kpradio.hostingradio.ru:8000/russia.radiokp32.mp3"

#Generate paths
name="`date +%d-%m-%Y_%H.%M`"
BASE_PATH='/usr/audiostream'
DATE_PATH=`date +%Y/%m/%d`
STREAM_1_PATH="${BASE_PATH}/stream1/${DATE_PATH}"
STREAM_2_PATH="${BASE_PATH}/stream2/${DATE_PATH}"

##Start recording
#Stream 1
ffmpeg -i $STREAM_1 -codec:a libmp3lame $STREAM_1_PATH/${name}.mp3 <
/dev/null >/dev/null 2>/tmp/stream1.log &

#Stream 2
ffmpeg -i r$STREAM_2 -codec:a libmp3lame -t 610 $STREAM_1_PATH/${name}.mp3 <
/dev/null >/dev/null 2>/tmp/stream2.log &
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы