Instalación de Darwin Streaming Server

De Manuais Informática - IES San Clemente.
Saltar a: navegación, buscar

Introducción a Darwin Streaming Server

Darwin Streaming Server, é a versión open source do Quicktime Streaming Server de Apple, que nos permite enviar contido streaming ós nosos clientes a través de Internet empregando para elo os protocolos standard RTP e RTSP.

Está baseado no mesmo código que o Quicktime Streaming Server, e proporciona unha facilidade notable de configuración e ademáis funciona en varias plataformas como Mac, Windows, Solaris ou Linux.


¿Quén debería usar Darwin Streaming Server?

Darwin Streaming Server (DSS) é un proxecto open source orientado a programadores que necesitan enviar videos Quicktime ou ficheiros MPEG-4, en plataformas alternativas coma Windows, Linux e Solaris. Éste servizo soamente está soportado pola comunidade open source e non dispón de soporte técnico en Apple.

O Quicktime Streaming Server (QTSS) é o servidor comercial de streaming de Apple, que se envía formando parte do seu sistema operativo Mac OS X Server. QTSS proporciona ós usuarios administración mellorada, ferramentas para a xestión de medios, etc; estas ferramentas non están dispoñibles na versión open source do proxecto.

Ambos servidores soportan os derradeiros formatos dixitais como MPEG-4 e 3GPP.


Descargar Darwin Streaming Server dende a Apple

O primeiro que temos que facer é conseguir os ficheiros de instalación de Darwin. Para elo teremos que ir á seguinte dirección: http://developer.apple.com/opensource/server/streaming/index.html

Nestes intres a derradeira versión de Darwin Streaming Server é a DSS 5.5.5. Poderemos descargar os ficheiros fonte, as versións para Mac OS X, Windows ou Linux.

No noso caso imos a instalar a versión de Linux para Fedora 4 ou superior: http://www.opensource.apple.com/projects/streaming/release/DarwinStreamingSrvr5.5.5-Linux.tar.gz

Para poder descargar estes ficheiros teremos que rexistrarnos na páxina de Apple, pero trátase dun rexistro gratuito.


Instalación de Darwin Streaming Server

Descomprimiremos o ficheiro .tar.gz na carpeta /usr/local/ por exemplo:

tar zxvf DarwinStreamingSrvr5.5.5-Linux.tar.gz


Accedemos á carpeta e facemos a instalación da aplicación:

cd DarwinStreamingSrvrlinux-Linux/
./Install

Na instalación preguntaranos o nome que lle queremos dar o usuario administrador e o contrasinal para acceder ó panel de xestión do servidor. Éste é o aspecto do proceso de instalación:

Installing Darwin Streaming Server

Checking for and Killing currently running Darwin Streaming Server
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
kill 3637: No existe el proceso
Removing previous versions of Darwin Streaming Server

Backing up previous config files

Inserting path to perl into scripts..

Creating unprivileged user to run the server = "qtss".
copying DarwinStreamingServer to /usr/local/sbin/DarwinStreamingServer
copying PlaylistBroadcaster to /usr/local/bin/PlaylistBroadcaster
copying MP3Broadcaster to /usr/local/bin/MP3Broadcaster
copying qtpasswd to /usr/local/bin/qtpasswd
creating /usr/local/sbin/StreamingServerModules directory
copying createuserstreamingdir to /usr/local/bin/createuserstreamingdir
creating /etc/streaming directory
Generating a new prefs file at /etc/streaming/streamingserver.xml
INFO: Module Loaded...QTSSHomeDirectoryModule [dynamic]
INFO: Module Loaded...QTSSRefMovieModule [dynamic]
INFO: Module Loaded...QTSSFileModule [static]
INFO: Module Loaded...QTSSReflectorModule [static]
INFO: Module Loaded...QTSSRelayModule [static]
INFO: Module Loaded...QTSSAccessLogModule [static]
INFO: Module Loaded...QTSSFlowControlModule [static]
INFO: Module Loaded...QTSSPosixFileSysModule [static]
INFO: Module Loaded...QTSSAdminModule [static]
INFO: Module Loaded...QTSSMP3StreamingModule [static]
INFO: Module Loaded...QTSSAccessModule [static]
WARNING: No users file found at /etc/streaming/qtusers.
WARNING: No groups file found at /etc/streaming/qtgroups.

copying relayconfig.xml-Sample to /etc/streaming/relayconfig.xml-Sample

copying qtusers to /etc/streaming/qtusers

