Захват потока
Скорее всего вы уже знаете что такое потоковое вещание (icecast, icegenerator, ezstream), поэтому теперь рассмотрим не только возможность вещать самому, но и то что можно сделать с потоком который вещаем мы сами или кто-то другой.
Границы применимости: всё ограничивается лишь вашей фантазией. Базовое применение, выглядит как просто запись треков которые играют на вашей любимой интернет-радиостации. Однако мы рассмотрим немного расширенный вариант того что можно получить. Например если на вашем роутере установлена прошивка с встроенным dlna сервером, то можно получить практически всегда пополняемую коллекцию музыки. В частности если треки складываются в директорию которую расшаривает dlna/upnp сервер, то любые устройства в вашей локальной сети будут иметь доступ к этой пополняемой коллекции.
Streamripper
Предполагается что вы уже изучили раздел связанный с установкой системы opkg на ваше устройство.
Установка сводится к:
opkg install streamripper
После чего в вашу систему должен установиться соотвествующий пакет.
На первоначальном этапе рекомендую также установить screen:
opkg install screen
Откроем для редактирования файл:
#!/bin/sh streamripper http://streamer-ntc-aa02.somafm.com:80/stream/1018 -d /media/DISK_A1/files/music/groovesalad -l 9000 -D "%A_-_%T" --quiet &
Основные параметры которые могут быть интересны(названия станций, треков и т.п. программа берёт исходя из метаданных передаваемых в потоке):
* -d директория с музыкой куда будут сохраняться файлы * -l время работы в секундах, если небудет параметра, будет работать бесконечно, однако во избежании утечек памяти и лишней нагрузки можно поставить порог * -s отключить создание каталога по имени станции * -a пишем в единственный файл, если нравится один большой файл вместо кучи маленьких * -D то на основании чего будут именоваться файлы (при этом ключь s не нужен) * --quiet позволяет отключить информацию выводимую программой в процессе захвата потока * & значёк амперсанда указывает на отправку программы в фоновый режим работы.
У ключа D есть несколько вариантов на основе которых он формирует название файла, по умолчанию название файла формируется из имени артиста и названия композиции, но можно использовать и другие варианты:
- %S Поток
- %A Артист
- %T Название
- %a Альбом
- %D Дата и время (за песню)
- %d Дата и время (за выполнение)
- %q Порядковый номер (автоматическое обнаружение)
- %Nq Порядковый номер (начинающийся с числа N)
- %% Знак процента
Сохраняемся и делаем файл исполняемым:
chmod +x streamripper.sh
Запуск:
Если запускается в паре с чем-то на этомже устройстве, то можно обойтись командами: screen -rU - присоединение к шеллу если он был ранее запущен. ctrl+a+c - создаём ещё одно окно. ./streamripper.sh
Или если ваш захватчик потока расположен где-то в другом месте, можно создать отдельно:
screen -dmS streamripper -U ./streamripper.sh
Нюансы:
Расширение mp3 прибавляется к файлам автоматически. Программа способна захватывать потоки: mp3,aac,nsv,ogg.
В папке incomplete лежит то что по мнению программы неудалось полностью скачать, если же удалось то из это папки она перенесёт файлы в место назначения.
Также можно не создавая файла просто открыв новое окно скрина вызвать программу со всеми ключами.