Configuración de ffmpeg para videos de alta calidad de YouTube

0

Estoy intentando grabar un video corto de mi escritorio y subirlo a youtube. El problema es que cada vez que lo subo a YouTube o incluso a Dropbox (como video), la calidad es mucho peor.

Mi ejecución ffmpeg:

ffmpeg -f x11grab -s 1366x768 -r 30 -i :0.0 -codec:v libx264 -crf 10 -bf 20 -flags +cgop -pix_fmt yuv440p -movflags faststart help.mp4

Residencia en:

ffmpeg -i <input file> -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart <output_name>.mp4

que encontré aquí

Archivo original (.zip): https://www.dropbox.com/s/xlkr83rkqfxon23/help.mp4.zip?dl=0

Archivo después de subir a youtube: https://www.youtube.com/watch?v=ewEUgpXOpmg

Como puedes ver, pierdo calidad después de subir a youtube.

¿Usted me podría ayudar?
¿Cómo debo elegir los parámetros apropiados para grabar y subir videos de alta calidad?

pb.
fuente
Tu video tiene más que suficientes bits para videos de alta calidad, pero YouTube volverá a codificar lo que le des. No hay nada que puedas hacer.
llogan

Respuestas:

0

Intente tomar su video grabado y ampliarlo.

He escuchado que cuando el sistema de codificación de YT ve un video de resolución de supermegahighigh, lo trata de manera diferente y trabaja más duro para hacer que las versiones de menor resolución tengan una calidad superior a la entrada de 1080p / etc. Nunca he explorado esto, YMMV, pero vale la pena intentarlo.

El único problema es que la ampliación de escala es un proceso necesariamente con pérdidas; La escala de píxeles perfecta se ve terrible (ver más abajo). A menos que el sistema de codificación de YT sea asombroso, espero que se necesite un suavizado para que el video se vea bien cuando se vean las versiones de 1080p / 720p (recodificadas, escaladas hacia abajo).

Por lo tanto, se trata de lograr un equilibrio entre el proceso de mayor y menor escala introduciendo la menor cantidad posible de desenfoque / pérdida. Por lo general, este es un problema de prueba y error que requerirá información del mundo real (específico a lo que se mostrará en la pantalla; por ejemplo, la mayoría de texto).

(Además, no tengo idea si puede eliminar / ocultar / etc ciertas resoluciones de video al cargar video en YT, pero es casi seguro que esté ocultando la versión cargada 2K / 4K en este caso)

Jugué un poco con ffmpeg; Los dos bits de información que resultaron más útiles fueron los página de instrucciones de escalado y el documentación del escalador .

Esto es lo que se me ocurrió:

ffmpeg -i help.mp4 -c:v libx264 -preset ultrafast -vf scale=iw*4:-1:flags=neighbor+bitexact+accurate_rnd+full_chroma_int+full_chroma_inp+print_info -y help4x.mp4

  • -c:v libx264 -preset ultrafast hace que la codificación sea más rápida, pero usa mucho disco (en este caso, 6,6 MB de salida frente a 1,7 MB de entrada). El aumento de escala parecía necesitar 1GB + de RAM y toda mi CPU, independientemente de la configuración de codificación, por lo que si tiene más ancho de banda que el tiempo, es posible que prefiera la aceleración. El codificador H264 tiene otras configuraciones de velocidad / rendimiento, ver https://trac.ffmpeg.org/wiki/Encode/H.264

  • -vf scale=iw*4:-1 mejora el video 4x & gt;: D - iw = ancho de entrada, *4 (multiplicar por 4) se explica por sí mismo, -1 = "averiguar el ancho desde la altura y mantener la relación de aspecto".

  • flags=:

    • He seleccionado neighbor aquí para mostrarle cuál es el que no hace ningún efecto de difuminado / suavizado, es decir, duplicación / triplicado de píxeles perfectos / etc ... y para hacerle saber que en realidad se ve sorprendentemente mal reducido de nuevo (no esperaba eso). ). experimental Se veía bien, no estoy seguro si era mejor que el predeterminado bicubic. yo fuertemente recomendar hojear a través https://ffmpeg.org/ffmpeg-scaler.html , armando un video de prueba corto que muestre lo que realmente desea grabar, y probando todos los codificadores (posiblemente incluso subiendo todos los videos de prueba). Cualquier trabajo que hagas aquí, tengo curiosidad por los resultados que obtienes.

    • encontré accurate_rnd+full_chroma_int+full_chroma_inp+print_info sobre https://superuser.com/questions/782133/ffmpeg-upscaling-video y los arrojó. No tengo idea de lo que hacen / si ayudan. :RE

    • bitexact suena bien. No tengo idea de lo que esto también hace.

    • print_info le muestra qué escalador está usando justo debajo de "Presione [q] para detener".

-y permite sobrescribir . De lo contrario, ffmpeg lo molestará con una "sobrescritura (y / n)" cada vez.

i336_
fuente