El filtro de yadif siempre va antes que cualquier otro.
El setdar establece la relacion entre ancho y alto que tendrá el video al reproducirse (16/9). Normalmente no es necesario excepto que el origen este mal, pero no afecta para nada la velocidad así que tiene sentido usarlo siempre.
El setfps=fps=25 asegura que los fps sean 25. Aunque en algún momento grabamos con 50 (ahora usamos 25), no es adecuado usar 50 para web porque toma más ancho de banda y recursos al decodificar.
El las versiones recientes de ffmpeg el codec de video por defecto para mp4 es libx264, así que puede omitirse siempre que no cambie en una versión futura.
-c:a aac -strict -2 dice usar el codificador AAC interno de ffmpeg, el -strict -2 es necesario porque todavía lo consideran una opción experimental (en cualquier momento lo van a dejar por defecto)
Si se sabe que el ffmpeg utilizado tiene el codificador libfdk_aac, tiene más sentido usar -c:a aac libfdk_aac pues tiene ligeramente mejor calidad.
-movflags +faststart hace lo mismo que el qt-faststart, mueve el campo "moov", sea lo que sea, y la metadata al principio del archivo así la reproducción por web puede empezar más rápido. La desventaja tanto del +faststart como del qt-faststart es que es potencialmente más lento editar la metadata pues si aumenta el tamaño de ésta hay que mover todo el vídeo (tip: no editar la metadata si el vídeo está en un pendrive con USB 1.0)
El nombre del archivo destino siempre va al final de todo. Si no tiene extensión mp4 se debe agregar -f mp4 .
A veces tiene sentido reducir la resolución, pues la fuente tiene demasiado ruido, o porque es difícil por otra razón (digamos el proyector hace un barrido (como en iis 01) o hay luces intermitentes), la fuente es mala o no hay ninguna letra chica, así que no se gana nada con la resolución original.
Esto se hace agregando al vf el filtro scale=ancho:largo (por ejemplo -vf yadif=0:0:0,scale=1280:720). Si se usa el scale y la relación largo/alto no es 16/9 puede ser necesario agregarle el setdar=16/9 (por ejemplo -vf yadif=0:0:0,scale=640:480,setdar=16/9).
<Detalle técnico>
Puede cambiarse el algoritmo usado para el scaling agregando la opción sws_flags='algoritmo' donde algoritmo es uno de los descriptos en
https://ffmpeg.org/ffmpeg-scaler.html. Por defecto usa el bicubic desde hace tiempo, que es bastante adecuado. (el bilinear lo hace demasiado suave y el lanczos o el sinc lo hacen demasiado "sharp" que es contraproducente a bitrate bajos como los nuestros).
</Detalle técnico>
Por defecto se usa el preset medium de x264. Puede obtenerse un poco más de calidad a expensas de mayor tiempo de codificación agregando -preset slow (eso cambia varias cosas que pueden consultarse en la ayuda de x264, entre ellas pone -refs 5). Si se usa 1920x1080 y se quiere mantener la compatibilidad con el nivel High@4.0 habría que limitar -refs a 4 (-refs 4) o directamente poner -level:v 4.0
De acuerdo a las pruebas que hice con algunos videos cambiar la opción trellis a 2 tiene (bastante) más efecto que subir refs de 4 a 5 (-trellis 2 se activa por defecto cuando se pone -preset slower) en cuanto a la medida matemática SSIM, habría que hacer pruebas visuales entre trellis 1 y 2 para asegurarse pero llevan su tiempo que no tengo...
En resumen:
más lento
ffmpeg -y -i Editado.mp4 -c:v libx264 -vf yadif=0:0:0,setfps=fps=25 -pass 1 -preset slow -b:v 500k -an -f mp4 /dev/null
ffmpeg -i Editado.mp4 -c:v libx264 -vf yadif=0:0:0,setfps=fps=25,setdar=16/9 -pass 2 -preset slow -refs 4 -trellis 2 -b:v 500k -c:a aac -strict -2 -b:a 128k -movflags +faststart Destino.mp4
aún más lento
ffmpeg -y -i Editado.mp4 -c:v libx264 -vf yadif=0:0:0,setfps=fps=25 -pass 1 -preset slow -bf 5 -b:v 500k -level:v 4.0 -an -f mp4 /dev/null
ffmpeg -i Editado.mp4 -c:v libx264 -vf yadif=0:0:0,setdar=16/9 -pass 2 -preset slow -bf 5 -subq 9 -trellis 2 -b:v 500k -c:a aac -strict -2 -b:a 128k -movflags +faststart -level:v 4.0 Destino.mp4
Por último si fuera necesario duplicar el canal de audio izquierdo se puede hacer agregando: -af pan="stereo| c1=c0 | c0=c0"
Generalmente eso se hace con el kdenlive pues ffmpeg no permite elegir la duración del efecto pan, pero si el kdenlive falla (de hecho falló en el iis 14) se puede hacer así.