Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Пишу платформу для создания интернет радиостанций

Добрый день!

Меня зовут Роман, мне 29 лет. Я занимаюсь разработкой сайтов на PHP примерно два года. С осени прошлого года начал изучать Java, и паралельно писать свой проект. В итоге получилась платформа для создания интернет радио станций, где любой желающий может создать свое радио за пару минут. Скорее это не столько проект, сколько прототип. Ядро радио написано на Java, бэкенд на PHP, а фронтенд — на AngularJS.

Сейчас проект на стадии бета-тестирования, поэтому приглашаю всех желающих принять участие в тестировании.

Адрес в интернете: myownradio.biz
Паблик в facebook: www.facebook.com/myownradio.biz

Это мой pet-project и цель его скорее расширении навыков в программировании и обучении.

Благодарю за внимание!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

приветствую, как можно с вами связаться [email protected]

Перевесил часть логики на SQL и теперь в каталоге радиостанций видно что играет на каждой станции. Плюс переделал каталог — тепель нет общего скопа станций, но есть «популярные станции».

Роман
1) дизайн и общая культура исполнения- очень приятно
2) у меня пропадает поток довольно часто к сожалению (windows 8.1-chrome ) - но у меня на tracerout до вашего сервера смотреть страшно — таймаут на таймауте

к стати перестало заикатся ( правда я перешел на firefox еще )

возможно это было связано с обновлениями. я на выходных несколько раз перезапускал стример.

Не запускает воспроизведение. Firefox, Chrome Ubuntu 14.04 LTS

Flash установлен? HTML5 поддерживается?

Да flash установлен и html5 поддерживается. Проблема в чем: выбираю станцию, нажимаю на «плей», в значке «active listeners count» прибавляется единичка, через пару секунд сбрасывается и все.

Попробуйте выбрать другой формат для аудиопотока. Шестеренка справа от названия станции на странице радиостанции.

Аналогічна проблема. Поки не зареєсьтрувався не можна включати музику. В основному круто, так тримати.
Розкажи як все працює, архитектура і тд

Вот кстати было у меня подобное подозрение, особенно когда на 7-ке тоже не запустилось.

до регистрации музыка не играет?

У троих человек, включая меня, оказалось, что до регистрации не включается. Тогда лучше на главной указать, что для прослушивании нужна регистрация. Лучше когда пользователь подумает стоит или нет регистрироваться (может даже добавить сайт в закладки — на потом), чем поклацает и уйдет с мыслями «ой, бяка».

это была ошибка в программе, починил. для прослушивания радио не обязательно быть зарегистрированным.

ага не играет и ни как не ругаеться
я уже подумал что оно совсем дохлое

нашел ошибку, починил. попробуйте

яп запахало без регистрации подтверждаю

Стрімінг сервер побудований на Java, без використання фреймворків. В якості перетворювача аудіопотоків використовується ffmpeg. Ядро сайту побудование на самописному REST API фреймворкі на PHP. Інтерфейс та фронтент написаний на Javascript, з викроистанням AngularJS. Що ще цікавить? Спробую пояснити детальніше. Фішка мого стрімера в тому що аудіопоток генерується on-demand. Стрімер працює коли є слухачі станції, а якщо ніхто не слухає станцію, то стрімер переходить в suspend.

Як для проекту який пишеться просто для розширення навиків непогано.

Сделал регистрацию через Facebook.

Что в качестве плеера на сервере? (когда-то давно отдавал поток из mpd в icecast)

ffmpeg + самописный стрим сервер на Java

Хороший проект, php только на python заменить))

похоліваримо?

Лучше код писать))

Классно сделано!
Вот только первая загрузка почему-то долгая, около 3 с.

P.S. Я правильно понимаю, это типа как TuneIn?

Почти. Тут можно самому создавать станции и управлять ими через браузер.

Немного не понял. Это типа еще один Shoutcast/Icecast?

Похоже. Но радиостанции можно создавать и управлять ими через браузер.

То есть без серверного ПО. Интересное решение. Попробую на досуге.

Радиопоток ведь генерируется на стороне сервера, с помощью стрим сервера, написанного на Java. Управление и API осуществляется с помощью PHP на стороне сервера, и JS на стороне клиента.

Shoutcast — это серверное ПО. Ставится и настраивается на свой сервак, а потом уже можно заниматься трансляцией. Управление ЕМНИП из командной строки. Те станции что на самом сайте Shoutcast раскиданы по всему миру физически.

Вообще я нашел более подходящий аналог: Ampache.
ampache.org

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

Если эти все станции в это время будет кто-то слушать, то да. Радиостанции, которые никто не слушает автоматически останавливаются и восстанавливаются только когда появится первый слушатель.

Виджет «now playing» наверное должен исчезать мгновенно при переключении на другую станцию, а сейчас остается старый и одновременно новый, что немного дизориентирует.

Приятный сайт. Главное — удобный. Смущает одно —

Ядро радио написано на Java, бэкенд на PHP
(но это так, не по теме)

Здорово, и музыка прятная. Любопытно было бы почитать о том, как оно устроено внутри.

Будет спецификация и описание API для подключения к стороннему ПО.

Интресерно подробнее узнать как работает стриминг. Я раньше с подобными штуками не встречался поэтому не в теме.

прочитал про HLS. скорее всего нет. стример гененирует непрерывный поток в выбранном пользователем формате.

тоді RTSP, але там свої граблі. ідеального рішення поки що нема, так як є три різні напрями, адобефлеш, хлс і ртсп, які пропихаються різними групами компаній..

