bujhm: (Default)
[personal profile] bujhm
Наш радиосервер последний раз проработал без падений довольно долго, около полугода. А потом снова лёг, да так, что костей не собрал. К тому же там начались очередные гонения на VPN, и стало проще настроить новый сервер с нуля. Наиль собрал новую машину и постарался восстановить весь комплект программ, которые занимались трансляцией. Но всё точно воссоздать не получилось. И мне пришлось вспоминать, что я там придумывал, и какие палочки подвязывал, чтобы всё крутилось. В прошлом я эту мудрость не записал и оказался лохом.

Состав Радио Гиперион:
1. Файлы mp3, нарезанные с концертов, которые звучали в Гиперионе. Одна песня - один файл.
2. Плеер AIMP, который проигрывает в шаффле гигантский плейлист на несколько дней.
3. OBS, которая изготовляет видеопоток из анимированной фотографии сцены старого Гипериона и аудиопотока из AIMP, снабжает информацией из mp3-тегов и отправляет на Ютуб.
4. Ютуб, который изготовляет переносимый ролик трансляции, который можно приткнуть где угодно.

Теперь подробнее по каждому пункту.

1. Коллекция mp3.
Всё нарезается с концертных записей. Основной архивный носитель у нас - это видеозаписи трансляций и концертов, которые ведёт Гиперион и выкладывает на своём канале в Ютубе. Оттуда скачивается аудиодорожка и отправляется, например, в Adobe Audution. В каждой выбранной к нарезке песне проверяется общее качество и уровень; если надо, проходится компрессором и нормализатором. И делается fade in и fade out (на аплодисментах).
Файлы сохраняются в папку формата YYMMDD_Familiya и именуются в формате YYMMDD_Familiya_Nazvanie_pesni.mp3. Настройки сжатия CBR 320 kbit/s.
Затем надо прописать все mp3-теги в каждый файл, это важно. Для этого у нас есть отличная программка mp3tag v2.91 (не моложе, потому что более поздние версии требуют денег).

Вот тут важный момент - какие поля и как заполняются (по-русски).
1. "Обложка". Для всех файлов радио у нас есть стандартная картинка 900 на 900 пикселей - фотография сцены старого Гипериона.
2. "Альбом". Формат ввода: «Гиперион», DD.MM.YYYY.
3. "Артист". Имя и фамилия.
4. "Год" - YYYY.
Это были общие поля, которые заполняются скопом. Дальше по каждому треку.
5. Название песни.
6. "Заметки". Вот в этом поле указывается авторство. Например, "ст. Давида Астрахана, муз. Веры Вотинцевой" (строчка идёт с маленькой буквы).
7. "Исполнитель альбома". А тут указываются дополнительные музыканты, если они тоже участвуют. Например: "Дмитрий Толпегов (тромбон)".
Остальные поля должны быть пустыми. Если "Жанр" что-то требует обязательно, можно там выбрать "Other".
Ещё стоит обратить внимание на стандарт тегов (это в настройках). У нас он ID3v2.3 (ID3v1 ID3v2.3).

Когда комплект mp3-файлов прошит тегами и готов, вся папка заливается на радиосервер, в общее хранилище "sound".

2. Плеер AIMP
Почему именно он? Потому что он единственный, который умеет передавать из mp3-файла информацию из тегов в момент проигрывания. И не просто в интерфейс программы (это-то обычный стандарт), а в отдельный текстовый файл. Именно этот текстовый файл читает потом программа OBS и добавляет нужную строку прямо в видеопоток. Так получается правильная фишка радио - человек слышит какую-то песню и сразу видит, кто и что поёт.
Теперь как это сделать.

