Страница 2 из 3

Re: записать поток mp3 на флешку

Добавлено: 16 янв 2018, 20:43
Dragon_Knight
Хоть тема и закрыта, я всё-же внесу свои 5 копеек...

Во первых да, MetaROUTER это решение. Там можно реализовать задачу >> https://wiki.mikrotik.com/wiki/Manual:Metarouter
Во вторых, хоть система и закрытая, в консоль залезть можно и не сложно (не работает на 6.41), далее накатывать что душе угодно и как угодно.

Re: записать поток mp3 на флешку

Добавлено: 19 янв 2018, 12:51
Ze-Ze
Уважаемые участники форума! Тема снова открыта. Это задача для человека, который ограничен по зрению. Поэтому, задача неординарная, прошу отнестись с пониманием :)

Re: записать поток mp3 на флешку

Добавлено: 19 янв 2018, 15:10
vqd
Ze-Ze писал(а):Уважаемые участники форума! Тема снова открыта. Это задача для человека, который ограничен по зрению. Поэтому, задача неординарная, прошу отнестись с пониманием :)


Ну раз такое дело то что ж не помочь то человеку.
Сразу говорю что делалось на коленке

И так в гугле нашел первый попавшийся поток http://radio.bestfm.fm:8080/bestfm64

Задача записать с него поток в mp3

Данную задачу решаем в 2 подхода.

1. Собственно сама запись

Код: Выделить всё

/system script
add name=musicrec owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "/tool fetch url=http://radio.bestfm.fm:8080/bestfm64 dst-path=tmp.mp3           \r\
    \n"


2.
Но т.к. это поток то писатся будет пока место не закончится, при остановке файл удаляется системой т.к. она считает что файл не загружен. Поэтому делаем костыль. Что бы костыль работал Вам нужно в ip service включить FTP И в скрипте задать user=admin password=******

Код: Выделить всё

/system script
add name=save_mp3 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local filen\
    ame 1.mp3\r\
    \n/tool fetch mode=ftp user=admin password=****** address=127.0.0.1 src-path=tmp.mp3 dst-path=\$filename\r\
    \n /system script job remove [find script=musicrec ]"



Костыль тупо копирует из временного мп3 и потому после принудительной остановки первого скрипта данные остаются.

Теперь о времени

Код: Выделить всё

/system scheduler
add name=StartRec on-event="/system script run musicrec" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/19/2018 start-time=10:25:34
add name=save_mp3 on-event="/system script run save_mp3 " policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/19/2018 start-time=10:25:34



Тут все просто
Задание StartRec начинает запись в указанное время и дату start-date=jan/19/2018 start-time=10:25:34
Задание save_mp3 заканчивает запись в указанное время и дату start-date=jan/19/2018 start-time=10:25:34

Тобиш тут вы указываете когда начать писать и во втором задании когда закончить

В скрипте save_mp3 вы переменной filename вы можите указать в какой файл сохранить запись, сейчас там 1.mp3

Будет время сделаю более удобное решение но данное решение поможет понять в каком направлении двигатся

PS: блоки с кодом можно просто копировать и вставлять в консоли микротик, оно все создаст. Далее в винбоксе уже можете в соответсвующих закладках выставить нужные Вам временые интервалы и изменить нужные Вам данные в скрипте. Решение можно сделать более красивым но нужно времени чуть больше чем 5 минут

Будут вопросы задавайте, постораюсь ответить, можите тут а можите напрямую. Все мои контакты есть по ссылке http://mikrotik.site/kontaktyi/

Re: записать поток mp3 на флешку

Добавлено: 19 янв 2018, 19:11
felcons
Попробовал запустить и возникли вопросы. емли мне надо копировать на флешку, то оно ж как-то видимо что пути надо указывать другие? если на флешку, то путь будет /usb1/files/lwrrec.mp3 так будет правильно? и по окончании, чтоб каждый раз не прописывать имена, то можна назвать по образцу сегодняшней даты? тоесть radio_mayak_data_vremya.mp3. но как сделать чтоб поставить дату и время?

Re: записать поток mp3 на флешку

Добавлено: 19 янв 2018, 20:48
podarok66
Блиннннн! Вот уж не ожидал! Всё работает! Вячеслав, ты кудесник. Совсем недокументированная фишечка.
felcons - приношу извинения, видимо мне надо над собой работать.

Re: записать поток mp3 на флешку

Добавлено: 20 янв 2018, 10:01
vqd
felcons писал(а):Попробовал запустить и возникли вопросы. емли мне надо копировать на флешку, то оно ж как-то видимо что пути надо указывать другие? если на флешку, то путь будет /usb1/files/lwrrec.mp3 так будет правильно? и по окончании, чтоб каждый раз не прописывать имена, то можна назвать по образцу сегодняшней даты? тоесть radio_mayak_data_vremya.mp3. но как сделать чтоб поставить дату и время?


