Divida um vídeo com precisão de milissegundos com FFmpeg

Divida um vídeo com precisão de milissegundos com FFmpeg

Estou tentando extrair uma parte de um vídeo com valores de tempo bastante precisos. Tentei seguir métodos que não tiveram sucesso.

ffmpeg -y -i <input_mp4> -ss 0.570 -f lavfi -i aevalsrc=0 -t 6.690000 -strict -2 -c:v libx264 -preset faster -crf 28 -acodec aac -map_metadata -1 -movflags faststart <output_mp4>
ffmpeg -y -ss 0 -i <input_mp4> -ss 0.570 -f lavfi -i aevalsrc=0 -t 6.690000 -strict -2 -c:v libx264 -preset faster -crf 28 -acodec aac -map_metadata -1 -movflags faststart <output_mp4>
ffmpeg -y -ss 0 -accurate_seek -i <input_mp4> -ss 0.570 -f lavfi -i aevalsrc=0 -t 6.690000 -strict -2 -c:v libx264 -preset faster -crf 28 -acodec aac -map_metadata -1 -movflags faststart <output_mp4>

Em todos esses comandos eu queria extrair um vídeo com duração de 6,690000 segundos, mas o vídeo real resultante teve 6,712000 segundos de duração. Esseé a FFmpegsaída sem cortes.

A seguir está o FFprobecomando que usei para obter a duração do vídeo de saída.

ffprobe -i <extracted_video> -show_entries format=duration -v quiet -of csv="p=0"

eu estava me referindo abuscandodocumento para FFmpeg. Há algo de errado com os comandos acima ou existe alguma maneira alternativa de extrair o vídeo com duração precisa?

  • Taxa de quadros de vídeo de entrada: 60 fps
  • Taxa de bits de vídeo de entrada: 25380 kbps

Responder1

informação relacionada