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

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

Хоть тема и закрыта, я всё-же внесу свои 5 копеек...

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


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
Аватара пользователя
Ze-Ze
Администратор
Сообщения: 236
Зарегистрирован: 25 ноя 2010, 21:50
Контактная информация:

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


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

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/


Есть интересная задача и бюджет? http://mikrotik.site
felcons
Сообщения: 11
Зарегистрирован: 16 янв 2018, 10:24

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


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

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


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

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


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


Есть интересная задача и бюджет? http://mikrotik.site
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Ну походу все свелось к "сделайте за меня"

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

/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)

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


Есть интересная задача и бюджет? http://mikrotik.site
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

А динамик в большинстве Микротиков все же есть ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Так что мелодии он может исполнять "на своих мозгах" и неплохо это делает. Правда только "одноголосые".

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

Вот хорошая функция, которую написал вот этот автор: 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;
}

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

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


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Вот еще надыбал это: https://github.com/altucor/midi_to_mikrotik_converter

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


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить