Actualmente estoy usando un archivo por lotes que (entre otras cosas) ejecuta la siguiente línea de comando handbrakecli para convertir un video:
HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"
Esto me ha servido bien durante muchos años, produciendo un archivo de video que es más pequeño que el original (bueno cuando solo tienes dispositivos de 16 Gb), se ve lo suficientemente bien y funciona en casi cualquier iPod, iPad y iPhone que lo puse.
Sin embargo, con el tiempo, handbrakecli está luchando para convertir cada vez más videos hasta el punto de que necesito buscar una alternativa. No le ayuda el hecho de que los registros no proporcionan absolutamente ninguna información de por qué se ha bloqueado. Este video, por ejemplo, se bloqueó al 71% a través de la conversión y estas son las últimas 4 líneas:
AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0
No muy útil
Observé el uso de ffmpeg como alternativa, pero todos los ejemplos que he visto en Internet hacen uno o más de los siguientes:
- No funciona (no se reconocen las opciones de la línea de comandos): ¡común!
- El resultado es un archivo que es más grande que el original, ¡muy común!
- Distorsiona la imagen, especialmente cuando se convierte un tamaño de video inesperado (por ejemplo, PAL sin pantalla panorámica)
- Eliminar el audio
- Resulta en un video que el iPhone, iPod o iPad no reproducirá
¿Existe una línea de comando ffmepg decente para todo uso que haga que cualquier video se ejecute felizmente en todos los dispositivos Apple y logre una reducción en el tamaño del archivo?
Puntos de bonificación si también reducirá (pero no distorsionará) cualquier video de más de 720p.
Respuestas:
Aquí está mi opinión al respecto. Tomaré el iPhone 4 o más reciente (incluidos todos los iPads) como objetivo: perfil principal H.264, nivel 3.1
Los valores que puede cambiar libremente:
-crf 23
: El ajuste de calidad constante. Mayor valor = menor calidad, archivo más pequeño. Inferior = mejor calidad, archivo más grande. Los valores correctos son [18 - 24]-preset medium
: Si esto es demasiado lento para usted, use un preajuste más rápido. Si tienes paciencia para ello, usa uno más lento. Ver aquí para más información.-acodec copy
: Intenta copiar la pista de audio en el contenedor MP4. Si no se puede copiar, deberá volver a codificarlo en AAC / MP3 / AC3 ... p. Ej.-acodec libmp3lame
Si su video es superior a 720p, agregue lo siguiente después de la entrada:
-vf "scale=-2:720:flags=lanczos"
Esto reducirá su video a 720p y mantendrá la relación de aspecto. El algoritmo de escala utilizado será lanczos ya que es mucho mejor que el predeterminado.
fuente
-vf "scale=-2:720:flags=lanczos"
en su lugar.-movflags +faststart
Se recomienda agregar si el archivo se verá a través de una descarga progresiva, como en un navegador (y si no, la opción ciertamente no hace daño).x264-params
. A menos que lo construya yo mismo, ¿hay alguna forma de solucionar este problema?-x264-params
funciona bien. ¿Estás seguro de que no te perdiste algo? La opción es principalmente una seguridad para evitar tener más de 4 cuadros de referencia que podrían no ser manejados por un decodificador antiguo.-acodec libmp3lame
no funciona para mi Para habilitar el audio en mi iPad Mini, lo reconstruíffmpeg
con unanonfree
variante y lo usélibfdk_aac
codificado.Esto es básico pero funcionó de inmediato para mí en un iPad 3
fuente