Допустим, у меня есть видео под названием Concert.mp4. Я хочу быстро извлечь из него производительность с минимальным перекодированием. Я хочу сделать эквивалент этого, но быстрее:
ffmpeg -i "Concert.mp4" -ss 00:11:45 -to 00:18:15 -preset veryfast -y artist.mp4
Это занимает 17 секунд, что слишком много для наших нужд.
Теперь получается, что 11:45 и 18:15 не попадают в iframes, поэтому, если вы попробуете это, вы получите 3-секундную задержку в начале, прежде чем видео покажет:
ffmpeg -i "Concert.mp4" -ss 00:11:45 -to 00:18:15 -c copy -y artist.mp4
Запустив эту команду, мы увидим, где нам нужно сократить:
ffprobe -read_intervals "11:00%19:00" -v error -skip_frame nokey -show_entries frame=pkt_pts_time -select_streams v -of csv=p=0 "Concert.mp4" > frames.txt
Итак, нам нужно закодировать первые 3,708 секунды, скопировать середину, а затем закодировать последние 5,912 секунды.
Я могу получить 3 сегмента для все выглядят идеально (сами по себе), как это:
ffmpeg -ss 698.698 -i "Concert.mp4" -ss 6.302 -t 3.708 -c:v libx264 -c:a copy -c:s copy -y clipbegin.mp4
ffmpeg -ss 708.708 -to 1089.088 -i "Concert.mp4" -c copy -y clipmiddle.mp4
ffmpeg -ss 1089.088 -i "Concert.mp4" -t 5.912 -c:v libx264 -c:a copy -c:s copy -y clipend.mp4
ffmpeg -f concat -i segments.txt -c copy -y artist.mp4
сегментов. Текст, конечно, содержит следующее:
file 'clipbegin.mkv'
file 'clipmiddle.mkv'
file 'clipend.mkv'
Я видел это решение, представленное здесь, но никакая настройка не получает это у меня работает:
https://superuser.com/a/1039134/73272
Насколько я могу судить, этот метод вообще не работает. Он ломает VL C довольно сильно, независимо от того, что я пытаюсь.
Объединенное видео продолжает глючить через 3 секунды, возможно, из-за того, что время PTS другое или что-то в этом духе (используя некоторые параметры, я видел предупреждающие сообщения этот эффект). Что-нибудь, что я могу добавить к командам выше, чтобы заставить это работать? Единственное требование состоит в том, что средняя команда не должна перекодировать видео, но должна выполнять быстрое копирование.
Заранее спасибо.