LINUX.ORG.RU — Русская информация об ОС Linux

[#]  
weare

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

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

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

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

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

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

Спасибо.

weare ** (12.12.2009 8:13:53)
Juick

[#]  
sid350

Посмотри на VLC, может умеет

sid350 *** (12.12.2009 10:57:13)
[#]  
GreyDoom

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

GreyDoom *** (12.12.2009 11:07:16)
[#] Ответ на: комментарий от sid350 12.12.2009 10:57:13  

Умеет, даже кнопочка есть - "потоковое вещание"

Anounax * (12.12.2009 11:37:03)
[#]  
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

так у меня

scaldov ** (12.12.2009 18:48:11)
[#]  

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

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

kto_tama ***** (12.12.2009 18:58:36)
[#]  

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

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

lester **** (12.12.2009 19:08:35)
[#]  
val-amart

посмотри feng

val-amart **** (12.12.2009 19:41:27)
[#] Ответ на: комментарий от lester 12.12.2009 19:08:35  
weare

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

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

weare ** (12.12.2009 20:05:45)
[#] Ответ на: комментарий от scaldov 12.12.2009 18:48:11  
weare

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 ** (12.12.2009 20:08:47)
[#] Ответ на: комментарий от weare 12.12.2009 20:08:47  
scaldov

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

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

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

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

scaldov ** (12.12.2009 20:17:49)
[#] Ответ на: комментарий от val-amart 12.12.2009 19:41:27  
weare

> посмотри feng

спасибо!

weare ** (12.12.2009 20:17:52)
[#] Ответ на: комментарий от weare 12.12.2009 20:08:47  
scaldov

чтоб запустить в фоне, вот такой 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 ** (12.12.2009 20:19:52)
[#] Ответ на: комментарий от scaldov 12.12.2009 20:17:49  
weare

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

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

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

weare ** (12.12.2009 20:24:54)
[#] Ответ на: комментарий от scaldov 12.12.2009 20:19:52  
weare

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

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

vlc params1

vlc params2

vlc params3

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

weare ** (12.12.2009 20:32:02)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru