вот метод, использующий текущие версии 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)
я сказал, что это было запутанным!