у моєму випадку кожна станція — це плейліст, у якого відомі час запуску потоку, та час з якого почалось відтворення (офсет). стрімер використовує ці дані для того щоб розрахувати який трек та з якої позиції (в мілісекундах) має відтворюватись в потрібний момент часу. далі він намагається відтворити цей аудіофайл. коли відтворення треку закінчується, стрімер повторює запит на визначення нового трека та його позиції. я пішов на цей крок щоб реалізувати ідею стрімінга тільки тих станцій, які слухає хоча б один слухач. тоді як ті станції, які ніхто не слухає існують тільки в вигляді даних в плейлисті.

так це дуже схоже на HLS
Server components

In the process of intake, the video is coded and segmented to generate video fragments and index file.

Encoder: codify video files in H.264 format and audio in MP3 or HE-AAC. This is encapsulated by MPEG-2 Transport Stream to carry it
Segmenter: divides the MPEG-2 TS file into fragments of equal length, kept as .ts files. It also creates an index file that contains references of the fragmented files, saved as .m3u8

трохи схоже, але я не сегментую дані. недоліком мого методу є те, що не завжди розрагована довжина трека відплвідає реальній. і як результат — може бути з’їдений початок наступного треку, або навпаки — кінцівка трека повториться ще раз.

Если прикрутишь API — помогу с android приложением.идея понравилась — лайк

API есть. REST JSON. немного допилить авторизацию осталось и написать доку.

тогда если понадобиться андроид клиент — зови:)

По-моему отлично получилось. Разумный минимализм, приятный дизайн, все интуитивно.
Планируете как пет оставить или есть планы на развитие?

Планирую для начала доделать. Много чего еще не учтено. В том числе, как ранее писали, возможность подать жалобу на нарушение авторских прав и механизм для обработки. Правила использования, возможность свой джингл загрузить и т.д. Потом планирую искать либо инвестора либо заниматься раскруткой самостоятельно.

Тогда как доберетесь до мобильных клиентов — можете свистнуть мне на предмет IOS. Обсудим.

Спасибо. Возьму на заметку!

Гдя мЯтал ???? А так — офигенно вышло, особенно дизайн...

хочу djfm, superradio, radiofonia (Poland)
чи я щось не зрозумів?
це має бути движок-стрімер з плейлистом?

Це платформа зі своїм радіо двигуном, та своїм каталогом станцій. Додавання в каталог станцій з інших джерел не планується.

вау ))) офигенно вышло. нада кнопок фейбучика лайка, гогла лайка и контактика налепить на каждую радиостанцию и на композиции. думаю за неделю после этого у вас ляжет сайт

Это есть — кнопка «Share this radio channel» есть на страницах станции.

у вас типа «два нажатия», нада одно

Все очень круто, а как для pet-project, так вообще волшебно. И музыка отличная (на мой вкус). Вот громкость не нашел только. (опередили)

Не знайшов регулятора гучності. Він відсутній чи я погано шукаю?

Покищо відсутній. Це пов’язано з тим що я ніколи не користуюсь регуляторами відмінними від системного.

Зрозуміло. Добре, що «поки що», бо, я вважаю, регулятор необхідний. Часто потрібно регулювати рівень звуку різних додатків, що працюють одночасно.

Неплохо. Описания функционала я не заметил, плохо смотрел или ставка на «интуитивно понятный интерфейс»? ))

Как там ударяться решить вопросы с претензиями держателей авторских прав пока непонятно. Имхо, ответ на вопрос — составная часть проекта. «Я над этим не думал» — тоже ответ))

Неплохо бы иметь логин с гуля, фейсморды и т.п. сервисов. Тренд однако.

В качестве пика творческой мысли: лично мне, как слушателю радио, хотелось бы иметь возможность в один клик сбрасывать исполнителя/композицию в «записную книжку». А вторым кликом, когда нибудь со временем, перебрасывать сохраненный результат в строку поиска гугла или, например, ютуба.

Удаление профиля будет, так же как и форма для претензии чуть позже. По поводу записной книжки — интересная идея, спасибо. Я пока эту фичу реализовал по другому — у каждого аудиофайла есть поле Buy Link, где можно разместить ссылку на магазин где этот трек можно купить. Ссылка потом отобразится возле названия трека.

у каждого аудиофайла есть поле Buy Link,
это другая фича.

«записная книжка» нужна скорее для того, что бы в дальнейшем найти понравившийся трек или информацию о нем. Покупка трека — это уже частный случай.

В качестве доп. идей: Совсем круто, если наименование трека будет разобрано на составляющие и в поиск можно будет отправлять по частям. Следующий уровень крутизны — построить граф связей для выделенных элементов, что бы вести по ним поиск)) Но это уже что то очень специализированное и «большое». Ну и хватит ) а то дальнейший полет мысли становится совсем уж неугомонным))

Оу. Всплывающая форма с новым треком не адаптируется под длину наименования трека, при возникновении переноса на следующую строку, что там дальше — прочесть не получится. (Хром)

Надо сохранить эту линку и давать её всем, кто задаёт вопросы «как обучиться программированию», «как найти работу без опыта» и прочие

Аналогично. Debian 7 — Iceweasel 31.5.0.

Заинтриговали. Поставлю линукс на виртуалку.

Для пополнения статистики: XUbuntu 13.10×64, FF 36.0.1 — работает норм, звук есть. Симпатичный проект.

Hello Guys!
Recently I lauched my service in beta-testing mode. Service is almost finished but I need your help to complete it. Sign up, listen to the radio and create your own with music you like! Anyone who will sign up until 1 Jun 2015 will receive promo code for premium access for one year.
“На правах рекламы”

Підписатись на коментарі