
La mayoria de los receptores enigma2 permiten realizar streaming transcodificado de un canal a la vez (debido a las limitaciones del SOC) y en ocasiones algunos modelos de receptores enigma2 no permiten la transcodificacion, durante este articulo vamos a desarrollar como transcodificar un canal enigma2 mediante software usando ffmpeg y e2transcoder, para ello usando un pc con sistema operativo linux.
Preparacion de entorno
En primer lugar necesitamos instalar en nuestro pc con sistema operativo linux los recursos necesarios para ello ejecutamos:
sudo apt update
sudo apt install ffmpeg apache2 libav-tools php libapache2-mod-php sqlite php-sqlite3 php-xml
Ahora creamos una carpeta donde realizaremos la descarga de e2transcoder, en este ejemplo:
mkdir selva
Nos situamos en el directorio creado
cd selva
Descargamos e2transcoder
wget http://e2transcoder.sharetext.net/wp-content/uploads/files/enigma2_transcoder_072.zip
Descomprimimos el archivo descargado
unzip enigma2_transcoder_072.zip
Para finalizar debemos mover el contenido del directorio web descargado a /var/www/html para ello usamos el comando
cp -r /home/jungle-team/selva/DB/web/* /var/www/html
Configuracion e2transcoder
Una vez hemos preparado el entorno, debemos realizar antes de configurar el acceso a nuestro receptor enigma2 una pequeña modificacion para usar la libreria sqlite3.so, para ello accedemos al directorio /usr/lib/php y en este ejemplo observamos que tenemos la carpeta 20151012 que es la que contiene la libreria mencionada
Debemos añadir la ruta donde se halla en el archivo php.ini que se encuentra en /etc/php/xx/apache2, donde xx puede variar segun la version instalada
Una vez abrimos el archivo buscamos sqlite3.extension_dir = y añadimo la ruta donde se hallaba la libreria sqlite3.so, en este caso pues quedaria asi:
Ahora ya podemos comenzar la configuracion del acceso a nuestro receptor enigma2, para ello, en este ejemplo vamos a usar la configuracion linux, por lo que ejecutamos el siguiente comando:
mv /var/www/html/admin/config_linux.php /var/www/html/admin/config.php
Ahora abrimos el archivo /var/www/html/admin/config.php con un editor de texto y observaremos que es de la siguiente manera:
//mandatory configuration
$conf[«username»] = «root»; //username to access DB transcoder
$conf[«password»] = «password»; //password to access DB transcoder
$conf[«callreceiver»] = 0; // if enigma2 receiver is not used must be 0, but it is not mandatory if receiver is used
$conf[«stream_dir»]=»/opt/web/www/video/stream/»; //full path of stream dir
$conf[«db_stream_port»]=»8001″; //enigma2 stream port
$conf[«command»] = «/opt/ff/ffmpeg»; // path of avconv or ffmpeg executable , if avconv of ffmpeg installed from package only need executable name
//$conf[«command»] = «avconv»; // path of avconv or ffmpeg executable , if avconv of ffmpeg installed from package only need executable name
$conf[«stream_web_dir»] = «/video/stream/»; //web url folder of stream//enigma2 receiver configuration
$conf[«db_username»] = «root»; //enigma2 user name
$conf[«db_password»] = «password»; //enigma2 password
$conf[«db_ip»] =»192.168.2.197″; //enigma2 IP
$conf[«db_web_port»]=»80″; //enigma2 WEB interface port// Advanced settings
$conf[«parameters»] = «-i {stream_url} -c:a aac -q:a 1 -strict experimental -c:v libx264 -crf {crf} -profile:v baseline -filter:v yadif -vf \»scale=trunc(oh*a/2)*2:min({width} \,iw)\» -r 24 -map 0:a:{audio_id} -map 0:v:0 -hls_time 10 -hls_wrap 6 {stream_dir}ystream.m3u8″;
$conf[«database»] = «db/dbtranscode.db» ; //sqlite database path
$conf[«stream_log»] = «/tmp/stream.log» ; //full path of avconv or ffmpeg log
//Bellow this line do not edit
$conf[«command»] = $conf[«command»] . » » . $conf[«parameters»];
Realizamos los siguientes cambios:
//mandatory configuration
$conf[«username»] = «jungle-team»; //usuario de acceso al panel web
$conf[«password»] = «45464546»; //contraseña de acceso al panel
$conf[«callreceiver»] = 0; // if enigma2 receiver is not used must be 0, but it is not mandatory if receiver is used
$conf[«stream_dir»]=»/var/www/html/stream/»; //full path of stream dir
$conf[«db_stream_port»]=»8001″; //enigma2 stream port
$conf[«command»] = «/usr/bin/ffmpeg»; // path of avconv or ffmpeg executable , if avconv of ffmpeg installed from package only need executable name
//$conf[«command»] = «avconv»; // path of avconv or ffmpeg executable , if avconv of ffmpeg installed from package only need executable name
$conf[«stream_web_dir»] = «/stream/»; //web url folder of stream
//enigma2 receiver configuration
$conf[«db_username»] = «root»; //usuario enigma2 que es root
$conf[«db_password»] = «jungle»; //password de nuestro receptor
$conf[«db_ip»] =»192.168.1.45″; //ip de nuestro receptor
$conf[«db_web_port»]=»80″; //puerto acceso nuestro receptor
// Advanced settings
$conf[«parameters»] = «-i {stream_url} -c:a aac -q:a 1 -strict experimental -c:v libx264 -crf {crf} -profile:v baseline -filter:v yadif -vf \»scale=trunc(oh*a/2)*2:min({width} \,iw)\» -r 24 -map 0:a:{audio_id} -map 0:v:0 -hls_time 10 -hls_wrap 6 {stream_dir}ystream.m3u8″;
$conf[«database»] = «db/dbtranscode.db» ; //sqlite database path
$conf[«stream_log»] = «/tmp/stream.log» ; //full path of avconv or ffmpeg log
Una vez realizados los cambios guardamos el archivo.
Ahora en nuetro navegador web debemos poner la ip de nuestro pc ya sea la que tiene en red o 127.0.0.1 + /index.php, ejemplo: en nuestro caso la ip de red del pc es 192.168.1.30, pues ponemos en el navegador: 192.168.1.30/index.php y nos aparecera para introducir usuario y password que configuremos en la opcion mandatary configuration
Una vez logueados accedemos a la pestaña setting, debemos pulsar sobre el icono reload playlist e2 para cargar la lista canales de nuestro receptor enigma2, y seleccionar la resolucion de la transcodificacion
y tras ello nos aparecera que ha sido leido los favoritos de nuestro receptor enigma2
Ahora seleccionamos el canal a transcodificar, para ello pulsamos sobre channels seleccionamos el canal del favorito que deseeamos en este caso cuatro hd, y observaremos que tras unos segundos nos aparecera dicho canal en runnig que quiere decir que ya esta siendo transcodificado
Ahora simplemente para visualizar dicho canal transcodificado debemos poner en este ejemplo en vlc la siguiente url:
http://192.168.1.30/stream/ystream.m3u8
Y observaremos como visionamos el canal transcodificado