Как создать интернет радио средствами c# (интеграция с известными серверами)?
Доброго всем времени суток!
Есть задача поднять своё интернет радио. Задача тривиальная и выполняется средствами опенсорсных серверов, например IceCast. Транслировать на них можно из обычных плееров. Раньше точно это умел Винамп, сейчас, вроде как, аимп умеет не хуже, но не факт.
Суть в том, что мне необходимо вместо готового плеера использовать собственные алгоритмы. Писать полноценный броадсайт сервер я цели не ставлю перед собой, но хотелось бы понимать в каком формате отправлять информацию на сервер. Из того, что я смог нагуглить, я понял, что это какая-то обёртка над http, но никакого описания нормального не нашёл, к сожалению. Готовых библиотек, что логично, тоже. Задачка, видимо, не самая распространённая.
Тем не менее, если кто-то знает, как это делается, буду крайне признателен.
Николай Алексеев, это все не корректная и подача, и постановка вопроса
- что тривиально, зачем упоминать?
- в чем проблема, не понятно?
- какая связь с тегом C#?
#, Суть в том, что реализовывать указанный в вопросе алгоритм, как видно из названия вопроса, я планирую средствами указанного языка.
Зачем упоминать? Потому что сообщество имеет особенность указывать на те аспекты вопроса, которые не имеют основной сути. Скажи я, что мне просто нужно сделать радио, кто-нибудь обязательно бы ответил: скачай сервер и не имей людям мозг. Поэтому подробное описание сущности задачи от таких ситуация спасает.
Хотя, как видно, не всегда. Суть вопроса, как по мне, описана более чем подробно. Нужно средствами c# научиться отправлять поток на broadcast сервер, так, чтоб сервер при этом понимал, что от него хотят.
Спустя пару дней изучения информации и общения с авторами сервера IceCast я-таки нашёл решение.
Может быть оно кому-то будет полезным.
Собственно, я решение оформил в виде dll'ки, которую легко можно подключить к проекту и запустить трансляцию двумя строками кода, но там же есть все исходники и материалы, которые я для этого использовал, так что можно мою библиотеку проходить мимо и просто пользоваться оригиналом.
можно воспользоваться утилитой ffmpeg, она поддерживает отправку данных стриминговым сервисам. Использовать в C# можно либо через библиотеки, либо просто через консоль.
Судя по интернетам, конкретно с IceCast ffmpeg не очень хорошо работает, поэтому в этом случае лучше другой сервис выбрать (gstreamer, ffserver и т.д.).