Como montar tu propios Streaming de video tipo youtube.

Bueno, la cosa esta de porque deberíamos tener nuestro propio Streaming, bueno, pues parias razones que desde luego podría enumerar aquí, pero tampoco creo que sea demasiado necesario. Creo que hablar de independencia tecnológica, a la mayoría, sobre todo a mi madre, lectora constate de este blog, pues le importara un pito.

No obstante aquí va un manual de como montar un Streaming de vídeo.

Hay varios paquetes open source con los que podemos montar nuestro propio Streaming, aunque mas a delante publicare el proceso desarrollo de uno de uno de ellos, bastante conocido, hoy simplemente me centrare en un instalación.

Los mas comunes que podemos encontrar por la web son;

Ostube

PHPMotion

VIMP

Aunque si es verdad que VIMP es una actualizaron de Ostube, no son la misma cosa, la aplicaron para VIMP esta realizada fundamentalmente en java, mientras que Ostube es casi todo php.

Nuevamente todo para Debian, quien use, otro sistema operativo, pues cuando tenga ganas, ya lo actualizare para Redhat, SuSe, Centos, etc. Hoy se queda en Debian.

En este manual trataremos la instalación de ostube en un servidor Debian, la razón de usar ostube sobre las otras propuestas es sencilla, con ostube podemos partir de la arquitectura definida y posteriormente desarrollar nosotros nuestro propio portal. Es decir no nos tenemos que casar con la aplicaron, podremos tocarla y manejarla a nuestro antojo. En realidad lo que mas nos interesa de aplicaciones como esta, es algo tan sencillo y la vez tan complejo, que se define en la arquitectura, streaming de vídeo necesita una serie de elementos en un orden concreto estos elementos los definiremos a lo largo de la entrada, sin embargo son esos elementos lo que nos permiten publicar vídeo y demás. Nosotros requerimos esa arquitectura y sobre ella de desarrollaremos.

Una cosa importe,  para aquellos que empecéis a desarrollar sobre código Open Source, bueno, publicar lo que vayáis haciendo, porque muchas veces repetimos entre muchos la faena que ya había solucionado otro. Se que es de cajón lo que acabo de decir, pero vamos, si podéis publicar lo que vayáis haciendo. Creo que no cuesta nada hacer un mantis y decir, tio en realizado esto, decirme que os parece, la comunidad la agradeceremos siempre, si por el contrario esta el clásico toca pelotas y te pone a parir el app, pues literalmente le mandas a tomar por culo y seguramente observareis que en el mantis de rigor mas de uno y una se apuntan a mandarlo o mandarla a la mierda. Así que animaros, desarrollar y publicar.

Vamos con el manual y basta de rollos.

Lo primero es lo primero, necesitamos descargar el Ostube.

Para ello, pues nada hay que darse de alta en Ostube y descargar la ultima version,  es un archivo tar.gz, lo descomprimis en donde querrais montar vuestro servidor es streaming

Una vez descomprimido, por ejemplo en

/var/www/misvideostube/

Tendreis una lista como esta de archivos y derectorios;

-account_notapproved.php
admin/
ajax_com.php
blog.php
cgi-bin/
changelog.html
cloud.swf
community.php
compose.php
convert.php
crossdomain.xml
expressInstall.swf
flashcomm.php
getmediafile.php
getthumbnail.php
groups_add_media.php
groups_approve_media.php
groups_approve_posts.php
groups_approve_users.php
groups_edit.php
groups_home.php
groups_invite_members.php
groups_medias.php
groups_members.php
groups_new.php
groups.php
groups_post.php
.htaccess
inbox.php
includes/
index.php
install/
js/
languages/
layout/
login.php
logout.php
media/
mediadetails.php
media_edit.php
media_inappropriate.php
media.php
my_friends.php
my_invite.php
my_password.php
my_profile.php
ostube.log*
outbox.php
recover_password.php
robots.txt
rss.php
search_result.php
signup.php
sitemap.php
sitemap.xml
skins/
smarty/
static_disclaimer.php
static_help.php
static_privacy.php
static_terms.php
swift/
tags.php
templates/
templates_c/
uberuploader/
upload.php
userlist.php
userprofile.php
users_favourites.php
users_friends.php
users_groups.php
users_history.php
users_media.php
validate_accountemail.php
vimp.swf
webtv.php

