Ретрансляция потока mms

Статус
В этой теме нельзя размещать новые ответы.

poison-b13

Постоялец
Регистрация
21 Июл 2009
Сообщения
64
Реакции
5
Добрый день уважаемые.
Возникло желание сделать релэй некоторых станций с внешки,
но вот беда, транслируются они по протоколу mms://
а хочется поток зарулить в icecast2 и желательно консольными демонами.
Система FreeBSD 6.2.
Уважаемые гуру подскажите куда копать в инете толкового не чего не нашел, кроме как советом поднять Windows Media Server.
Заранее благодарен.
 
Добрый день уважаемые.
Возникло желание сделать релэй некоторых станций с внешки,
но вот беда, транслируются они по протоколу mms://
а хочется поток зарулить в icecast2 и желательно консольными демонами.
Система FreeBSD 6.2.
Уважаемые гуру подскажите куда копать в инете толкового не чего не нашел, кроме как советом поднять Windows Media Server.
Заранее благодарен.
Сразу скажу, что не пробовал такую связку, но в теории должно работать:
mplayer хватает mms поток и пишет в файл, который читает ices и отправляет в icecast. Можно попробовать mplayer+vlc.
 
порыскав в инете нашел пару подсказок,
а так буду пробовать сделать пару реализаций:
есть задумки сделать через fifo каналы mplayerdbitn в fifo, а из fifo запихивать через ices0 в icecast2
и есть вариант через vlc в нете нашел пару скриптов, пока еще не успел опробовать:
1.
Код:
#!/bin/sh

vlc --daemon \
--pidfile /var/run/vlc_dfm.pid \
--intf=dummy \
--color \
mms://broadcast03.station.ru/dfm?MSWMExt=.asf \
--sout-shout-name 'D-FM Radio' \
--sout-shout-description 'Dinamite FM. http://dfm.ru/' \
--sout-shout-url 'http://pentagon.net.ru/rtv/' \
--sout-shout-genre 'eurodance, electronic, pop' \
--sout '#transcode{acodec=mp3,ab=64,channels=2}:std{acces s=shout{mp3},mux=raw,dst=source:source@192.168.0.2 54:8000/dfm.mp3}'
2.
Код:
#!/bin/sh

vlc --daemon \
--pidfile /var/run/vlc_maximum.pid \
--intf=dummy \
--color \
mms://broadcast03.station.ru/maximum?MSWMExt=.asf \
--sout-shout-name 'Radio Maximum' \
--sout-shout-description 'Radio Maximum. http://maximum.ru/' \
--sout-shout-url 'http://pentagon.net.ru/rtv/' \
--sout-shout-genre 'rock, various' \
--sout '#transcode{acodec=mp3,ab=96,channels=2}:std{acces s=shout{mp3},mux=raw,dst=source:source@192.168.0.2 54:8000/maximum.mp3}'
о результатах отпишусь.
 
TC, отпишись, плз, о результатах, т.к. в ближайшее время придется столкнуться с такой же проблемой.
 
По ходу на БСД не реализуемо стандартным софтом. Может с поддержкой линя прокатит?
 
корое с vlc не получилось ни фига, vlc отказался транскодировать, поток в icecast2, пробовал и виндовый vlc тоже самое, сделал через оцифровку аудио:
запускается vlc звук идет на звуковуху(как запустить звуковуху в нете можно найти) далее берется кабелек, раньше с таким продавали тюнеры AverMEDIA с проводком для подключения от тюнера к звуковухе, т.к. посредством дров звук не шел в систему, этот проводок втыкаем в линейный выход звуковухи и в линейный вход (зеленый-голубой)
далее ставится darkice и он оцифровывает звук с этой же звуковухи и пихает его в icecast2
конфиг даркайса:
Код:
 cat /usr/local/etc/darkice.cfg
# this section describes general aspects of the live streaming session
[general]
duration        = 0             # длительность оцифровки в секундах, 0 - бесконе                                                чно
bufferSecs      = 60            # длительность внутренней буферизации, в секунда                                                х
reconnect       = yes           # переподключаться в случае дисконнекта с сервер                                                ом
realtime        = no            # оцифровка в режиме реального времени или нет

# this section describes the audio input that will be streamed
[input]
device          = /dev/dsp0     # устройство OSS DSP звуковой карты
sampleRate      = 44100         # частота дискретизации в Герцах: 11025, 22050 и                                                ли 44100
bitsPerSample   = 16            # бит на семпл, 8 или 16
channel         = 2             # каналов: 1 = моно, 2 = стерео

[icecast2-0]
bitrateMode     = cbr           # тип кодирования, допустимы vbr/abr/cbr
format          = mp3           # формат потока: mp3/ogg
bitrate         = 128           # битрейд потока
server          = 127.0.0.1     # имя хоста, на котором поднят Icecast2 (допусти                                                м IP-адрес)
port            = 8000          # порт, на котором слушает сервер IceCast2, обыч                                                но 8000
password        = YOUR_PASS               # пароль для учетной записи source на се                                                рвере IceCast2
mountPoint      = Maximum       # точка монтирования на сервере IceCast2
name            = Maximum       # название потока
description     = Maximum       # описание потока
url             = http://maximum.ru     # произвольный адрес
genre           = radio         # жанр
public          = no            # публиковать на dir.xith.org или нет?

но есть одна трабла когда отваливается инет vlc не переподключается, и еще одна что vlc не запускается под рутом
решение первой перезапуск vlc по крону раз в час, вполне хватает.
вот скрипт перезапуска:
Код:
 cat /usr/local/etc/mms-rs.sh
#!/bin/sh
#
#:sout='#transcode{acodec=vorb,ab=128,channel=2}:duplicate{dst=std{access=shout,mux=ogg,dst=source:m21412s@127.0.0.1:8000/Maximum}}'
cvlc="/usr/local/bin/cvlc"
VLCCMD="${cvlc} --daemon --intf=dummy --volume 512 mms://broadcast01.station.ru/maximum"
kill -TERM `ps -xa | grep [v]lc | awk '{print$1}'`
${VLCCMD} > /dev/null 2>&1
exit 0
а решение проблемы запуска под root'ом:
если ставим из портов vlc:
даем команду make в директории порта как только пошла первая стадия(configure)
делаем CRTL+C
и идем в папку work: туда распаковываются исходники,
ищем там среди всех папок файл vlc.c
в нем делаем правки:
Код:
#ifndef ALLOW_RUN_AS_ROOT
    if (geteuid () == 0)
    {
        fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
        "If you need to use real-time priorities and/or privileged TCP ports\n"
        "you can use %s-wrapper (make sure it is Set-UID root and\n"
        "cannot be run by non-trusted users first).\n", ppsz_argv[0]);
        return 1;
    }
#endif
на
Код:
#ifndef ALLOW_RUN_AS_ROOT
    if (geteuid () == 10)
    {
        fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
        "If you need to use real-time priorities and/or privileged TCP ports\n"
        "you can use %s-wrapper (make sure it is Set-UID root and\n"
        "cannot be run by non-trusted users first).\n", ppsz_argv[0]);
        return 1;
    }
#endif
вместо 10 можете указать любой другой UID
дальше запускаем по новой сборку(make)
после этого можно пускать под root'ом.
ну а дальше запускаем и наслаждаемся звуком.
недостаток метода: если делать несколько каналов то надо несколько звуковух.

По ходу на БСД не реализуемо стандартным софтом. Может с поддержкой линя прокатит?
про линь сказать не могу не чего, под линем редко работаю, т.к. нет машин под ним, в основном FreeBSD.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху