He estado usando la GUI (clic derecho => comprimir) para intentar comprimir un .tar que contiene 3 videos con un total de 1.7gb (.H264 MP4s). gzip, lrzip, 7z etc. no hacen nada al tamaño del archivo y la carpeta comprimida también tiene 1.7 gb.
Luego intenté ejecutar lrzip desde la línea de comandos (en caso de que fuera un problema de interfaz gráfica de usuario), y usé el indicador -z (compresión extrema), y este fue mi resultado.
Como muestra la relación de compresión, ¡el tamaño real de la carpeta comprimida es más grande que el original! No sé por qué no tengo suerte, lrzip en particular debería ser efectivo de acuerdo con las revisiones aleatorias que he leído y los documentos oficiales (archivos de más de 100 mb , cuanto más grande, mejor) - vea https: //wiki.archlinux. org / index.php / Lrzip
¿Por qué no puedo comprimir mis archivos?
Respuestas:
Como @pram dijo anteriormente en el comentario, los videos mp4 ya están comprimidos, y otros formatos de video probablemente también usan la compresión en cierta medida. Por lo tanto, tratar de comprimirlos no dará como resultado una pequeña (si es que la hay) reducción de tamaño (esto también se aplica, al menos en parte, a las imágenes y la música). En este caso, parece que los metadatos (para el archivo comprimido en sí) podrían estar causando el aumento. El único formato de compresión que podría (y ese es un fuerte poder) resultar en alguna reducción es xz.
En otra nota, si desea reducir el tamaño de esos videos, busque volver a codificar los videos usando Handbrake.
fuente
Realmente, el hecho de que los archivos ya estén comprimidos no es el problema crucial. Es esto: la compresión en general solo puede funcionar si los datos tienen algún tipo de redundancia . Ese es prácticamente siempre el caso de los archivos sin comprimir; sin embargo, no es necesariamente obvio cuál es la redundancia. Los algoritmos de compresión de propósito general se dirigen principalmente al tipo de cosas obvias en los archivos de texto: muchas palabras aparecen no solo una vez sino muchas veces en forma idéntica, tal vez se pueden combinar frases de palabras, etc. etc. Los algoritmos son bastante buenos en generalizando esto a cualquier cosa, desde listas de números de teléfono codificados en ASCII sobre poesía china hasta código de máquina binario, pero no pueden funcionar para ningún tipo de datos. En particular, los archivos multimedia son conceptualmentedatos analógicos , en una representación digital ruidosa. Eso significa que en realidad no hay ningún tipo de redundancia de archivos de texto: algunos motivos pueden ser recurrentes, pero siempre con una configuración ligeramente diferente del ruido del sensor. Es por eso que todos los formatos de imagen / AV comprimidos usan alguna transformación ingeniosamente elegida como su primer paso de codificación, normalmente basado en DCT o wavelets . Estas transformaciones, en términos generales, mueven las porciones de imagen y las porciones de ruido a diferentes ubicaciones, por lo que pueden separarse bien y con una compresión con pérdida, retiene solo la información que cree que es más "importante", que no incluye el ruido, mientras que " buena información "tiene mucha redundancia. (En realidad no es así, pero más o menos).
Si los compresores de uso general usaran estas transformaciones, el efecto sería el opuesto: la mayoría de la información digital se clasificaría erróneamente como algún tipo de ruido, porque carece de la estructura "uniforme" que se encuentra en las señales analógicas. Y después de la compresión de video con pérdida, obviamente, ya no se puede encontrar ni la suavidad analógica ni la recurrencia digital (si lo fuera, ¡los códecs usarían otra etapa bzip o algo por sí mismos!)
fuente
La razón por la que no tienes suerte es que mp4 ya está comprimido, no puedes comprimirlo más. Todo lo que está haciendo es agregar la información del encabezado del formato de compresión al archivo.
Dado que los archivos ya están comprimidos y no puede comprimirlos más, esto aumenta el tamaño del archivo, ya que todo lo que está haciendo es mantener la misma información y agregar algunos bytes más de información de encabezado.
fuente
Este es un buen ejemplo del principio del casillero .
Dado que el archivo ya está comprimido (con pérdida), hay poca o ninguna reducción en cualquier lugar, lo que significa que ya tiene una ganancia neta cero. Como los otros mencionaron, el formato comprimido en sí tiene una pérdida cierta, generalmente insignificante, en sus propios metadatos. Todo esto se combina significa que probablemente no quede ningún casillero en el conjunto de archivos iguales o más pequeños y, por lo tanto, sus datos comprimidos caen en el conjunto de archivos más grandes.
fuente
Si desea comprimir estos archivos, deberá reducir la calidad.
Sin saber cuánto tiempo y qué tipo de formato y contenido son estos archivos, es difícil saber si estos archivos tienen espacio para reducirse sin mucha pérdida de calidad visible.
BluRays con video de 1080p tiende a superar los 25 GB, por lo que no es improbable que ya tenga una relación calidad / tamaño óptima para H.264.
Puede intentar usar
ffmpeg
oavconv
para convertir archivos.Podrías comenzar con
ffmpeg -i input_file.mp4 -preset slower -crf 20 -c:a copy output_file.mp4
El
anconv
comando funcionará de manera similar.Aumente el
-crf
valor para disminuir el tamaño y la calidad del archivo, no recomiendo más de 25.Puede cambiar el valor predefinido de
slow
omedium
para aumentar la velocidad, pero el tamaño del archivo sufrirán en comparación conslower
, o inclusoveryslow
(si eres muy paciente!).Más configuraciones se pueden encontrar aquí: http://mewiki.project357.com/wiki/X264_Settings
Recomiendo mantenerse alejado de la mayoría, ya que los preajustes proporcionan valores predeterminados sanos, con
-tune
la excepción.Pruebe con un eliminador de ruido si su contenido es película (
-vf hqdn3d
) puede mejorar la calidad visual en comparación con el uso de un-crf
valor alto .Reduce tu contenido
-vf scale=-1:720
a 720p y-vf scale=-1:480
480p para mejorar la velocidad de codificación y mantener la calidad.fuente