Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

GráficosSonidoVídeo

Editores de Vídeo - AvidemuxEditores de Vídeo - Flowblade

Editores de Vídeo - Cinelerra




Editores de Vídeo - Cinelerra




Copyright

Copyright © José Luis Lara Carrascal  2016-2018   http://manualinux.eu



Sumario

Introducción
Instalación
Iniciamos Cinelerra
Enlaces




Introducción

Cinelerra
es el editor de vídeo más antiguo y conocido que existe en GNU/Linux. Los usuarios que se iniciaban en este sistema, a principios de siglo, se lo encontraban cada dos por tres, cuando intentaban editar algún vídeo, porque no había otro. Con la frustración personal de no poder hacer nada con el mismo, al tener un limitadísimo soporte de formatos de vídeo. Tras un tiempo considerable en el limbo, un grupo de usuarios del programa, decidieron crear una versión comunitaria, actualizada a las últimas dependencias, pero sin tocar mucho el código original.

El verdadero salto de calidad se ha producido de la mano de W.P. Morrow (alias Good Guy), que compró el dominio cinelerra.org en el año 2014, con la idea de crear una versión comercial del programa. En enero de 2016, el mismo programador decidió unirse a los usuarios que mantienen la versión comunitaria, con la idea futura de fusionar las dos versiones, ya que el autor original del programa, Adam Williams, no está interesado en integrar las nuevas características de esta versión en su proyecto. Las diferencias entre las tres versiones existentes las podemos encontrar en este documento. En este manual trataremos la instalación de la versión más completa de las tres, Cinelerra Unify (GG). El nombre inicial era Cinelerra 5.1, pero, a partir de la revisión de código del 30 de septiembre de 2018, se pasó a llamar Cinelerra Unify (GG), cambiando la imagen de la pantalla de inicio y los iconos del archivo desktop de la aplicación.



Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Cinelerra para la elaboración de este documento.

* GCC - (8.2.0) o Clang - (7.0.0)
* CMake - (3.12.3)
* Gawk - (4.2.1)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Make - (4.2.1)
* Automake - (1.16.1)
* Gettext - (0.19.8.1)
* Autoconf - (2.69)
* Yasm - (1.3.0)
* Pkg-config - (0.29.2)
* NASM - (2.13.03)
* Texinfo - (6.5)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.20.3)
   LibX11 - (1.6.7)
   LibXext - (1.3.3)
   LibXft - (2.3.2)
   LibXinerama - (1.1.3)
   LibXv - (1.0.11)
* ALSA - (1.1.7)
* Fftw3f - (3.3.8)
* FLAC - (1.3.2)
* Fontconfig - (2.12.6)
* Freetype2 - (2.8)
* GLU - (9.0)
* Libavc1394 - (0.5.4)
* Libbzip2 - (1.0.6)
* Libdv - (1.0.0)
* Libiec61883 - (1.2.0)
* Libjpeg - (9c)
* Libnuma - (2.0.12)
* Libogg - (1.3.3)
* Libpng - (1.6.35)
* Libsndfile - (1.0.28)
* Libtheora - (1.1.1)
* Libtiff - (4.0.9)
* Libvdpau - (1.1.1)
* Libvorbis - (1.3.6)
* Mesa - (18.2.4)
* OpenCV - (3.4.3)
* OpenEXR - (2.3.0) [1]
* XZ Utils - (5.2.4)
* Zlib - (1.2.11)

[1] La versión incluida en el paquete disponible en este manual es la 2.3.0, dado que la 2.2.1 incluida en el paquete original del programa, da problemas de compilación, si tenemos instalada en nuestro sistema, la versión 2.3.0, que es la versión estable actual de esta dependencia.



Descarga

cinelerra-unify-git-01112018.tar.xz

Firma Digital  Clave pública PGP

cinelerra-unify-git-01112018.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify cinelerra-unify-git-01112018.tar.xz.asc cinelerra-unify-git-01112018.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD
VIA
IDT

Parámetros adicionales

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64"

Establecer el RPATH correspondiente si utilizamos una versión de GCC que no es la principal del sistema
$ export LDFLAGS+=' -Wl,-rpath,/opt/gcc8/lib64 -lstdc++'
Sustituir /opt/gcc8/lib64 por la ruta de instalación de la versión de GCC alternativa que se vaya a utilizar en el proceso de compilación de este paquete.

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++
Si utilizamos Clang con Ccache, tendremos que establecer la variable de entorno correspondiente de Ccache de uso de compilador.
$ export CCACHE_COMPILER=clang

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf cinelerra-unify-git-01112018.tar.xz 
$ cd cinelerra-unify-git-01112018
$ sed -i "206s:$:& --disable-unit-tests --disable-examples:" thirdparty/Makefile
$ sed -i '946s:0:(boolean)&:' cinelerra/libmjpeg.C
$ sh autogen.sh
$ ./configure --disable-dependency-tracking --prefix=/usr --enable-x264 --enable-libvpx \
--with-jobs=$(cat /proc/cpuinfo | grep -m1 'cpu cores' | cut -d " " -f3) \
--libdir=/usr/lib64 --with-opencv
$ sed -i 's:g++:$(CXX):g' cinelerra/Makefile plugin_config; sed -i 's:c++:$(CXX):g' db/utils/Makefile
$ sed -i 's:gcc:$(CC):g' guicast/Makefile
$ sed -i '3,5d' libzmpeg3/video/{slice,reconstruct}.C