copying qtgroups to /etc/streaming/qtgroups
copying readme.txt to /var/streaming/readme.txt
copying 3rdPartyAcknowledgements.rtf to /var/streaming/3rdPartyAcknowledgements.rtf
creating /usr/local/movies directory
creating /var/streaming/playlists directory
copying sample_100kbit.mov into /usr/local/movies/sample_100kbit.mov
copying sample_300kbit.mov into /usr/local/movies/sample_300kbit.mov
copying sample_100kbit.mp4 into /usr/local/movies/sample_100kbit.mp4
copying sample_300kbit.mp4 into /usr/local/movies/sample_300kbit.mp4
copying sample.mp3 into /usr/local/movies/sample.mp3
copying sample_50kbit.3gp into /usr/local/movies/sample_50kbit.3gp
copying sample_h264_100kbit.mp4 into /usr/local/movies/sample_h264_100kbit.mp4
copying sample_h264_300kbit.mp4 into /usr/local/movies/sample_h264_300kbit.mp4
copying sample_h264_1mbit.mp4 into /usr/local/movies/sample_h264_1mbit.mp4
copying StreamingLoadTool to /usr/local/bin/StreamingLoadTool
copying streamingloadtool.conf to /etc/streaming/streamingloadtool.conf
copying streamingadminserver.pl into /usr/local/sbin/streamingadminserver.pl
copying Admin HTML to /var/streaming/AdminHtml directory

Launching streamingadminserver.pl

Installation Complete

Darwin Streaming Server Setup

In order to administer the Darwin Streaming Server you must create 
an administrator user.[Note: The administrator user name cannot 
contain spaces, or single or double quote characters, and cannot be 
more than 255 characters long].

Please enter a new administrator user name: admin


You must also enter a password for the administrator user 
[Note: The administrator password cannot contain spaces, or quotes, either single or double, 
and cannot be more than 80 characters long].

Please enter a new administrator Password:
Re-enter the new administrator password:

Adding userName admin
Setup Complete!


Acceso á administración do Darwin Streaming Server

Para acceder á administración do servizo de Streaming farémolo dende o navegador web tecleando como dirección a do servidor e como porto o 1220. Exemplo:


http://localhost:1220
ou
http://IP_do_Servidor:1220

Darwin-acceso.png

A primeira vez que accedemos nos pedirá que poñamos un contrasinal para facer Broadcast de MP3.

Darwin-password-broadcast-mp3.png

Ésto será necesario para facilitar que se poida empregar este servidor para enviar MP3. Por exemplo nós como clientes poderíamos enviar a música que estamos escoitando en tempo real ó servidor de Streaming Darwin (empregando o contrasinal correspondente) para que outros se poidan conectar a ese servidor e escoitar o mesmo que estamos escoitando nós.

A continuación indicamos se queremos activa-la opción de SSL para acceder ó panel de control do Servidor:

Darwin-ssl-admin.png


Indicamos cal vai ser o directorio no cal imos a colocar todos os recursos de video.

Darwin-media-folder.png


E por último configuramos si queremos facer streaming polo porto 80. Ésto soamente será necesario si temos problemas de firewall e non podemos abrir portos.

Darwin-port-80.png


Configuración do Servidor de Streaming Darwin

Éste é o aspecto xeral que ten o panel de control do servidor Darwin Streaming.

Darwin-pantalla-principal.png


Configuración de arranque automático no Linux

O servidor arrancará automáticamente cando arranque Linux

Si queremos que a interfaz web de panel de control tamén esté dispoñible no arranque editaremos o fichero /etc/rc.local e engadiremos:

## Arrancamos o panel de control de DSS no arranque.
/usr/local/DarwinStreamingSrvrlinux-Linux/streamingadminserver.pl

As playlists en Darwin Streaming Server

No seguinte directorio atópase a información sobre as playlist en darwin:

/var/streaming/playlists/


Para cada lista aparecerá unha subcarpeta cos seguintes ficheiros. Os nomes dos ficheiros constan do nome da lista, seguidos dun punto e a continuación o tipo de ficheiro. Por exemplo para unha lista chamada "lista" os ficheiros que aparecen serían os seguintes:

lista.config
lista.current
lista.err
lista.log
lista.pid
lista.playlist
lista.sdp
lista.upcoming
.started

FAQS Darwin Streaming Server

  • Os meus ficheiros .mp4, .3gp ou .mov non funcionan e obteño sempre o erro 415.

O servidor de streaming soporta ficheiros Quicktime (MOV), MPEG-4 (MP4) e 3GPP (3GP) "hinteados".

O proceso de "hinting" é un pre-procesamento e formateado que se lle aplica as películas para que poidan funcionar no Darwin Streaming Server. Pódense "hintear" os ficheiros con ferramentas como Quicktime Pro ou ferramentas dispoñibles no paquete MPEG4IP.

Se non fas o "hinteado" dos teus ficheiros poderán ser descargados via HTTP, pero tardarán máis tempo en comenzar a reproducirse. Non faría polo tanto faia o Darwin, cun servidor apache xa serviría, pero non sería propiamente streaming.

Véxase a seguinte dirección http://soundscreen.com/streaming/compress_hint.html


  • ¿Podemos facer streaming de ficheiros MP3 co DSS?

Non por defecto, pero pode configurarse empregando o módulo experimental "QTSSHttpFileModule" localizado no directorio de módulos deshabilitados. O módulo debe ser movido ó directorio de módulos e hai que definir unha carpeta http no ficheiro .xml de preferencias do servidor.

  • ¿Pódese configurar DSS para facer streaming en directo de ficheiros mp3 para simular unha emisora de radio?

Si. Pódese facer empregando MP3Broadcaster que forma parte de DSS e que nos permite transmitir ficheiros mp3 v1, v1 e v2.3 dende unha playlist no servidor. Tódolos ficheiros deberán ter a mesma calidade.

  • ¿Pódese actualizar a playlist no servidor namentres se está reproducindo?

Si. Hai que modifica-lo ficheiro da playlist, e as modificacións grabaránse co nome da playlist e a extensión ".updatelist" no mesmo directorio có ficheiro orixinal da playlist.

  • ¿Pódense ver os ficheiros que van a ser reproducidos na playlist cando se está executando?

Si. Hai que buscar os ficheiros coa extensión ".upcoming" no directorio da playlist.

  • ¿Pódese ver o nome do ficheiro actualmente en reproducción na playlist?

Si. Hai que buscar un ficheiro coa extensión ".current" no directorio da playlist.

  • ¿Pódese decir que pare a playlist despois de 0 ou máis ficheiros?

Si. Hai que engadir un ficheiro de playlist co nome da playlist e a extensión ".stoplist" no mesmo directorio có ficheiro da playlist e será lido a continuación de seguinte canción e borrado. O broadcast terminará ó final da stoplist.

  • ¿Pódense insertar un conxunto de ficheiros na playlist mentras se reproduce?

Si. Engade un ficheiro de playlist có nome da playlist e a extension ".insertlist" no mesmo directorio có ficheiro da playlist e esta lista será insertada ó final da seguinte canción e borrada a continuación. A transmisión volverá á lista orixinal despois de reproducir a lista recén insertada.

  • ¿Ónde está o ficheiro XML de preferencias do servidor?

OS X: /Library/QuickTimeStreaming/Config/streamingserver.xml Windows: c:\Program Files\Darwin Streaming Server\streamingserver.xml Linux: /etc/streaming/streamingserver.xml

¿Ónde están definidos os ficheiros de log, carpeta de películas, módulos e rutas de configuración? Ver o ficheiro defaultPaths.h no código fonte.

  • ¿Qué codecs podemos usar con DSS?

Debido a que DSS reproduce ficheiros hinteados, calqueira ficheiro que poda ser hinteado poderá ser reproducido por DSS. O proceso de hintear un ficheiro elimina a necesidade do servidor de entender o tipo de información dos ficheiros que está reproducindo.

  • ¿Cómo se compila en Linux?

Teremos que escribir "./Buildit".

  • ¿Cómo creamos un directorio de instalación e un paquete tar?

En linux, escribir "./Buildit install". O directorio DarwinStreamingSrvr-Platform de instalación e o ficheiro tar crearánse. Ver o ficheiro DevNotes.html no código fonde do directorio de documentación para máis información.

  • ¿Por qué leva un tempo (uns poucos segundos) a primeira vez que conectamos o servidor de streaming empregando o reproductor Quicktime?

A primeira vez que o reproductor conecta cunha dirección IP chequea o ancho de banda dispoñible có servidor, e esto leva uns poucos segundos.

  • ¿Por qué leva tanto tempo (30 segundos ou máis) a primeira vez que conectamos o servidor de streaming usando o reproductor Quicktime?

Si hai un firewall ou o porto por defecto UDP non está dispoñible o cliente intentará alternar portos e protocolos para conectar có servidor. Este proceso pode levar ata un minuto.

  • ¿Cómo eliminamos os problemas de firewall?

A mellor solución é configurar o firewall para permitir streaming polo porto 554 e preferiblemente con soporte UDP nos portos 6970-6999, porto 1220 para ó acceso o panel de control web, 8000 para streaming mp3 e 7070 para outros reproductores mp3. Cando iso non é posible, o reproductor Quicktime intentará automáticamente cambiar ó protocolo HTTP para transmitir dende o servidor.

  • ¿Cómo podemos transmitir polo porto 80 e ter un servidor web ó mesmo tempo?

Isto non é posible sin cambiar ou o DSS ou o servidor web a outro porto diferente do 80. Outra posibilidade sería ter dúas direccións IP e cada servicio escoitar nunha IP diferente.

  • ¿Como configuramos o acceso autenticado?