Esto no tiene la menor importancia pero hace mas grande la entrada.

Primeros pasos antes de iniciar la instalacion, deberemos configurarl el servidor.

1. Configuración del servidor:

Actualizamos y instalamos los siguientes paquetes.

apt-get upadate

apt-get dist-upgrade

esta acción tardara un buen rato, con lo que si teneis que ir a sacar al perro, comprar tabaco, tomar unas cañas, ahora es momento, ya que despues es cuando en la instalación os empezareis a picar y claro hasta que no se acaba no se levanta uno ni para mear. Es el momento de hacer esas cosas antes de que la cosa se complique.

Ahora instalaremos paquetes necesarios;

  1. Instalación de FTP Server:

apt-get install vsftpd

Configuramos el FTP Server para que tenga permisos de escritura.

vi /etc/vsftpd.conf

Buscamos la linea

#write_enable=YES

Reiniciamos el servidor FTP

service vsftpd restart

o

/etc/init.d/vsftpd restart

y quitamos descomentamos, debe quedar:

from write_enable=YES

2.  Deberemos tener IP estática, en mi caso el VHOST que he creado tiene una IPVirutal. Para saber como hacer esto, ver el manual del VHOST.

3.  Instalación de WebMin.

Esto es opcional, pero es paquete muy util para administración de servidores web, yo lo recomiendo, pero si no te interesa, pasa directamente al punto 4.

Paquetes requeridos;

apt-get install perl5 libnet-ssleay-perl

Vamos al directorio  /usr/local/src

cd /usr/local/src

Descargamos la versión 1.5 por ejemplo, si te gusta otra superior tu mismo.

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.510.tar.gz

Descomprimimos;

tar xzvf webmin-1.510.tar.gz

Accedemos al directorio creado, ejemplo;

cd  /usr/local/src/webmin-1.510

y ejecutamos su setup

sh setup.sh

Que quede de la siguiente manera;

***********************************************************************
*            Welcome to the Webmin setup script, version 1.510        *
***********************************************************************
Webmin is a web-based interface that allows Unix-like operating
systems and common Unix services to be easily administered.

Installing Webmin in /usr/local/src/webmin-1.510 …

***********************************************************************
Webmin uses separate directories for configuration files and log files.
Unless you want to run multiple versions of Webmin at the same time
you can just accept the defaults.

Config file directory [/etc/webmin]:
Log file directory [/var/webmin]:

***********************************************************************
Webmin is written entirely in Perl. Please enter the full path to the
Perl 5 interpreter on your system.

Full path to perl (default /usr/bin/perl):

Testing Perl …
Perl seems to be installed ok

***********************************************************************
Operating system name:    Ubuntu Linux
Operating system version: 12.04.4

***********************************************************************
Webmin uses its own password protected web server to provide access
to the administration programs. The setup script needs to know :
– What port to run the web server on. There must not be another
web server already using this port.
– The login name required to access the web server.
– The password required to access the web server.
– If the webserver should use SSL (if your system supports it).
– Whether to start webmin at boot time.

Web server port (default 10000):
Login name (default admin):
Login password:
Password again:
Use SSL (y/n): y
Start Webmin at boot time (y/n):
***********************************************************************
Creating web server config files..
..done

Creating access control file..
..done

Inserting path to perl into scripts..
..done

Creating start and stop scripts..
..done

Copying config files..
..done

Creating uninstall script /etc/webmin/uninstall.sh ..
..done

Changing ownership and permissions ..
..done

Running postinstall scripts ..
defined(%hash) is deprecated at web-lib-funcs.pl line 1694.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at web-lib-funcs.pl line 5464.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at web-lib-funcs.pl line 6260.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at web-lib-funcs.pl line 6919.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/samba/samba-lib.pl line 748.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/samba/samba-lib.pl line 759.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at /usr/local/src/webmin-1.510/ldap-server/ldap-server-lib.pl line 612.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/bacula-backup/bacula-backup-lib.pl line 1283.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/usermin/usermin-lib.pl line 306.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/firewall/firewall-lib.pl line 322.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at /usr/local/src/webmin-1.510/postgresql/postgresql-lib.pl line 291.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at ../web-lib-funcs.pl line 1694.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at ../web-lib-funcs.pl line 5464.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at ../web-lib-funcs.pl line 6260.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at ../web-lib-funcs.pl line 6919.
(Maybe you should just omit the defined()?)
..done

Attempting to start Webmin mini web server..
Starting Webmin server in /usr/local/src/webmin-1.510
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/miniserv.pl line 3232.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/web-lib-funcs.pl line 1694.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/web-lib-funcs.pl line 5464.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/web-lib-funcs.pl line 6260.
(Maybe you should just omit the defined()?)
defined(%hash) is deprecated at /usr/local/src/webmin-1.510/web-lib-funcs.pl line 6919.
(Maybe you should just omit the defined()?)
Pre-loaded WebminCore
..done

***********************************************************************
Webmin has been installed and started successfully. Use your web
browser to go to

https://dmz:10000/

and login with the name and password you entered previously.

Because Webmin uses SSL for encryption only, the certificate
it uses is not signed by one of the recognized CAs such as
Verisign. When you first connect to the Webmin server, your
browser will ask you if you want to accept the certificate
presented, as it does not recognize the CA. Say yes.

4. Instalacion de todos los codec y algunas cosas mas.

apt-get install mencoder

apt-get install ruby

apt-get install flvtool2

apt-get install php5-cli

5. Permisos de escritura, mejor dicho, control total para la instalacion y solo para la instalacion. Por lo tanto estos permisos que daremos son solo temporales.

chmod -R 777 /var/www/misvideostube/

6. Control total sobre el directorio /usr/libn/cgi-bin

chmod  777 /usr/lib/cgi-bin

7. Ahora editiamos el archivo php.ini de nuestro apache y modificaremos el tamaño de los objetos que podremos subir.

/etc/php5/apache2/php.ini

Moficicamos al linea;

upload_max_filesize = 2M

lo modificamos al tamaño que queramos, por ejemplo: 200M

Guardamos y cerramos.

Deberemos nuevamente reiniciar al apache para que los cambios tengan efecto.

service apache2 restart

o

/etc/init.d/apache2 restart

Ahora actualizaremo al version de osTube para php5.3.

Para ello deberemos descargar la versión de.

Ahora, descomprimimos y copiamos todo al directorio de nuestro sitio.

Nota, no copiar class.banner.php, ya que da errores.

8. Terminamos con la instalación del gd de php.

apt-get install php5-gd

9. Reiniciamos apache

service apache2 restart

o

/etc/init.d/apache2 restart

10. Ejecutamos el instalador Web

http://misitostube/install

Ejemplo:

Captura de pantalla de 2014-03-20 22:10:14

Como mi madre, gran lectora y seguidora de este blog puede apreciar en la imagen, esta todo OK, ergo el primer paso esta realizado.

Ahora toca empezar a configurar desde el instalador.

Vamos con ello después de ir a por tabaco, sacar al perro o lo que apetezca en mi caso, una partidita al Legend, una idiotez de juego, que pensé que no le tiraria mas horas que hasta el nivel 20, pero ya voy por el 48.

Proseguimos con la Configuración.

Bueno ahora la cosa no tiene ninguna historia, tan solo tenéis que eliminar el archivo class.banner.php que tenéis en el include.

Cambiar los permisos a 755 y asignar el grupo de ejecución a www-data.

Espero que os sirva,

 

Salud!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s