Probé la mayoría de las otras respuestas propuestas a esta pregunta. Las conclusiones de los datos de prueba están a continuación. Estas son las respuestas propuestas que probé:
(BR) Modifique la tasa de bits, utilizando:
ffmpeg -i $infile -b $bitrate $newoutfile
(CR) Varíe el factor de tasa constante, usando:
ffmpeg -i $infile -vcodec libx264 -crf 23 $outfile
(SZ) Cambie el tamaño de la pantalla de video (por ejemplo, a la mitad de su tamaño de píxel), usando:
ffmpeg -i $infile -vf "scale=iw/2:ih/2" $outfile
(BL) Cambie el perfil H.264 a "línea base", usando:
ffmpeg -i $infile -profile:v baseline $outfile
(DF) Use el procesamiento predeterminado de ffmpeg, usando:
ffmpeg -i $infile $outfile
DATOS
- "tamaño": porcentaje de tamaño de píxel del video convertido en relación con el original.
- "bitrate" - bitrates de videos originales y convertidos.
- "definición": tamaño de píxel de los videos.
- "convertir": tiempo para convertir el video en segundos.
Calculé la tasa de bits objetivo para (BL) utilizando el método propuesto.
=== Archivo A - Cómo el nodo está ayudando a impulsar Angular-Fnbixa7Ts6M.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 64152 kb 214% 76% 40% 83% 76%
bitrate 411 kb/s 883 313 165 342 313
definition 1920x1080 1920x1080 1920x1080 960x540 1920x1080 1920x1080
convert -- 648 509 225 427 510
=== Archivo B - Uso de GraphQL con Angular _ Por - Lee Costello-OGyFxqt5INw.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 410301 kb 33% 109% 28% 143% 109%
bitrate 2687 kb/s 880 2920 764 3843 2920
definition 3840x2160 3840x2160 3840x2160 1920x1080 3840x2160 3840x2160
convert -- 2307 3188 1116 2646 3278
CONCLUSIONES
El método (SZ) es definitivamente el método más rápido. Fue 2X a 4X más rápido. Esto puede ser un gran problema en los videos de alta definición, ya que todos los otros métodos tardaron más en convertirse que la duración real del video. Por ejemplo, el método (CR) tardó 53 minutos en convertir el video de 21 minutos.
El método (SZ) es definitivamente el mejor método si la definición del video es mayor que la definición de la pantalla que lo mostrará. Por ejemplo, si su teléfono solo puede mostrar una imagen de 1080p, enviarle un video de 3840x2160 es un desperdicio. Sería mejor reducir a la mitad su tamaño a 1080p.
Algunas de las respuestas propuestas en realidad AUMENTARON el tamaño de algunos videos. Por ejemplo, el método (BR) duplicó con creces el tamaño de la muestra de 1080p. Sin embargo, hizo que el tamaño de 2160p fuera un tercio. Para la muestra de alta definición, los métodos (CR), (BL) y (DF) AUMENTARON el tamaño del video.
Respuesta correcta (o mejor)
Siempre es mejor bajar primero la resolución al máximo admitido por su pantalla de destino.
Si desea reducir aún más el tamaño del archivo, dependerá de las elecciones personales. Puede reducir el contenido de la información o aumentar la compresión.
Puede reducir la resolución más si eso no es algo que le preocupa.
Si el video no incluye escenas de acción rápida, es posible que desee reducir la velocidad de fotogramas.
Si tiene un procesador potente y el espacio es el único problema, puede aumentar la tasa de compresión.
La velocidad de bits es una combinación de múltiples factores. Entonces, solo decirle a ffmpeg que baje la velocidad de bits puede no darle los resultados que desea.
Otra forma de reducir el contenido de la información es disminuir la profundidad del color. Cómo hacer esto aún no se discutió.
ffmpeg
página del manual muestra una-fs
opción para limitar el tamaño de salida, ¿funciona algo asíffmpeg -i in.avi -fs 100M out.avi
?