Source: http://desarrollo.espino.info/codigo/obtener-cambiar-la-resolucion-de-un-archivo-de-video-y-automatizar-con-ffmpeg.html
Timestamp: 2020-04-04 15:32:33+00:00

Document:
Obtener, cambiar la resolución de un archivo de video y automatizar con ffmpeg - Desarrollo Fácil
Obtener la resolución de un archivo de video
Para saber que resolución tiene nuestro archivo de video, utilizaremos el siguiente comando:
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 archivo.mp4
ffprobe es un archivo ejecutable parte de la suite de ffmpeg. El comando toma nuesto archivo como entrada y obtiene su ancho y altura. Nos lo muestra en el formato AnchoxAlto, ejemplo:
Generar un comando máscara para obtener la resolución
Podemos hacer un archivo ejecutable que reciba simplemente el nombre de nuestro archivo y nos devuelva la resolución del mismo, simplemente creamos un archivo llamado ffgetres.sh y escribimos:
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 $1
Guardamos y listo, podemos llamar a nuestro archivo de la siguiente forma:
ffgetres miarchivo.mp4
Y nos dará por resultado:
Cómo cambiar la resolución a un archivo de video
Para cambiarle la resolución a un archivo de video, utilizando el excelente programa ffmpeg, usamos el siguiente comando:
ffmpeg -i archivo_original.mp4 -vf scale=1920:1080 archivo_modificado.mp4
Cómo podemos ver, es bastante sencillo, solamente necesitamos especificar nuestro video de entrada, un parámetro de video, la escala a la que deseamos el archivo de salida, y el nombre del mismo.
Generando un comando máscara para cambiar la resolución de un archivo de video
Vamos a hacer un pequeño programa para facilitar un poco las cosas. A este programa le enviaremos el nombre del archivo que deseamos modificar, el ancho y el alto que deseamos y nos generará un nuevo archivo, de nombre scaled-{nombre del archivo original}.
Para hacer esto, simplemente creamos un archivo llamado ffscale y escribimos:
# Obtenemos el nombre del archivo a modificar del primer parámetro
# Obtenemos el ancho del segundo parámetro
# Obtenemos la altura del tercer parámetro
# Mandamos llamar ffmpeg con el comando, sustituyendo los valores
ffmpeg -i $file -vf scale=$width:$height scaled-$file
Y listo! ffmpeg generará un nuevo archivo con la resolución deseada, en la misma carpeta donde se encuentr el archivo original, solo que con el prefijo “scaled-”.
Automatizando el ajuste de resolución de videos de una carpeta
Ahora, utilizando estos pequeños programas que acabamos de escribir, podemos hacer un script para que ajuste todos los archivos mp4 que tengamos en una carpeta, algo bastante útil si trabajamos con video y vamos a estar combinandolos para formar composiciones más complejas, que tengan la misma resolución es un requisito.
Para hacer esto, creamos un archivo de nombre adjust-resolution.sh y tecleamos:
# Recorremos los archivos de video en la carpeta actual
# La variable $filename será el nombre de cada archivo
# Obtenemos la resolución
res=$(ffgetres $filename)
# La variable $res será la resolución del archivo $filename
# Mostramos la resolución del archivo
echo "$filename, Resolution: $res";
# Si la resolución es diferente a la deseada
if [ "$res" != "1920x1080" ]; then
# Anunciamos la escalación del archivo
echo "Scaling $filename to 1920x1080";
# Escalamos el archivo, con nuestra recién creada máscara
ffscale $filename 1920 1080
# Al terminar, informamos al usuario
echo "File $filename is scaled"
# Vamos a borrar el original y a renombrar el nuevo
echo "Overriding original $file"
# Borramos original
# Renombramos el nuevo
mv scaled-$filename $filename
# Anunciamos el cambio
echo "$filename is 1920x1080"
echo "Donezo!";
Y eso es todo, podemos ejecutar con el comando:
./adjust-resolution.sh
El resultado será una lista archivos con sus resoluciones. En el caso de que un archivo no tenga la resolución deseada, se realizará en ese momento el cambio, luego se continuará con el siguiente archivo mp4.
archivo1.mp4, Resolution: 1920×1080
¡Sensacional! ¿Cierto? Espero les sirva de mucho, y no se olviden, si quieren aprender bien bien de ffmpeg, visiten su documentación: https://ffmpeg.org/documentation.html
Tagged In:automatizar-bash-cambiar resolucion-ffmpeg-resolucion-script
#TiposNotacionMayusculas
Son tres principales, PascalCase, camelCase y snake_case. Pascal y camel pueden verse bien juntos en algunos lenguajes, pero no los mezcles con snake_case, si vas a usar snake_case, que sea el único estilo en el código 🙂 Related

References: resolución 
 resolución 
 resolución 
 resolución

 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución

 resolución 
 resolución 
 resolución 
 resolución