7 votos

¿Por qué el recuento total de cuadros es diferente en ffmpeg que en ffprobe?

Yo quería totales recuento de fotogramas de vídeo, así que voy a usar más adelante ffprobe comando :

ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=noprint_wrappers=1 100P.mp4

y me da salida a continuación

output of ffprobe

en el resultado anterior llego 559 frames

entonces yo uso el mismo vídeo para añadir marca de agua sobre ella y yo uso el siguiente comando:

ffmpeg -i 100P.mp4 -i mt.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy -preset ultrafast output.mp4

puedo obtener una salida como esta:

output of ffmpeg

y en la imagen de arriba, después de la adición de marca de agua i get 605 frames

así que mi pregunta es ¿por qué estoy recibiendo diferentes recuento de fotogramas en ffmpeg y ffprobe?

22voto

Mulvya Puntos 156

FFmpeg, por defecto, establece la constante de velocidad de fotogramas en el modo de salida MP4. Cuando el flujo de entrada es VFR, ffmpeg duplicar o colocar marcos para generar un CFR corriente. En la salida de estadísticas, a la derecha de la frame=605, se puede ver dup=46, lo que indica que ffmpeg añadido 46 duplicado marcos. La versión corta es que esto sucede cuando dos fotogramas de entrada son más aparte de 1/FPS segundos, donde FPS representa la velocidad de fotogramas de salida. La velocidad de fotogramas de salida está configurado para detectar la entrada de framerate (la tbr valor), si no se establezca expresamente por el usuario.

Agregar -vsync vfr para evitar que el marco de la duplicación.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: