Video on demand (VoD) is here to stay within our lives. A good question about this is: how could we implement this type of service?

We have a new way of sharing content with friends and relatives. We could even consider starting off a business with it. After all, video on demand is the natural successor of those old videoclubs. The creators of such content now have a distribution channel before them.

If we see ourselves in any of these scenarios, or even if our curiosity about VoD is piqued, we'll see that implementing such a platform is not as complicated as it may seem at first glance.

What is video on demand?

Video on demand is a system which allows the user to request and view custom media content. It also allows to access said content at any given time, and in many cases, it offers the possibility of viewing content in various devices like smartphones, computers or tablets. This way, not only do we choose when, but precisely where do we wish to enjoy media content.

As we'll see later on, we can implement our own private service akin to Netflix, and enjoy our own media library at any time and place. We can even add functionalities to our "online videoclub".

This task might seem daunting at first, we need to get a streaming server up and running, convert the content to an appropriate format and distribute it efficiently to every user of the service. Luckily, at this day and age we can find software packages which include everything we need once it's installed into our server. On another hand, now that VPS are becoming more and more affordable, there is virtually nothing that's stopping us from diving into business.

Video on demand with Streamhash

Out of the many options available, I have chosen Streamhash. It's among the more popular choices and it offers 3 different solutions:

StreamNow: Oriented towards live streaming, think Youtube Live

StreamTube: If we wish to run a service similar to Youtube or Vimeo 

StreamView: Allows us to run a service like Netflix or Amazon Prime Video 

StreamView also comes in three versions:

StreamView Lite which is an open-source web application which doesn't impose limits to the amount of users or distributed videos. On the other hand, we can also classify content in categories and genres, as well as track user activity. The front-end is responsive and the admin panel is simple and intuitive. Lastly we can create the static content pages we deem necessary.

SreamView Deluxe: For a one-time-fee of $199, we can make signing up through social media available, have Paypal integration, subscriber management, Pay Per View, various content upload channels and video encoding within the server. This is definitely what we need to monetize the service and turn it into a profitable business.

StreamView Ultimate which will cost $699 and includes everything mentioned above as well as native applications for iOS and Android.

We'll focus on StreamView Lite, the free version which is more than enough to get started with.

Installing SreamView Lite

We can download the software from its official webpage. Unzip the downloaded file into a folder inside our PC.

To install StreamView Lite.

Para instalar StreamView Lite necesitaremos un servidor con Ubuntu 14, para el que podemos utilizar las máquinas de capa gratuita de AWS o Google Cloud. Debemos instalar Apache 2.4, PHP 5,6 y MySQL en nuestro VPS.  

Necesitaremos espacio para almacenar los videos, por ese motivo al crear la instancia es recomendable ampliar el disco según nuestras necesidades de espacio. Lógicamenre podemos ampliarlo en cualquier momento posterior.

A continuación tenemos un resumen de los comandos a utilizar.

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install mysql-server php-mysql
sudo mysql_secure_installation

Incluimos el repositorio de PHP 5.6

sudo add-apt-repository ppa:ondrej/php ​​
sudo apt-get install -y php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip libapache2-mod-php5.6

Editamos la configuración de Apache y movemos index.php al principio de la lista de la directiva DirectoryIndex. Luego reiniciamos el servidor para que aplique la nueva configuración. 

sudo nano /etc/apache2/mods-enabled/dir.conf

Basicamente debemos dejarlo de esta forma

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Guardamos los cambios y reiniciamos el servidor

sudo service apache2 restart

El paso siguiente es instalar Phpmyadmin. En esta entrada tenemos una guía de instalación detallada. Una vez instalado phpmyadmin accedemos, creamos una nueva base de datos para streamview e importamos en ella el archivo common.sql que encontraremos en la carpeta DB del software descargado.

Abrimos el archivo .env modificamos las siguientes líneas:

DB_HOST = localhost (ubicacion del servidor MySQL)
DB_PORT = 3306 (puerto de MySQL)
DB_DATABASE = base-de-datos-creada-para-streamview
DB_USERNAME =usuario-base-de-datos
DB_PASSWORD = contraseña-base-de-datos

Para simplificar instalaremos StreamView Lite en el sitio por defecto de Apache, por tanto subimos las carpetas de descomprimidas a /var/www/html en el servidor. 

Debemos asegurarnos de tener los permisos correctos  para ellos ejecutamos los siguientes comandos

sudo chown -R www.data:www-data /var/html/
sudo chmod -R 0777 /var/html/storage
sudo chmod -R 0777 /var/html/uploads
sudo chmod -R 0777 /var/html/bootstrap/cache

Como siempre¡, recomendamos activar SSL mediante Certbot y Let's Encrypt, para lo cual tendremos que registrar un dominio en DNS. Una vez finalizados estos pasos accedemos a nuestro servidor y si todo ha ido bien nos aparecerá la primera pantalla de la instalación web 

Si no vemos esta pantalla debemos revisar si hemos seguido correctamente todos los pasos de la instalación. En la siguiente pantalla configuraremos el nombre de nuestro sitio y tendremos la posibilidad de subir nuestro logo y fav_icon. 

Streaming URL lo dejamos en blanco. Enviamos los datos y el sistema nos llevará a la url de administración: http://dominio-elegido/admin

La contraseña por defecto es 123456. Será lo primero que cambiaremos al acceder al panel de administración.

Si accedemos a  http://dominio-elegido veremos la interfaz habitual de cualquier servicio de video bajo demanda

Administracion de StreamView Lite

Como mencionamos anteriormente lo primero es cambiar las credenciales de administracion por defecto. Lo haremos desde Account.

Además de la contraseña, en Update Profile modificaremos el correo y el nombre de usuario del administrados según nos convenga.

En Settings podemos modificar la información de nuestro sitio. Es básicamente la información introducida al durante la instalación. Tambien podemos añadir scripts personalizados como por ejemplo Facebook Pixel, Google Analytics, etc.

En usuarios añadiremos los usuarios de nuestra web. Solo los usuarios registrados pueden ver los videos completos. Los visitantes no registrados solo tienen acceso al trailer correspondiente.

Antes de subir un video debemos crear las categorias y subcategorías correspondientes. Todos los campos son obligatorios. Lo mismo sucede con los videos que subamos. La versión Lite no implementa conversión de formatos. tanto el video como el trailer debe estar en uno de los siguientes formatos .mp4, .mkv o .qt:

El apartado Pages nos permite generarlas  páginas estáticas: Nosotros, Política de privacidad y Términos de uso, etc. Indicamos el título, el tipo de página y el html completo de la página. Dashboard nos muestra un resumen del estado y la actividad del sitio.

Un punto importante es que subiremos archivos grandes. Por tanto debemos ajustat los parámetros upload_max_filesize y post_max_size a unos valores adecuados (por ejemplo 4000M si vamos a subir películar en HD). Lo haremos editando el archivo php.ini.

sudo nano /etc/php/5.6/apache2/php.ini


Conclusión

Si disponemos de un servidor VPS, podemos sacarle provecho impementando nuestro propio servicio de video bajo demanda y disfrutar de nuestros contenidos en cualquier parte y en cualquier momento.

Anteriormente vimos como implementar nuestra propia nube mediante NextCloud. De esta manera podemos sacarle el máximo provecho a nuestro servidor y rentabilizarlo aún más. 

Si queremos más personalización o ampliar las funcionalidades, tenemos acceso al código fuente. Sin embargo necesitamos conocimientos de programación.

En definitiva la versión gratuita está bien para experimentar y adentrarnos en el mundo del VOD sin necesidad de realizar una inversión importante. En mi opinión cumple perfectamente su cometido y ofrece muy buenas sencaciones sobre lo que pueden aportar sus hermanos mayores.