ffmpeg по умолчанию выходная частота кадров


3

Какова частота кадров по умолчанию, выбранная ffmpeg для кодирования MP4?
Где это указано на странице man?

Мои входные видео статы:

  • r_frame_rate=120/1
  • avg_frame_rate=31230000/1042111
  • duration=11.579011
  • nb_frames=347

После того, как (демультиплексирования, декодирования) расщепления (перемасштабирования, кодирования и мультиплексирования) видео поток, в котором я получаю следующую статистику:

  • r_frame_rate=120/1
  • avg_frame_rate=120/1
  • duration=9.575000
  • nb_frames=1149

Я начал с 347 кадров и в конечном итоге с 1149 (должен был 287). Среднее значение fps было 29.97, и теперь я заканчиваю 120 ... который был максимальным fps входного видео. Итак, я полагаю, ffmpeg выбирает самый высокий из входных данных ... но это указано где угодно? Как можно просто подобрать входной сигнал fps? И почему у меня есть переменная fps для начала?

Хм ... тоже может задать вопросы. Все еще, это просто следствие этого параграфа?

STREAM SELECTION             
     By default, ffmpeg includes only one stream of each type 
     (video, audio, subtitle) present in the input files and 
     adds them to each output file. It picks the "best" of  
     each based upon the following criteria: for video, it is 
     the stream with the highest resolution, for audio, it is 
     the stream with the most channels, for subtitles, it is 
     the first subtitle stream. In the case where several  
     streams of the same type rate equally, the stream with the 
     lowest index is chosen.         
5

r_frame_rate является «самая низкая частота кадров, с которой все временные метки могут быть представлены точно (это наименьшее общее кратное всех частоты кадров в потоке)

avg_frame_rate только что: total duration/total # of frames

Вы можете указать -r 30000/1001 для поддержания средней скорости (около-о-о). Вы не указываете, какой формат вы выведете, но для MP4, ffmpeg по умолчанию используется для постоянной частоты кадров, где он выбирает значение r_frame_rate. Затем он будет дублировать или отбрасывать кадры, чтобы сохранить эту скорость. Используйте -vsync vfr, чтобы сохранить переменную скорость.

  0

Вау ... Вы впечатляющие. Первая строка приведена в FAQ. Любая идея, где это упоминается на странице «человек»? Да, я кодирую в MP4. Откуда у вас была информация о постоянном наборе кадров кадров? Я закончил установку '-r' на вход' avg_frame_rate'. (Мой клиент ожидает временное постоянство между кадрами.) 27 фев. 172017-02-27 19:08:18

  0

'r_frame_rate' не является опцией CLI, поэтому я сомневаюсь, что ссылки на него упоминаются, хотя я не смотрел. Вы должны посмотреть в источнике mux4 mp4, чтобы проверить режим мультиплексирования по умолчанию. Опять же, не на страницах руководства. Документы FFmpeg являются незавершенными. 27 фев. 172017-02-27 19:24:14

  0

Опять же, впечатляет. Спасибо, что поделились своими знаниями. 27 фев. 172017-02-27 20:27:12