Я использую Ffmpeg для декодирования и воспроизведения видеофайлов. В настоящее время у меня воспроизводится видео и звук так быстро, как процессор может их декодировать и отображать. Проблема в том, что я хочу воспроизводить видео и звук синхронно, используя системные часы.
Я искал помощь, но не нашел ничего существенного, кроме урока 05, но Я не очень понимаю, что он делает, потому что моя программа написана не так, как его.
Я использую файлы mjpeg, поэтому кажется, что pts извлекаются каждый раз, когда кадр декодируется, я умножил pts на time_base, как это делает dranger, чтобы получить значение в секундах, но разрешение кажется всего лишь секундами, и поэтому я получаю значение «6» 25 раз, а затем «7» 25 раз, поскольку видео воспроизводится со скоростью 25 кадров в секунду.
Нет ли более точного значения? Или способ получить более точное значение, и если да, то как мне выполнить синхронизацию с этим значением? Я использую SDL для отображения значения, поэтому могу ли я просто использовать SDL_Delay() полученного значения?
Спасибо за ваше время,
Инфинитифизз
pts * time_base
как int вместо float. - person Nathan Whitehead   schedule 19.07.2011