вот метод, использующий текущие версии FFmpeg. Он полагается на демультиплексор concat, не масштабирующий PTS входных данных после первого файла, а просто применяющий фиксированное смещение. Допустим, у вас есть 30 трансляция FPS с графика 15360
(типичный для выхода FFmpeg). Это означает, что рама 0
имеет PTS 0
и рамой 30
имеет PTS 15360
. Это стало бы 45 фпс потока, если мы могли бы изменить сроки 23040
без изменения значений PTS.
по существу, это то, что делает метод ниже.
1. Определите свойства источника.
Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1171 kb/s,
30 fps, 30 tbr, 15360 tbn (default)
вы хотите отметить свойства источника, особенно разрешение и tbn
.
2a. (Необязательно) измените шкалу времени на что-то удобное, чтобы упростить вычисления.
ffmpeg -i in.mp4 -c copy -an -video_track_timescale 30 in-v30.mp4
это
Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1171 kb/s, \
30 fps, 30 tbr, 30 tbn (default
если вы сделаете этот шаг, новый сроки должна быть равной или кратной исходной частоты кадров.
2b. Рассчитайте необходимую временную шкалу, чтобы для целевой частоты кадров x
, PTS кадра # x
в исходном коде должно иметь то же значение, что и новый tbn
.
Если вы выполнили шаг 2a, это очень легко, и это просто новая частота кадров. Итак, для целевого fps 45
, new tbn
должно быть 45
.
3. Создать пустышку видео.
ffmpeg -f lavfi -i color=s=1280x720:r=45:d=1 -profile:v main -video_track_timescale 45 0.mp4
все свойства должны быть такими же, как разрешение, профиль H. 264, формат пиксела, ссылки счетчик..etc для самых лучших результатов.
4 Конкат видео.
сначала создайте текстовый файл
file '0.mp4'
file 'in-v30.mp4'
затем функция concat
ffmpeg -f concat -i list.txt -c copy -video_track_timescale 45 45fps.mp4
выходной файл будет иметь 2-е воспроизведение видео на 45 кадров в секунду.
5. Теперь, Отцепись от манекена preroll
ffmpeg -ss 1.1 -i 45fps.mp4 -c copy -avoid_negative_ts make_zero in45.mp4
и
Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1757 kb/s, \
45 fps, 45 tbr, 11520 tbn (default)
я сказал, что это было запутанным!