Кадров в секунду Концептуальные детали

я новичок и пытаюсь понять концепции ffmpeg/video.

FPS означает кадров в секунду, например

25fps -> 25 frames captured in a second

С точки зрения дисплея

25 frames need to be displayed in a second.

поправьте меня, если я ошибаюсь?

Теперь я написал простой видеоплеер в ffmpeg для отображения. я читаю кадры с помощью av_read_frame(), если fps 25, то делает

 av_read_frame()

возвращает 25 кадров в секунду? как я могу связать это?


person Whoami    schedule 25.02.2014    source источник


Ответы (1)


Операции чтения и записи не должны учитывать скорость передачи данных рассматриваемого потока. Вместо этого они происходят без каких-либо задержек в кратчайшие сроки. В конце концов, если вы перекодируете файл, вы, как правило, не заинтересованы в том, чтобы делать это со скоростью воспроизведения 100%, и, скорее всего, вы заинтересованы в том, чтобы он был завершен быстро, настолько быстро, насколько это позволяют чтение, запись, кодирование и т. д.

Любой источник, генерирующий контент, заинтересован в правильной временной маркировке, прикрепляя частоту кадров и отдельные временные метки, чтобы при воспроизведении можно было точно воспроизвести поток, в том числе относительно других потоков («липсинк»).

Любая система представления заинтересована в представлении данных с учетом меток времени, добавлении задержек и времени простоя, если/когда это необходимо, чтобы воспроизведение было точным.

Все остальное между ними, включая av_read_frame, заботится только о том, чтобы не потерять время, связанное с данными, и выполняется без каких-либо задержек (в случае, если av_read_frame возвращает вам столько кадров в секунду, сколько может).

person Roman R.    schedule 25.02.2014