Explicación de los comandos

sed -i "206s:$:& --disable-unit-tests --disable-examples:" thirdparty/Makefile : Evita que se produzcan errores de compilación de la versión incluida en el paquete de Libvpx.

sed -i '946s:0:(boolean)&:' cinelerra/libmjpeg.C : Soluciona el siguiente error de compilación con Libjpeg 9 y superiores.

libmjpeg.C: En la función 'mjpeg_compressor* mjpeg_new_compressor(mjpeg_t*, int)':
libmjpeg.C:946:62: error: conversión inválida de 'int' a 'boolean' [-fpermissive]
  jpeg_set_quality(&(result->jpeg_compress), mjpeg->quality, 0);

sh autogen.sh : Genera el script de configuración del paquete. 

--disable-dependency-tracking : Acelera el tiempo de compilación.

--prefix=/usr
: Instala Cinelerra en el directorio principal /usr.

--enable-x264 : Fuerza la integración estática de la versión de Libx264 incluida en el paquete. 

--enable-libvpx : Fuerza la integración estática de la versión de Libvpx incluida en el paquete.

--with-jobs=$(cat /proc/cpuinfo | grep -m1 'cpu cores' | cut -d " " -f3) : Establecemos el número de procesos en paralelo de compilación, tomando como referencia la información del número de núcleos de nuestro procesador, proporcionada por el kernel.

--libdir=/usr/lib64 : Instala las librerías en /usr/lib64, en sistemas de 64 bits multiarquitectura.

--with-opencv : Activa el soporte de OpenCV para poder compilar 6 plugins más dependientes de esta librería. Tener en cuenta que este paquete tiene que haber sido compilado con el soporte del paquete de módulos adicionales, denominado opencv_contrib

sed -i 's:g++:$(CXX):g' cinelerra/Makefile plugin_config; sed -i 's:c++:$(CXX):g' db/utils/Makefile : Sustituimos las referencias directas a G++ por las genéricas CXX en los archivos Makefile correspondientes y en el archivo de configuración de la compilación de los plugins.

sed -i 's:gcc:$(CC):g' guicast/Makefile : Lo mismo que arriba pero en este caso con GCC.

sed -i '3,5d' libzmpeg3/video/{slice,reconstruct}.C : Soluciona el siguiente mensaje de error del ensamblador en sistemas de 64 bits multiarquitectura.

video/reconstruct.C: Mensajes del ensamblador:
video/reconstruct.C:1085: Error: no coincide el tipo de operando para `movq'
video/reconstruct.C:1124: Error: no coincide el tipo de operando para `movq'
make: *** [Makefile:120: x86_64/video/reconstruct.o] Error 1

Compilación con GCC

$ make CC="gcc ${CFLAGS} ${LDFLAGS}" CXX="g++ ${CXXFLAGS} ${LDFLAGS}"

Explicación de los comandos

CC="gcc ${CFLAGS} ${LDFLAGS}" CXX="g++ ${CXXFLAGS} ${LDFLAGS}" : Dada la complejidad del paquete, la única manera segura de aplicar las variables de entorno utilizadas en el manual, es añadirlas a las variables de entorno de uso de compilador correspondientes.

Compilación con Clang

$ make CC="clang ${CFLAGS} ${LDFLAGS}" CXX="clang++ ${CXXFLAGS} ${LDFLAGS}"

Explicación de los comandos

CC="clang ${CFLAGS} ${LDFLAGS}" CXX="clang++ ${CXXFLAGS} ${LDFLAGS}" : Lo mismo que con GCC, pero cambiando el nombre correspondiente del binario ejecutable del compilador.

Instalación como root

$ su
# make install
# find /usr/lib64/cin \( -name "*.ttf" -o  -name "*.png" \) | xargs -d '\n' chmod 644
# find /usr/share/cin ! -name '*.sh' -type f | xargs chmod 644

Explicación de los comandos

