¿Cómo puedo usar Avidemux para recomprimir videos H264 con calidad similar?

¿Cómo puedo usar Avidemux para recomprimir videos H264 con calidad similar?

Tengo un montón de videos tomados con mi teléfono y son bastante grandes dada su duración (por ejemplo, un video de 3 minutos a 1920 × 1080 pesa más de 400 MB).

Supongo que esto se debe a que el teléfono prefiere la duración y la calidad de la batería sobre el espacio de almacenamiento, por lo que supongo que podría ejecutarlos a través de Avidemux para recodificarlos y reducir su tamaño sin comprometer demasiado su calidad. Me doy cuenta de que cierta degradación es inevitable. Pero dado que hay tanto espacio para la compresión, creo que debería ser posible evitar una gran cantidad deperceptibledegradación.

Los vídeos están codificados en H264/AAC en un contenedor MP4. Puedo copiar el audio directamente en Avidemux. Pero ¿cómo deduzco algunos valores aproximados del codificador H264 para mantener la calidad del vídeo? No creo que el formato H264 guarde información sobre sus parámetros de entrada. Es posible elegir un nivel de calidad que aumente totalmente el tamaño del archivo sin ganancia, y también es posible elegir un nivel de calidad que haga que el vídeo sea terrible; ¿Hay alguna manera de analizar la entrada para encontrar un "punto óptimo" donde se reduce el tamaño del video sin afectar demasiado la calidad?

Me doy cuenta de que hay cierto grado de subjetividad en esta pregunta; que seriaIconsidera una degradación "perceptible"? Sin embargo, dado que los codificadores de vídeo tradicionalmente están parametrizados según las cualidades perceptivas, ¿es posible obtener un rango aproximado para algunos parámetros básicos?

Respuesta1

Existen varias herramientas de línea de comando o GUI que muestran algunos de los parámetros de codificación simplificados de un video H264, por ejemplo. ffmpego mediainfo:

$ mediainfo myvideo.mp4
[... look for the "Video" section ...]
Format profile                           : High@L4
Bit rate                                 : 17.0 Mbps

$ ffprobe -show_streams myvideo.mp4
[... look for a [STREAM] header followed by codec_type=video ...]
profile=High
level=40
bit_rate=16996359

Tenga en cuenta los parámetros profiley level(en ffmpeg). No se preocupe por la velocidad de bits, en realidad no le dice nada que el tamaño del archivo no le diga. Ipensarque la salida de levelin ffmpeges 10 veces el valor real (es decir, 40significa nivel 4, 41significa 4.1, etc.).

Avidemux le permite usar configuraciones simplificadas, donde puede configurarlas y dejar las configuraciones más precisas en los valores predeterminados de Avidemux.

Captura de pantalla de Avidemux

Supuse que estas son las configuraciones correspondientes:

  • Usar configuración avanzadano está marcado.
  • Perfiles alto.
  • Nivel IDCes 4.

Usando un más lentoPreestablecidoEl valor aumentará la calidad dentro de estos parámetros (hasta cierto punto).

También puede utilizar la codificación de dos pasos para reducir aún más el tamaño del archivo. No conozco una buena manera de predecir un tamaño de archivo razonable, pero una buena tasa de bits promedio de dos pasadas para 1920 × 1080 es entre 6 y 8 Mbps. No apunte al tamaño del archivo originalo tasa de bits: terminarás con un archivo del mismo tamaño.

En mi caso, simplemente hacer una codificación de una sola pasada en el nivel de calidad 20 (predeterminado de Avidemux) redujo a la mitad el tamaño del archivo, y la comparación usando Bino y Kinovea no mostró ninguna diferencia (para mí), incluso en fotogramas borrosos por movimiento o de alto contraste. Hacer la codificación de dos pasos a 7 Mbps (que es como resultó la codificación de un solo paso) redujo eso al 40%.

información relacionada