Открываем настройки Аимп'а - и ищем вкладку "Плагины". Среди прочих там есть такой "Информация о треке в..." Вот он нам и нужен. Нажимаем плюсик, чтобы создать своё собственное правило, называем "Инфо". Здесь будет информация о исполнителе и названии песни.
Обычно там уже всё подобрано, как надо по умолчанию. Но некоторые поля надо прописывать.
"Реагировать на событие" - "Запуск трека".
"Брать информацию о:" - "Текущем треке".
"Источник шаблона" - "Строка".
"Шаблон" - вот тут руками пишем: "%Artist — «%Title»". Это как раз даёт нам самую верхнуюю строку в картинке радио: "Имя Фамилия (длинное тире) «Название песни» (в кавычках-ёлочках)".
"Исходная кодирока" - "Auto". Тут лучше не выдумывать, программа mp3tag всё и так сделала правильно, в кодировке UTF-8, это стандарт для русского языка.
"Русский/украинский в транслит" - не надо.
"Сохранять в файл" - вот тут надо прописать вручную название и расположение этого текстового файла, куда Аимп будет сохранять эту строку. Например, "C:\Radio\info.txt".
"Сохранять в Unicode" - да.
"Новая информация вверху" - да.
"Удалить последний перенос строки" и "Заполнять недостающие пустыми строками" - не надо.
"Максимальное количество записей в файле" - а вот тут очень важно, чтобы стояла цифра "1". Если там будет что-то другое, на картинке в OBS будет чорт знает что, а нам этого не надо.
После того, как мы сохранили это правило, делаем ещё несколько новых. Опять нажимаем плюсик и т.д. Все параметры остаются те же, кроме названия правила, "Шаблона" и "Сохранять в файл".



"Правило" - "Альбом"
"Шаблон" - "%Album"
"Сохранять в файл" - "C:\Radio\info_albom.txt"

"Правило" - "Коммент"
"Шаблон" - "%Comment"
"Сохранять в файл" - "C:\Radio\info_comment.txt"

"Правило" - "Доп. музыкант"
"Шаблон" - "%AlbumArtist"
"Сохранять в файл" - "C:\Radio\info_dop_muzykant.txt"

Итого при проигрывании любого трека в нужной нам папке автоматически создаются четыре текстовых файла:
info.txt
info_albom.txt
info_comment.txt
info_dop_muzykant.txt

И в каждом ровно по одной строке. Как только трек в плейлисте сменится, информация в этих файлах мгновенно перезаписывается.

Что до плейлиста, то надо сделать отдельный плейлист, назвать его "Гиперион" и настроить так, чтобы он автоматически брал всё содержимое из определённой папки вместе со всеми подпапками внутри. Так потом удобно будет заливать новые треки - чтобы он их сразу подхватывал. Назначить режим шаффла (случайный выбор) - это знак двух перекрещённых стрелочек. И закольцевать плейлист навечно. Громкость по вкусу.

В самом низу окна плеера под плейлистом идут полезные циферки. Это общее количество файлов, общее время звучания и вес файлов.
Ещё там есть прекрасная функция (нажать на три точки) - "Экспорт плейлиста". Экспорт идёт в формате html и красиво оформлен. С ним можно работать.



3. OBS
Тут тоже, в принципе, ничего сложного. Делаем сцену "Радио Гиперион" и постепенно добавляем в неё нужные источники.

1. Статичную картинку - вид старого Гипериона. Она сейчас сделана из 10-секундного видео, которое у нас там раньше крутилось. Просто экспорт кадра.
2. Крошечное видео горящего камина, поставлено ровно на нужное место. Это сделано для того, чтобы максимально уменьшить нагрузку на процессор - чем меньше видеофрагмент, тем легче его транслировать.
Важный момент: надо проверить в свойствах видео, какой у него параметр FPS - и точно такой же выставить потом в настройках трансляции OBS.
2. Тень сверху. Это полупрозрачный градиент в формате PNG (поддерживает прозрачность), сделан в Фотошопе. Дело в том, что на этом месте будут строчки из информационных файлов Аимп'а, которые идут белым цветом. И чтобы текст лучше читался, надо под него подложить что-нибудь тёмное.
3. Тень снизу справа. Та же причина - там будут не только строчки, но и логотип Гипериона.

А вот теперь добавляем источник типа "Текст". И называем его
4. "Инфо: Автор — Название"
"Чтение из файла" - "C:\Radio\info.txt"
Выбираем шрифт и размер (например, Камбрия болд). Включаем сглаживание, цвет текста - белый, цвет фона - чёрный, выравнивание влево и прочее - все изменения видны сразу. И ставим строчку туда, где она должна быть - в левый верхний угол.

И всё то же самое для ещё трёх источников "Текст":
5. "Инфо: Альбом"
6. "Инфо: Коммент"
7. "Инфо: Доп. музыкант"
И всё размещаем на сцене, где надо. В источнике "Инфо: Альбом" я ещё навесил фильтр "Кадрирование", потому что слово "Гиперион" и так есть на логотипе, нет смысла его повторять дважды. Поэтому из той строки приходит в сцену только дата.

8. Логотип Гипериона - в правый нижний угол.

9. Ну и вишенка на торте - прогресс-бар. Он берётся очень просто - из Аимп'а. Добавляется новый источник "Захват окна" (или "Захват экрана"). На рабочем столе эти две программы распределяются таким образом, что умещаются обе. Навешиваем фильтр "Цветовой ключ" и настраиваем так, что все лишние цвета на картинке становятся прозрачными, кроме оранжевого прогресс-бара. Затем кадрируем, оставляя только прогресс-бар, масштабируем (с шифтом) и ставим на нужное место внизу. Циферки тоже можно ставить.

Звук берётся в OBS автоматически - это "Звук рабочего стола". Важно только никаких лишних программ открытыми не держать, из которых могут раздаваться какие-нибудь служебные звуки.



Теперь что с настройками у OBS.
Вкладка "Трансляция". В разные моменты жизни Радио Гиперион там всё было по-разному. Сейчас жизнь сложилась так, что начинаем сразу взаимодействовать с Ютубом.
На Ютубе в "Творческой студии" создаём новую трансляцию и смотрим на её параметры. Сверху находим "Создать ключ трансляции". Создаём и называем его "Радио". Выбираем его.
Ниже смотрим, какой сервер предлагается - например, rtmp://a.rtmp.youtube.com/live2.

Перед этим Ютуб может предложить ещё назвать эту будущую трансляцию - "Радио Гиперион", заполнить поле описания (невопрос, у нас есть), выбрать обложку (тоже несложно нарисовать) степень доступности (для всех или только по ссылке) и прочие параметры.

Возвращаемся в OBS.
"Служба" - "Настраиваемый..."
"Сервер" - вот то, что Ютуб предлагает.
"Ключ потока" - то, что Ютуб нам сделал.
Дальше галочка на "Использовать вход в аккаунт" - и логинимся в Ютубе через OBS.

Вкладка "Вывод" - "Трансляция" - "Настройки кодировщика". Там важен только пункт "Битрейт". Для Радио Гиперион вполне достаточно 3000 Kbps.
Остальные пункты не принципиальны:
"Управление битрейтом" - "CBR".
"Интервал ключевых кадров" - "2 сек".
"Предустановка нагрузки на ЦП" - "ultrafast".

И вкладка "Видео".
"Разрешение предпросмотра" - у нас 1280 на 720 (самый маленький стандарт для видео).
"Разрешение выхода" - ровно то же самое.
"Частота кадров" - вот тут, напоминаю, должно быть ровно столько же, сколько в свойствах файла у того видео, которое участвует в нашей трансляции. У нас - "25".

Ну и, собственно, всё. Нажимаем на кнопку "Запустить трансляцию" и идём смотреть на Студию в Ютуб. Там начинается какое-то шевеление и наконец Ютуб сообщает: "О, да у вас тут какая-то трансляция пошла. Выпустить в эфир?" Ответ "да". Ну а дальше эта трансляция становится видна в Творческой Студии в разделе "Трансляции", можно легко взять её код и вставить, куда надо.

Если всё в OBS настроено правильно, можно открыть её окошко "Статистика" и посмотреть на параметр "Среднее время рендеринга кадра". Должно быть примерно 1,5 - 2,5 ms. А пропусков кадров вообще не должно быть.



Радио льётся, сейчас у нас три дня и девять с половиной часов звучания.
This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

June 2026

S M T W T F S
  12 3 456
789101112 13
141516 17181920
21222324252627
282930    
Page generated 19/6/26 04:29

Expand Cut Tags

No cut tags