Saltar al contenido

Cambiar la resolución de video ffmpeg

Solución:

Supongo que realmente hay dos preguntas aquí …

  1. ¿Cómo convierto archivos por lotes?
  2. ¿Cómo escalo automáticamente un video?

¿Cómo convierto archivos por lotes?

Estos scripts deberían hacer el truco …

Ventanas

for %%i in (*.mp4) do (
    ffmpeg -y -i "%%i" << TODO >> "%%~ni_shrink.mp4"
)

Linux (¡SIN PROBAR!)

for i in *.mp4; 
do
    ffmpeg -y -i "$i" << TODO >> "${i%.mp4}_shrink.mp4";
done

(No estoy muy seguro de la expansión del archivo de salida en el script de Linux, vale la pena validarlo).


¿Cómo escalo automáticamente un video?

Esto es un poco más complicado. A medida que tenga su comando, la relación de aspecto potencialmente se estropeará. Opciones aquí …

  1. Escale el video, ignore la relación de aspecto. Resultado = video distorsionado
  2. Escale el video, mantenga la relación de aspecto para que la altura (o ancho) escalada se ajuste para que se ajuste. Resultado = óptimo
  3. Escale el video, mantenga la relación de aspecto y el relleno con barras negras para que el tamaño del video sea exactamente 480×320. Resultado = tamaño de archivo desperdiciado / aumentado
  4. Recorta la entrada antes de escalar para que “llene” la resolución de 480×320. Resultado = video incompleto

La opción 2 sería la solución preferida; de lo contrario, aumentará (probablemente innecesariamente) el tamaño del archivo de salida. Opción 3, daré una solución parcialmente probada. Opción 4 Ni siquiera voy a tocar.

Opción 2: escale el video, mantenga la relación de aspecto para que la altura se ajuste para que se ajuste

ffmpeg -y -i "%%i" -vf scale=480:-2,setsar=1:1 -c:v libx264 -c:a copy "%%~ni_shrink.mp4"

Opción 3: escale el video, mantenga la relación de aspecto y el relleno con barras negras para que el tamaño del video sea exactamente 480×320

ffmpeg -y -i "%%i" -vf "[in]scale=iw*min(480/iw,320/ih):ih*min(480/iw,320/ih)[scaled]; [scaled]pad=480:320:(480-iw*min(480/iw,320/ih))/2:(320-ih*min(480/iw,320/ih))/2[padded]; [padded]setsar=1:1[out]" -c:v libx264 -c:a copy "%%~ni_shrink.mp4"

Puede usar la herramienta ffmpeg para ello e ingresar el comando

ffmpeg -i input.mp4 -vf scale=480:320 output_320.mp4

o si desea cambiar la relación de aspecto del video, use setdar

ffmpeg -i input.mp4 -vf scale=480:320,setdar=4:3 output_320.mp4

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *