Unir varios ficheros
de vídeo |
 |
Muchas veces disponemos de varios ficheros de vídeo
que queremos unir. Este truco muestra cómo hacer un
pequeño programa Automator que realiza esta
tarea.
El comando mencoder
El comando mencoder es
un comando GPL que nos permite codificar los formatos de vídeo
MPEG-1/2/4 y AVI. Por desgracia no codifica ni decodifica
WMV, el formato de vídeo de Microsoft. Este comando
no viene por defecto en Mac OS X, pero puede buscarlo en Internet.
En la web es muy común que los vídeos se distribuyen
partidos en trozos más fáciles de bajar. Este
comando permite volver a juntar varios vídeos que cumplan
la condición de tener la misma resolución y
formato.
Si tenemos los ficheros br01.mpg
br02.mpg br03.mpg, podemos juntarlos en el fichero
br_unido.mpg con el comando:
$ mencoder -oac copy -ovc copy
-forceidx -of mpeg -o br_unido.mpg br01.mpg br02.mpg br03.mpg
Donde -oac copy y -ovc
copy indican que no queremos transcodificar, sólo
copiar los elementary stream de audio y vídeo a la
salida. La opción -of
indica el formato de salida al que codificar (avi
o mpeg), y
-o indica el fichero de salida. La opción -forceidx,
aunque no suele ser necesaria, es útil porque fuerza
a que se reconstruya el índice de sistema.
Un script para unir los videos
Para facilitar la ejecución de este comando (y construir
el programa del siguiente apartado), podemos crear un script
como el siguiente:
#!/bin/bash
# Este comando es un ejemplo escrito por Fernando L—pez
# para MacProgramadores
# Comprueba que se reciba al menos dos ficheros por argumento
if [ -z $2 ]; then
echo "No se recibieron argumentos suficientes"
exit 1
fi
# Obtiene el nombre y extension del primer fichero
# (todos los ficheros deberian tener la misma extension)
# El nombre sirve para crear el nombre del fichero final
# La extension sirve para conocer el formato a que convertir
nombre=${1%.*}
ext=${1##*.}
# Determina el tipo de la extension
case $ext in
mpeg|mpg) ext="mpeg";;
avi) ;;
*) echo "Extension $ext no valida"; exit 1;;
esac
# Une los ficheros de video
nombre=${nombre}_unidos.${ext}
comando=/usr/local/bin/mencoder
if [ -x $comando ]; then
$comando -oac copy -ovc copy -forceidx -of $ext -o $nombre $@
else
echo "No se encuentra $comando"
exit 1;
fi |
Puede descargar este script de aquí.
El comando supone que mencoder
se encuentra en la ruta /usr/local/bin/mencoder.
Como argumento recibe los ficheros de vídeo a usar,
y los une en otro fichero cuyo nombre es el mismo que el del
primer fichero pasado, pero con el sufijo
_unidos. Por ejemplo, para unir los ficheros de vídeo
anteriores, ponga el permiso de ejecución a el fichero
de script, y ejecute el script de la forma:
$ chmod +x unirvideos.sh
$ unirvideos.sh br01.mpg br02.mpg br03.mpg
El script generará el fichero br01_unidos.mpg.
Puede colocar este script en algún directorio que
esté en el PATH,
y ya podrá unir ficheros de vídeo desde la línea
de comandos. Pero en el siguiente apartado veremos cómo
ejecutar este script desde Finder.
Ejecutar mencoder desde
Automator
Automator, es una herramienta de programación (que
se distribuye gratuitamente con las Developer Tools) la cual
nos permite crear pequeñas aplicaciones, de este tipo,
en muy poco tiempo.
Podemos
construir fácilmente un aplicación Automator,
como la de la figura, que al arrastrar sobre ella varios ficheros
de vídeo los una, para lo cual se ejecuta el script
anterior.
Para ello ejecute Automator, concatene las acciones Get
Selected Finder Items y Run
Shell Script, tal como muestra la figura. La acción
Get Selected Finder Items permite conocer los ficheros
seleccionados en Finder cuando se ejecuta la aplicación
Automator, o también, como va a ser nuestro caso, conocer
los ficheros arrastrados sobre la aplicación Automator.
Los ficheros seleccionados se pasan a la acción Run
Shell Script que ejecuta el script sobre ellos. Para que los ficheros seleccionados se pasen como argumento, seleccione la opción Pass input as argument.

Cuando vaya a guardar la aplicación Automator con
la opción File|Save As...,
verá que está se puede guardar de dos formas:
- Como un Workflow, lo cual le permite editar a posteriori
la aplicación. Es decir, sería el equivalente
al código fuente de un programa.
- Como una Application, lo cual crea un ejecutable con un
icono.
Guárdela como una aplicación con el nombre
unirvideos, para obtener
una aplicación como la de la primera figura.

Un tercera opción es guardar la aplicación
con la opción File|Save
As Plug-in, en este caso puede generar un Plug-in de
Finder como el de la figura que luego se podrá ejecutar
sobre los ficheros de vídeo seleccionados.
Por
último comentar existe una aplicación GPL llamada
DropScript que también permite crear iconos que, al
arrastar sobre ella ficheros, también ejecuta un script.
La figura muestra la forma que tienen las aplicaciones generadas
por DropScript.
Para crear la aplicación de la última figura
basta con que arrastre el fichero unirvideos.sh
sobre la aplicación DropScript, para obtener otra aplicación
llamada Dropunirvideos.
|