¿Cómo codificar para YouTube con ffmpeg?

Acabo de leer el artículo Configuración de codificación de carga recomendada del soporte oficial de Google. Creo que esta es la mejor configuración para codificar mis videos de YouTube.

¿Puede ayudarme a descubrir cómo codificar esa configuración en ffmpeg para videos de 720p o 1080p?

Aquí está la configuración

ingrese la descripción de la imagen aquí

Gracias por adelantado.

Respuestas (1)

Utilizar

ffmpeg -i in.mp4 -vf yadif,format=yuv420p -force_key_frames "expr:gte(t,n_forced/2)" -c:v libx264 -crf 18 -bf 2 -c:a aac -q:a 1 -ac 2 -ar 48000 -use_editlist 0 -movflags +faststart out.mp4

-vfespecifica filtros de video

yadifdesentrelazará los videos si están entrelazados.

format=yuv420pproducirá formato de píxel con submuestreo de croma 4:2:0.

-force_key_frames "expr:gte(t,n_forced/2)"colocará fotogramas clave cada medio segundo, por lo que será el tamaño GOP.

-c:v libx264utilizará el codificador x264 para producir una transmisión de video H264.

-crf 18producirá un archivo visualmente sin pérdidas. Mejor que establecer una tasa de bits manualmente.

-bf 2limitará los fotogramas B consecutivos a 2

-c:a aacutilizará el codificador nativo para producir una transmisión de audio AAC.

-q:a 1establece la calidad más alta para el audio. Mejor que establecer una tasa de bits manualmente.

-ac 2rematrix audio a estéreo.

-ar 48000vuelve a muestrear el audio a 48000 Hz.

-use_editlist 0evita escribir listas de edición.

-movflags +faststartcoloca moov atom/box al frente del archivo de salida.

Creo que escribiste esta respuesta usando esta configuración de carga recomendada como referencia. Este es el comando para los socios de Content ID : ffmpeg -i in.mp4 -vf yadif,format=yuv422p -force_key_frames expr:gte(t\,n_forced/2) -c:v libx264 -b:v <60M for 1080, 50M for 720, 15M for SD> -bf 2 -c:a flac -ac 2 -ar 44100 -use_editlist 0 -movflags +faststart out.mp4.
¿Alguna idea de cómo puedo ejecutar esto en un caparazón de pescado donde los paréntesis (t\,n_forced/2)se interpretan como un comando?
Encerrar expr:gte(t\,n_forced/2)entre comillas simples o dobles, supongo
-force_key_frames "expr:gte(t,n_forced/2)"
@MCCCS, ¿podría dar un resumen de las diferencias?
@Zoom Content ID Partners puede (y debe) usar 44.1kHZ y el códec de audio sin pérdidas PCM-FLAC (nota: olvidé agregar audio de 16 o 24 bits a mi comando). Deberían usar tasas de bits más altas para video. Deberían usar 4:2:2 no 4:2:0. Tenga en cuenta que mi comando no está probado.
@Gyan ¿Hay alguna diferencia entre tu respuesta -force_key_frames expr:gte(t\,n_forced/2)y -g <framerate/2>?