Есть две частоты кадров: вход и выход.
По умолчанию частота кадров на входе равна 25, и на выходе будет использоваться та же частота кадров, что и на входе, если вы не укажете обратное.
Одинаковая частота кадров для ввода и вывода
Если вы хотите, чтобы вход и выход имели одинаковую частоту кадров, просто укажите входную частоту кадров. В этом примере будет установлена частота кадров 30000/1001 (видео NTSC):
ffmpeg -framerate 30000/1001 -i input output.mp4
Кроме того, в этом примере вы можете использовать ntsc
вместо 30000/1001
, но не использовать, 29.97
потому что это не является точным или правильным. Смотрите другие псевдонимы частоты кадров .
Поскольку частота кадров на входе по умолчанию равна 25, и если вы устанавливаете только частоту кадров на выходе, то кадры будут отбрасываться или дублироваться для компенсации. Вот почему частота кадров ввода устанавливается в этой ситуации.
Различная частота кадров для ввода и вывода
Иногда вы можете захотеть, чтобы частота входного и выходного кадров различалась. Например, вы можете захотеть вводить кадры с определенной скоростью, а затем дублировать или отбрасывать кадры, чтобы на выходе была другая частота кадров. Возможно, вы захотите сделать это из-за проблем совместимости с вашим контейнером выходного формата, вашим плеером и / или вашим устройством:
ffmpeg -framerate 10 -i input -r 25 output.mp4
В этом примере кадры будут продублированы, чтобы перейти от 10 до 25. Вывод консоли сообщит вам, если кадры сбрасываются или дублируются.
В файл изображения Demuxer использует -framerate
, в то время как частота кадров выхода устанавливается с помощью -r
.
Возможно, вам придется добавить -pix_fmt yuv420p
опцию в некоторых случаях, если вы выводите видео H.264 ( ffmpeg
консольный вывод предупредит вас, если вам это нужно). Это будет использовать схему подвыборки цветности, которая совместима со всеми игроками.