LINUX.ORG.RU

Сервер ретрансляции потокового видео


0

0

Доброго времени суток тебе о, LOR!

Вопрос может казаться неясным, но задача, если более подробно, формулируется так:

Есть проблема. Канал (домашняя сеть 1024Кб) слишком узок для того, чтобы каждый из членов семьи (почти 7 человек) смотрел интернет версию телеканала «Россия».

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

Сейчас изучаю доступные серверы вещания, но надеюсь на твою помощь.

Спасибо.

★★

Огорчает двачевская постановка вопроса.. А по сабжу - хз, но если решишь - отпиши как ибо в перспективе стоит такая же задача.

GreyDoom ★★★★ ()

vlc -q -I dummy -vvv --color mms://live.rfn.ru/rtr-planeta_128 --sout '#duplicate{dst=«transcode{fps=4,width=128,height=96,vcodec=divx,vb=100,acodec=mp3,ab=32}:std{access=http,mux=asf,dst=:2224}»,dst=«transcode{width=320,height=240,vcodec=divx,vb=900,acodec=mp3,ab=96}:std{access=http,mux=asf,dst=:2223}»,dst=«transcode{vcodec=divx,acodec=mp3,vb=3000,ab=128,venc=ffmpeg{keyint=180,hurry-up,vt=800000},deinterlace}:std{access=http,mux=asf,dst=:2222}»}' --ttl 12

так у меня

scaldov ★★ ()

>> интернет версию телеканала «Россия».

она отличается от оригинала ?

kto_tama ★★★★★ ()

> каждый из членов семьи (почти 7 человек) смотрел интернет версию телеканала «Россия».

эпичная картина, и что значит «почти 7 человек»? т.е. и не 6 и не 7?

lester ★★★★ ()
Ответ на: комментарий от lester

я задал вопрос так, чтобы умный человек мог улыбнуться. :)

Но ситуацию-то Вы поняли?

weare ★★ ()
Ответ на: комментарий от scaldov

vlc -q -I dummy -vvv --color mms://live.rfn.ru/rtr-planeta_128 --sout '#duplicate{dst=«transcode{fps=4,width=128,height=96,vcodec=divx,vb=100,acodec=mp3,ab=32}:std{access=http,mux=asf,dst=:2224}»,dst=«transcode{width=320,height=240,vcodec=divx,vb=900,acodec=mp3,ab=96}:std{access=http,mux=asf,dst=:2223}»,dst=«transcode{vcodec=divx,acodec=mp3,vb=3000,ab=128,venc=ffmpeg{keyint=180,hurry-up,vt=800000},deinterlace}:std{access=http,mux=asf,dst=:2222}»}' --ttl 12

Вам большое спасибо. Сегодня вчитывался и разбирался с параметрами. В общем все просто. А ваш пример наталкивает на раздумья. Обязательно изучу что значит каждый параметр.

Вопрос такой... как запустить cvlc (сегодня консольная версия 1.0.3 запускается так, как раньше было не в курсе) в фоне? Все конечно же будет крутится в консоли, но не исключено что понадобится еще 2-3 канала.

weare ★★ ()
Ответ на: комментарий от weare

-I dummy это и есть _без_ интерфейса.

cvlc это, пмсм, симлинк.

мой пример копирует поток на 2 и масштабирует их для ноута и смартфона. выдаёт на порты 2222 и 2224 asf потоки.

да, масштабирование можете убрать, как и разветвление потока на 2.

scaldov ★★ ()
Ответ на: комментарий от weare

чтоб запустить в фоне, вот такой init-скрипт у меня (/etc/init.d/vlc):

#!/bin/sh

### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/vlc
#2channels asf/asf, vlc 8.6
#OPTIONS=-q\ -I\ dummy\ -vvv\ --color\ v4l:/dev/video0:input=0:size=640x480:adev=/dev/dsp1:audio=1:samplerate=48000\ --sout\ '#duplicate{dst=«transcode{fps=4,width=128,height=96,vcodec=divx,vb=100,acodec=mp3,ab=32}:std{access=http,mux=asf,dst=:2224}»,dst=«transcode{width=320,height=240,vcodec=divx,vb=900,acodec=mp3,ab=96}:std{access=http,mux=asf,dst=:2223}»,dst=«transcode{vcodec=divx,acodec=mp3,vb=3000,ab=128,venc=ffmpeg{keyint=180,hurry-up,vt=800000},deinterlace}:std{access=http,mux=asf,dst=:2222}»}'\ --ttl\ 12

#2channels asf/asf, vlc 9.2
OPTIONS=-q\ -I\ dummy\ -vvv\ --color\ v4l2:///dev/video0:input=0:width=640:height=480\ --input-slave=oss:///dev/dsp1\ --oss-samplerate=48000\ --sout\ '#duplicate{dst=«transcode{fps=4,width=128,height=96,vcodec=divx,vb=100,acodec=mp3,ab=32}:std{access=http,mux=asf,dst=:2224}»,dst=«transcode{width=320,height=240,vcodec=divx,vb=900,acodec=mp3,ab=96}:std{access=http,mux=asf,dst=:2223}»,dst=«transcode{vcodec=divx,acodec=mp3,vb=3000,ab=128,venc=ffmpeg{keyint=180,hurry-up,vt=800000},deinterlace}:std{access=http,mux=asf,dst=:2222}»}'\ --ttl\ 12

pidfile=/var/run/vlc.pid
NAME=vlc
DESC=vlc

test -x $DAEMON || exit 0

set -e

case «$1» in
start)
echo -n «Starting $DESC: »
sudo -u fastcgi $DAEMON $OPTIONS>/dev/null & echo $! > $pidfile
sleep 1
/usr/local/bin/tvset 51
echo «$NAME.»
;;
stop)
echo -n «Stopping $DESC: »
pid=`cat $pidfile`
kill -9 $pid || /bin/true
echo «$NAME.»
;;
restart|force-reload)
echo -n «Restarting $DESC: »
pid=`cat $pidfile`
kill -9 $pid || /bin/true
sudo -u fastcgi $DAEMON $OPTIONS >/dev/null & echo $! > $pidfile
echo «$NAME.»
;;
reload)
echo -n «Reloading $DESC configuration: »
echo «$NAME.»
;;
*)
N=/etc/init.d/$NAME
echo «Usage: $N {start|stop|restart|force-reload}» >&2
exit 1
;;
esac

exit 0

scaldov ★★ ()
Ответ на: комментарий от scaldov

Спасибо, я понял, что это идет распараллеливание.

Я собираюсь вещать 2-3 потока из разных источников. Как я понял одна команда (ваша например) работает только с одним источником.

Как будет выглядеть отправка в фон vlc?

weare ★★ ()
Ответ на: комментарий от scaldov

Мне в общем понадобится написать скрипт посложнее. Как запускать скрипты из init.d я знаю.

Остается понять как сделать так:

vlc params1

vlc params2

vlc params3

Ну вроде того.

weare ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.