Разделить видео с точностью до миллисекунды с помощью FFmpeg

Разделить видео с точностью до миллисекунды с помощью FFmpeg

Я пытаюсь извлечь часть видео с довольно точными временными значениями. Я пробовал следующие методы, которые не увенчались успехом.

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>

Во всех этих командах я хотел извлечь видео длительностью 6,690000 секунд, но фактическая длительность полученного видео составила 6,712000 секунд. Этотэто неразрезанный FFmpegвыходной сигнал.

Ниже приведена FFprobeкоманда, которую я использовал для получения длительности выходного видео.

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

Я имел в видуИщудокумент для FFmpeg. Есть ли какие-то ошибки в командах выше или есть альтернативный способ извлечь видео с точной продолжительностью?

  • Частота кадров входного видео: 60 кадров в секунду
  • Входной битрейт видео: 25380 кбит/с

решение1

Посмотрите на этот вопрос SOffmpeg: чрезвычайно точное извлечение видеофрагментов
предложеноМульвья

Связанный контент