Mostrando entradas con la etiqueta Video Streaming. Mostrar todas las entradas
Mostrando entradas con la etiqueta Video Streaming. Mostrar todas las entradas

jueves, 20 de noviembre de 2014

Video Streaming en Linux crtmpserver - Centos

Pasos que se utilizaron para Centos 6.4 x86

Instalan los siguientes paquetes

yum install perl-Net-SSLeay gcc gcc-c++ autoconf automake subversion make openssl-devel dstat

En la guía aparece instalar webmin pero no es necesario para que esto funcione.

yum install perl vim subversion cmake make gcc gcc-c++ openssl-devel
Se descarga el crtmpserver

svn co --username anonymous --password "" https://svn.rtmpd.com/crtmpserver/trun

cambiamos de directorio para hacer la compilación:

cd crtmpserver/builders/cmake

Esta linea compila y indica en que directorio se instalara en este caso /usr/local

cmake -DCRTMPSERVER_INSTALL_PREFIX=/usr/local . 
make install

Editamos del archivo y reemplazar lo siguiente:

  1. rootDirectory="applications"
    por
    rootDirectory="/usr/local/lib/crtmpserver/applications"

Script para iniciar el demonio para Centos

This is the /etc/init.d/crtmpserver script...  Make sure it's set to autorun

#!/bin/bash
#
#       /etc/rc.d/init.d/crtmpserver
# crtmpserver      This shell script takes care of starting and stopping
#
#### BEGIN INIT INFO
# Author: Brian Jones jonesy@cs.princeton.edu
#
# chkconfig: 2345 13 87
# description: crtmpserver is the C-RTMP-Server Service daemon.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

ROOTDIR=/usr/local
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=crtmpserver
DAEMON_ARGS="--daemon /usr/local/etc/crtmpserver.lua"
NAME=crtmpserver
DESC=crtmpserver
PIDFILE=/var/run/$NAME.pid

start() {
        echo -n "Starting crtmpserver Server: "
        if [ -f $PIDFILE ]; then
                PID=`cat $PIDFILE`
                echo crtmpserver already running: $PID
                exit 2;
        else
                daemon $DAEMON $DAEMON_ARGS
                RETVAL=$?
                echo
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/crtmpserver
                return $RETVAL
        fi

}

stop() {
        echo -n "Shutting down crtmpserver Server: "
        #echo
        killproc crtmpserver
        echo
        rm -f /var/lock/subsys/crtmpserver
        return 0
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status crtmpserver
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Usage:  {start|stop|status|restart}"
        exit 1
        ;;
esac
exit $?
En el momento de inicio si se encuentra con algún problema de inicio hay un parche disponible o modificar el fuente como se muestra aquí:

commit cf981ce3034118c6630412bb6c1ac0dee546c8e4
Author: Mariusz Pluciński <mplucinski@speednet.pl>
Date:   Tue Dec 10 16:48:38 2013 +0000

    Do not treat as error situation when SO_REUSEPORT option is not supported

diff --git a/sources/common/src/platform/linux/linuxplatform.cpp b/sources/common/src/platform/linux/linuxplatform.cpp
index 7334c28..5198b47 100644
--- a/sources/common/src/platform/linux/linuxplatform.cpp
+++ b/sources/common/src/platform/linux/linuxplatform.cpp
@@ -256,7 +256,8 @@ bool setFdReuseAddress(SOCKET fd) {
   return false;
  }
 #ifdef SO_REUSEPORT
- if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *) & one, sizeof (one)) != 0) {
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *) & one, sizeof (one)) != 0 &&
+   errno != ENOPROTOOPT) {
   FATAL("Unable to reuse port");
   return false;
  }

Una vez todo este funcionando para hacer la prueba nos conectamos con este cliente:

https://dl.dropboxusercontent.com/u/2918563/flvplayback.swf

Especificamos la dirección IP del host donde se instalo y luego connect.

Recuerde revisar o verificar la configuración del firewall.

Fuente: http://wiki.rtmpd.com/tutorial_full_centos_build -

O en el blog de adobe http://blogs.adobe.com/osmf/ - http://sourceforge.net/projects/osmf.adobe/files/

En este sitio podran encontrar información para agregar el codigo de html para los video en una pagina web:

https://sites.google.com/site/mori79/html-gadgets/media-players/flash-media-playback

También podria probarse el streaming con este link.
https://dl.dropboxusercontent.com/u/2918563/flvplayback.swf

Paginas adicionales de consulta:

http://www.computerglitch.net/blog/blog/2014/02/18/converting-axis-rtsp-to-rtmp-streams/
https://07556276077253553111.googlegroups.com/attach/85573d00af0715a6/0011-Do-not-treat-as-error-situation-when-SO_REUSEPORT-option-is-not-supported.patch?part=0.11&view=1&vt=ANaJVrF_zSkY-oQjersDcz0_o3W98TrV3_A-xQP1YQ4PuVuL1ktiAu0OUAAYUpLfHMJnyLnrDJA5194zZ2fdc3E8fFq8gI8Fw43HNoRGQJ7QAS6umClVKdQ