find /usr/lib64/cin \( -name "*.ttf" -o  -name "*.png" \) | xargs -d '\n' chmod 644 : Con el uso combinado de los comandos find, xargs y chmod, modificamos los permisos de los archivos en formato PNG y TTF del programa, erróneamente instalados con permisos de ejecución.

find /usr/share/cin ! -name '*.sh' -type f | xargs chmod 644 : Lo mismo que arriba, pero en diferente directorio, y en este caso, con todos los archivos instalados en el mismo, excepto el script de shell que se utiliza para unir los archivos creados cuando se utiliza la granja de procesamiento para codificar audio y vídeo.

Borrar las locales adicionales instaladas con la utilidad BleachBit

# bleachbit -c system.localizations

Estadísticas de Compilación e Instalación de Cinelerra

Estadísticas de Compilación e Instalación de Cinelerra
CPU AMD Phenom(tm) II X4 965 Processor
MHz 3415.709
RAM 4096 MB
Tarjeta gráfica GeForce GT 710
Controlador de gráficos Nouveau 1.0.15
Sistema de archivos XFS
Versión del Kernel 4.18.16-ck1 SMP PREEMPT x86_64
Modo de frecuencia de la CPU ondemand
Versión de Glibc 2.28
Enlazador dinámico GNU gold (Binutils 2.31.1) 1.16
Compilador Clang 7.0.0
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10
Parámetros de compilación -j4
Ocupación de espacio en disco del proceso de compilación 1,7 GB
Tiempo de compilación 16' 29"
Archivos instalados 1.362
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 107,2 MB

Consumo inicial de CPU y RAM de Cinelerra

Consumo inicial de CPU y RAM de Cinelerra
Proceso
CPU Memoria física
cin 0 % 98,1 MB

Directorio de configuración personal

~/.bcast5 Es el directorio de configuración personal de Cinelerra en nuestro home.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

cinelerra-unify-git-01112018-scripts.tar.gz

$ su
# tar zxvf cinelerra-unify-git-01112018-scripts.tar.gz
# cd cinelerra-unify-git-01112018-scripts
# ./Desinstalar_cinelerra-unify-git-01112018

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf cinelerra-unify-git-01112018-scripts.tar.gz
# cd cinelerra-unify-git-01112018-scripts
# ./Respaldar_cinelerra-unify-git-01112018

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_cinelerra-unify-git-01112018



Iniciamos Cinelerra

Basta teclear el comando cin en una terminal o en un lanzador para que el programa se inicie. Es muy recomendable ejecutar por primera vez el programa desde la línea de comandos, para comprobar una carga correcta de los plugins del mismo. En mi caso particular, tengo que renombrar para anularlos, 6 plugins de sonido de LADSPA, que producen errores de símbolos indefinidos al cargarlos, para que se puedan cargar el resto de plugins de sonido de LADSPA. El error mostrado es el siguiente:

init ladspa index: /usr/lib64/cin/ladspa
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/sc1_1425.so = /usr/lib64/cin/ladspa/sc1_1425.so: undefined symbol: lin_data
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/sc2_1426.so = /usr/lib64/cin/ladspa/sc2_1426.so: undefined symbol: lin_data
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/sc3_1427.so = /usr/lib64/cin/ladspa/sc3_1427.so: undefined symbol: lin_data
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/sc4_1882.so = /usr/lib64/cin/ladspa/sc4_1882.so: undefined symbol: lin_data
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/sc4m_1916.so = /usr/lib64/cin/ladspa/sc4m_1916.so: undefined symbol: lin_data
int PluginServer::open_plugin(int, Preferences *, EDL *, Plugin *):
PluginServer::open_plugin: load_obj /usr/lib64/cin/ladspa/se4_1883.so = /usr/lib64/cin/ladspa/se4_1883.so: undefined symbol: lin_data
MWindow::init_plugins: no se pudo crear el índice del plugin: /home/jose/.bcast5/ladspa_plugins._usr_lib64_cin_ladspa

Y la solución es la siguiente:

$ su
# for i in sc1_1425 sc2_1426 sc3_1427 sc4_1882 sc4m_1916 se4_1883 ; do \
mv /usr/lib64/cin/ladspa/$i.so{,.bak} ; \
done


Captura - Cinelerra - 01


Captura- Cinelerra - 02


Captura- Cinelerra - 03




Enlaces


http://www.heroinewarrior.com/cinelerra.php >> La web de la versión original de Cinelerra.

http://cinelerra-cv.org >> La web de la versión comunitaria de Cinelerra, que también contiene el código fuente de la versión tratada en este manual, tras abandonar su autor, la propiedad del dominio cinelerra.org que ha vuelto a manos del autor original del programa.


Foro Galería Blog


Actualizado el 01-11-2018

Editores de Vídeo - Cinelerra

Editores de Vídeo - AvidemuxEditores de Vídeo - Flowblade