Estoy tratando de encontrar el formato de video sin pérdida más adecuado para video de 1280x720 a 25 fps. El video tiene 4 minutos. El sonido será 320 kbps mp3, eso no es gran cosa. Condiciones ideales:
- Sin pérdida (puede ser percepcionalmente sin pérdida)
- Contenedor + códec se puede jugar en la mayoría de las plataformas
- El códec Container + se puede reproducir en reproductores de DVD modernos (compatible con otros formatos que no sean DVD)
- El tamaño es inferior a 700 MB.
¿Es eso posible? Ya he estado luchando tres días, sin resultados satisfactorios, incluso obteniendo archivos de 12 GB (parece mucho: 3 GB / minuto).
video
ffmpeg
video-editing
mrkva
fuente
fuente
Respuestas:
El mejor formato real, matemáticamente sin pérdidas que conozco es huffyuv, pero eso producirá archivos enormemente divertidos y no sería compatible con mucho. Para el registro, ffmpeg puede hacerlo con:
X264, el codificador h.264 de código abierto, tiene un modo sin pérdidas. Esto puede ir dentro de un contenedor MP4 y debería ser compatible con la mayoría del hardware fabricado en los últimos años. El primer comando dará una velocidad de codificación rápida, pero un archivo grande; el segundo comando tomará mucho más tiempo, pero el archivo debe tener aproximadamente la mitad del tamaño del codificado rápido (aunque seguirá siendo bastante grande):
Si eso no te da un archivo lo suficientemente pequeño, un crf de 18 generalmente se considera 'visualmente sin pérdidas':
En general, recomiendo el ajuste preestablecido muy rápido para codificar con x264, en mi experiencia, ofrece la mejor compensación de velocidad / tamaño (hay una gran caída en el tamaño del archivo entre súper rápido y muy rápido, más lento que eso y es más incremental). El consejo general es utilizar el preajuste más lento que pueda manejar, los preajustes son: ultrarrápido, súper rápido, muy rápido, más rápido, rápido, medio, lento, más lento, muy lento.
Consulte aquí para obtener una guía más detallada sobre la codificación x264.
fuente
veryfast
como un buen valor predeterminado para pérdida x264.medium
es un buen término medio, pero generalmente lo usoveryslow
para la codificación final de cualquier cosa. Tampocohuffyuv
es muy rápido, no lo recomendaría para nada más que compatibilidad.En estos días me gusta webm :
Para realizar una conversión más rápida, con procesadores de varios núcleos, he leído que se recomienda usar un hilo menos que el de los núcleos reales. Entonces, con un núcleo de 8 puede especificar 7 hilos como este:
fuente
para tener compatibilidad total con reproductores de DVD, necesitará usar formato MPEG-2, contenedor, restricciones, códecs. Supongo que "jugadores modernos" significa compatibilidad con "mp4", que es básicamente y principalmente un reproductor de archivos mp4 - H.264, MPEG-4, AVC => libx264
# VIDEOleer más: https://de.wikipedia.org/wiki /H.264
Echar un vistazo a https://trac.ffmpeg.org/wiki/Encode/H.264 , especialmente la parte en que se trata de "perfil" y "nivel", para la compatibilidad
# AUDIOUsando
-profile:v high -level 4.0
debe hacerloEvite volver a codificar pistas de audio con códecs con pérdida: cualquier formato mp3 tiene pérdida, incluso 320 kbps.
# FinalmenteUsar en su
-c:a copy
lugar.Hasta ahora, hizo un muy buen trabajo para mí. Sin problemas de sincronización.
Las secuencias de audio no están vinculadas a fotogramas clave. Cortes precisos son posibles.
Si su pista de audio está grabada a una frecuencia de muestreo de 44 kHz, use máx. 256 kbps
Use códecs con pérdida solo para la codificación final de su video, si necesita cumplir ciertos requisitos previos.
He oído hablar de algunos problemas de sincronización de audio, pero parece que el problema principal fue que era material protegido (!).
Prefiero algo como esto:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4
fuente