Instalando Vapoursynth en Debian o Mint

domingo, marzo 29, 2015 0 Comments



Para quien no lo conozca VapurSynth es una aplicación para la manipulación de vídeo multi plataforma y una excelente alternativa a avisynth por muchas razones, entre ellas destacan:

    -Funciona en linux de forma nativa, el núcleo está escrito en C++ y los módulos en Python
    -Multihilo ,avisynth necesita de software de terceros para poder funcionar en modo multihilo, y algunos módulos son incapaces de aprovechar esta ventaja.
    -Es compatible con un gran número de plugins de Avisynth
    -Se le pueden añadir metadatos a los fotogramas
    -Dispone de un editor gráfico opcional en QT5, para crear scripts, hacer crops, etc...

Instalación:


Antes de nada procedemos a instalar todas las dependencias como root:

apt-get install build-essential yasm git libavcodec-dev libswscale-dev libass-dev python3-pip python3-dev cython dh-autoreconf autotools-dev
Seguidamente clonamos con git el código fuente más reciente:

git clone https://github.com/vapoursynth/vapoursynth.git
esto nos creará un directorio llamado vapoursynth con una copia reciente del repositorio, entramos en el directorio para compilar el código:

cd vapoursynth
./autogen.sh
./configure --disable-ocr
make
make install
Un pequeño apunte, en este caso he deshabilitado el ocr de la compilación porque no lo voi a usar y viene activado por defecto. Quien lo necesite primero deberá instalar estas dependencias:

apt-get install libtesseract-dev tesseract-ocr
Con esto ya tenemos vapoursynth instalado en nuestro sistema.
Solución de errores:

Si ejecutamos:

$ vspipe -v
nos dará dos errores:

primero nos dirá que no puede encontrar la siguiente librería:

libvapoursynth-script.so
esto se soluciona escribiendo en la consola estas dos lineas:

LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
export LD_LIBRARY_PATH
después:

Failed to initialize VapourSynth environment
esto se soluciona escribiendo en la consola estas dos lineas:

PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.4/site-packages"
export PYTHONPATH
Para tener que evitar escribir esto cada vez que abrimos una consola, añadimos estas lineas al final del fichero .bashrc que se encuentra en el $home de nuestro usuario, ese punto delante indica que el fichero es oculto.

escribimos como usuarios:

cd
esto nos llevará a nuestro $home

después podemos usar:

nano -w .bashrc
y añadimos estas lineas al final:

LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
export LD_LIBRARY_PATH
PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.4/site-packages"
export PYTHONPATH
o también lo podríamos hacer con echo o un editor gráfico como gedit.

Una vez realizados estos cambios veremos que la salida ha cambiado:

$ vspipe -v
VapourSynth Video Processing Library
Copyright (c) 2012-2014 Fredrik Mellbin
Core R26
API R3.1

Creando nuestro primer script:


Con esto ya podríamos crear un script y codificar la salida con x264 por ej:

vspipe --y4m script.vpy - | x264 --demuxer y4m - --output encoded.mkv
Tened en cuenta que el codificador x264 no viene instalado por defecto en el sistema, para instalarlo:

apt-get install x264
Los scripts tienen extensión vpy, y aquí pongo un ejemplo de como podría ser:

import vapoursynth as vs
core = vs.get_core()
core.std.LoadPlugin('/usr/lib/x86_64-linux-gnu/libffms2.so.3')
ret = core.ffms2.Source(source='/ruta/archivo/prueba.mkv')
ret = core.std.CropRel(clip = ret, left=0, right=0, top=20, bottom=20)
ret = core.std.AssumeFPS(clip=ret, fpsnum=24000, fpsden=1001)
ret.set_output()
*La 3 linea es necesario para crear el índice, para ello hay que indicar la ruta de donde se encuentra la librería en nuestro sistema. El resto del script es muy similar a Avisynth, y es fácil de comprender.

0 comentarios: