Estoy usando ffmpeg para codificar mis videos para subirlos a la web. Vi esta publicación sobre el uso de ffmpeg, pero no entendí cómo considerar los valores.
Supongamos que tengo un video de 70 MB con una duración de 4 minutos. ¿Cómo iba a considerar el valor de estas banderas: -b:v, -maxratey -bufsizepara este comando?
ffmpeg -i input -codec:v libx264 -profile:v main -preset slow -b:v ? -maxrate ? -bufsize ? -vf "scale=720:trunc(ow/a/2)*2" -threads 0 -codec:a libfdk_aac -movflags +faststart output
¿O hay algún valor normal, como para los crfvalores son 19-24? Realmente agradecería su ayuda y orientación.

Respuestas:
Realmente depende de tu velocidad de carga.
bufsizedeterminará cuán religioso se trata de mantener constante tu tasa de bits. Si establece un valorbufsizede 64k, según FFmpeg Wiki: Limitando la tasa de bits de salida , calculará su tasa de bits actual cada 64 kilobytes y se ajustará en consecuencia. Los tamaños más pequeñosbufsizepueden ser perjudiciales para la calidad, ya que no permiten suficiente espacio entre las comprobaciones para x264 para realizar cambios repentinos: obtendrá bloqueo.Si su
maxratees 640kbps, y subufsizees 64k, entonces cada décima de segundo x264 comprobaría. Esto es subóptimo: FFmpeg Wiki: la codificación para sitios de transmisión recomienda ejecutarlo cada 1 o 2 segundos. Si esto no tiene sentido, considérelo comomaxrate/bufsize= frecuencia de las verificaciones. Mantenga esta frecuencia entre 1 y 2 segundos como regla general.Si configura ambos
maxrateybufsize, debe:maxratea la velocidad de carga más baja que sea probable (en el ejemplo de wiki de ffmpeg , esto es el 80% de la velocidad de carga total, pero su kilometraje puede variar).bufsizeen algún lugar entre lo mismo que sumaxrate(un segundo) y dos veces de sumaxrate(2 segundos). Si todavía no es lo suficientemente bajo, baje su valormaxratey luego vuelva a configurarlo enbufsizeconsecuencia.Entonces, tendrás que jugar un poco, pero como tienes que comenzar en algún lugar, comenzaría en
maxratealrededor de 600k, que generalmente fue lo suficientemente satisfactorio para mí antes de que lo usaracrfpara todo.Si lo desea, puede probar valores más bajos para
bufsize, como cada tres o cuatro segundos, solo para ver cómo el valor cambia la apariencia de su salida. Luego, puede determinar cuánto debe preocuparse por su video.En realidad, no hay un valor normal: lo que
crfhace es optimizar la salida en función de lo que cree que es el mejor tamaño de búfer para mantener la velocidad establecida. Trata de mantener un tamaño de archivo tan bajo mientras mantiene cierta calidad, a costa de picos ocasionales.fuente
crf, entonces no necesito especificarbitrate,buffsizeymaxrate? Y si es así, ¿cuál es más eficiente (usarcrfobitrate,buffsizeymaxrate)?bufsizeymaxrate. Sinbitrateembargo, no es necesario . Como dijo Ely, mejorará la transmisión.