Я пытаюсь извлечь часть видео с довольно точными временными значениями. Я пробовал следующие методы, которые не увенчались успехом.
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: чрезвычайно точное извлечение видеофрагментов
предложеноМульвья