Я записываю видео с FFmpeg, и мне нужна частота кадров, с которой она написана, по крайней мере, в правом шаре. Прямо сейчас я принимаю частоту кадров, которую, по моему заявлению, использует и использует, чтобы установить частоту кадров (time_base) для моего видеопотока. Однако это иногда сильно отличается от фактической частоты кадров, которую я получаю (я видел поток, требующий 50 кадров в секунду, но публикацию со скоростью 9 кадров в секунду).
То, что я хотел бы сделать, это использовать истекший таймер и подсчитывать кадры, которые я записываю, для расчета фактической частоты кадров, которую я записал, когда закончил запись. Я бы сказал, что частота кадров установлена в моем AVStream, который используется в avcodec_open2, прежде чем писать какие-либо фреймы. Если я его установлю позже (например, когда я пишу кадры), в то время как ffplay может воспроизвести его (жалуясь, что биты увеличения времени - 6, а не 4), другие видеоплееры не могут. Есть ли способ установить частоту кадров для всего файла после для записи фреймов? Если нет, то есть способ рассказать самим фреймам какую-то временную метку или частоту кадров во время записи, что приведет к действительному записанному файлу?