Máis información en http://developer.apple.com/opensource/server/streaming/qtss_admin_guide.pdf

  • ¿Qué queren dicir estes erros?

"415 - Unsupported Media Type" — o ficheiro non está hinteado ou está corrupto. O servidor foi atopado pero o ficheiro solicitado non é accesible.

"3285 disconnect" error — pode deberse a un firewall, o servidor foi atopado pero ocurriu un fallo na rede.

"5420 connection failed" — o servidor non foi atopado ou ben non está funcionando no servidor ou non hai conexión

"404 file not found" — quere dicir que o ficheiro non foi atopado no servidor ou o streaming en directo xa non está dispoñible no server.

HOWTO Darwin Streaming Server en howtoforge

howtoforge Streaming Server en Centos 5.2

Guia breve para instalacion en Centos 5.2 de Darwin Streaming Server

  • Descargar a version correxida por Sverker Abrahamsson en http://www.abrahamsson.com/DarwinStreamingServer-6.0.3-2.src.rpm
  • Instalar o paquete source RPM con rpm -i DarwinStreamingServer-6.0.3-2.src.rpm
  • Entrar na carpeta con cd /usr/src/redhat/SPECS/
  • Compilar o source con rpmbuild -bb DarwinStreamingServer.spec
  • Acceder á carpeta de RPMS compilados (no noso caso version i386) con cd /usr/src/redhat/RPMS/i386
  • Instalar os RPMs recen compilados con rpm -U DarwinStreamingServer* - Neste punto o DarwinStreamingServer queda bloqueado, polo que teremos que abrir outra terminal e pasados dous ou tres minutos eliminaremos ese proceso con kill -9 o id do proceso de DarwinStreamingServer.
  • Acceder co navegador ó servidor e porto 1220. Exemplo http://localhost:1220. O usuario por defecto é 'administrator' e o contrasinal por defecto é 'password'. Dende o panel de control poderase cambiar tanto o usuario como o contrasinal.
  • Ca seguinte instruccion conseguimos que o servidor arranque có sistema:

chkconfig --level 345 dss on

  • Para modifica-lo contrasinal do administrador dende a liña de comandos faremos: qtpasswd administrator
  • A carpeta de Darwin estará situada en /var/dss e as peliculas en /var/dss/movies.
  • Para reiniciar ou parar o servizo: service dss [restart, stop, start]
  • Para proba-lo streaming podemos abrir Quicktime e Abrir URL tecleando: rtsp://servidor/sample_h264_1mbit.mp4

Para máis información acceder a:

http://developer.apple.com/opensource/server/streaming/qtss_admin_guide.pdf

Outras direccións interesantes:

Streaming411 Darwin Streaming Server Páxina principal de Streaming411

Codificar Videos (hint) para o formato de Darwin Streaming Server

Empregaremos as ferramentas ffmpeg e mpeg4ip

Empregando estas duas ferramentas de codificación semella funcionar ben e ademáis gratis. ffmpeg ten moitas opcións e pódese programar para que por exemplo faga a codificación dos videos pola noite.

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum install ffmpeg --enable rpmforge
rpm -e faad2 –nodeps
rpm -e faac –nodeps
yum install SDL-devel
wget http://garr.dl.sourceforge.net/sourceforge/mpeg4ip/mpeg4ip-1.5.0.1.tar.gz
tar xzvf mpeg4ip-1.5.0.1.tar.gz
cd mpeg4ip-1.5.0.1
./bootstrap --disable-mp4live --disable-player
make
make install

Para codificar un video empregando ffmpeg e mp4creator empregaremos os seguintes comandos (o meu ficheiro orixinal era do tipo mpeg2 capturado cunha tarxeta de TV e o ficheiro chámase movie.mpg):

ffmpeg -i movie.mpg -b 300000 -s 320×240 -vcodec mpeg4 -acodec aac movie.mp4
mp4creator -optimize movie.mp4
mp4creator -hint=1 movie.mp4
mp4creator -hint=2 movie.mp4
mp4creator -list movie.mp4

Para obter unha miniatura do video para colocar na páxina, executaremos o seguinte comando:

ffmpeg -y -an -i movie.mp4 -v 0 -ss starttime -t 0.001 -f image2 "thumbnail.jpg"

Moveremos o arquivo recén creado a /var/dss/movies e o abriremos con QuickTime; seleccionar Arquivo > Abrir URL e teclear rtsp://192.168.0.110/movie.mp4 e o arquivo debería comenzar a reproducirse.


Referencias.

ffmpeg mpeg4ip

--Rafael Veiga 14:23 30 dic 2008 (GMT)