Скрипт вы можите оптимизировтаь под себя как Вам угодно
Более подробно тут https://wiki.mikrotik.com/wiki/Manual:Scripting

Re: записать поток mp3 на флешку

Добавлено: 20 янв 2018, 12:13
vqd
Ну походу все свелось к "сделайте за меня"

Код: Выделить всё

/system script
add name=musicrec owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "/tool fetch url=http://radio.bestfm.fm:8080/bestfm64 dst-path=\"usb1/tmp.mp3\"         \r\
    \n"
add name=save_mp3 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local radioname test\r\
    \n:local date do={\r\
    \n:local tmpdate [/system clock get date] \r\
    \n:local months {\"jan\"=\"01\";\"feb\"=\"02\";\"mar\"=\"03\";\"apr\"=\"04\";\"may\"=\"05\";\"jun\"=\"06\";\"jul\"=\"07\";\"aug\"=\"08\";\"sep\"=\"09\";\"\
    oct\"=10;\"nov\"=11;\"dec\"=12}\r\
    \n:return (([:pick \$tmpdate 4 6]).(\$months -> [:pick \$tmpdate 0 3] ).([:pick \$tmpdate 7 11])) \r\
    \n}\r\
    \n:local time do={\r\
    \n:local tmptime [/system clock get time]\r\
    \n:return ([:pick \$tmptime 0 2].[:pick \$tmptime 3 5].[:pick \$tmptime 6 8])\r\
    \n}\r\
    \n:local path (\"usb1/\" . \$radioname . \"_\" . [\$date] . \"_\" . [\$time] . \".mp3\")\r\
    \n/tool fetch mode=ftp user=admin password=******* address=127.0.0.1 src-path=\"usb1/tmp.mp3\" dst-path=\$path\r\
    \n /system script job remove [find script=musicrec ]"


в :local radioname задаем имя радиостанции
на выходе имеем файл типа test_20012018_150810.mp3
Все действия происходят на флэшке (USB1)

На том считаю что благотворительность закончена

Re: записать поток mp3 на флешку

Добавлено: 30 янв 2018, 18:02
Sertik
А динамик в большинстве Микротиков все же есть ...

Re: записать поток mp3 на флешку

Добавлено: 30 янв 2018, 18:14
Sertik
Так что мелодии он может исполнять "на своих мозгах" и неплохо это делает. Правда только "одноголосые".

А правда можно как-то без заморочек конвертировать мелодии в Микротик ? Кто-нибудь делал ?

Вот хорошая функция, которую написал вот этот автор: https://blog.set-pro.net/

Функция на входе воспринимает три массива —
частота звука (Frequency), длительность звука (Length) и длительность задержки между звуками (Delay). Данные указываются в герцах и миллисекундах.

# Применение:
# $beMel Frequency=({"1568.0"; "1318.5"; "1046.5"}) Length=({"100"}) Delay=({"100"})
# $beMel Frequency=({"1568.0"; "1318.5"; "1046.5"}) Length=({"100"; "200"; "300"}) Delay=({"100"; "200"; "300"})

:global beMel do={
set $Nm [len $Frequency];
do {
if (([len $Length])>1) do={set $Ln [($Length->$Nm)];} else={set $Ln [($Length->0)];}
if (([len $Delay])>1) do={set $Dn [($Delay->$Nm)];} else={set $Dn [($Delay->0)];}
execute "beep frequency=$[($Frequency->$Nm)] length=$($Ln)ms ";
delay "$($Dn+10) ms";
set $Nm ($Nm-1);
set $Ln ($Ln-1);
} while ($Nm>-1);
delay 500ms;
}

Если бы можно было "автоматически" создавать такие массивы данных - вот и мелодии в неограниченном количестве к Микротику.

Наверняка есть какие-то музыкальные редакторы/конвертеры, которые могут перелопатить мелодию в частоты, длительности и задержки. Потом надо их взять и переконвертнуть в
текстовый формат и загнать в скрипт в виде массивов чтобы съел Микротик.

Re: записать поток mp3 на флешку

Добавлено: 30 янв 2018, 18:22
Sertik
Вот еще надыбал это: https://github.com/altucor/midi_to_mikrotik_converter

Сам никогда с такими исходниками не работал, как собрать из них готовую программу не знаю. Может кто сделает ?
Охота попробовать. Да и озвучки к скриптам для всех неплохо было бы иметь ...
Может всем пригодиться.