Моему приложению нужно переключаться между двумя (или более) потоками на входе, в то время как на выходе есть только один (вы можете думать о нем как о потоковом мультиплексоре). Кадры из ввода декодируются, а затем снова перекодируются из-за наложения.
Итак, чтобы упорядочить AVFrame PTS, я вычисляю интервал перед кодированием кадров. Но дело в том, что когда я переключаюсь между потоком RTMP и файлом MP4, видео немного задерживается каждый раз, когда я переключаюсь. Итак, на третьем переключении результирующий поток рассинхронизирован.
Я не знаю, упустил ли я что-то, что нужно изменить в кадре перед кодированием. Я тоже думал про создание независимого ПТС для кадров на выходе но не знаю как его создать.
Входные потоки могут иметь разные FPS, временные развертки или кодеки, и приложение должно иметь возможность работать со всеми ними.