У меня запущено приложение Qt, каждый новый кадр я перехватываю frameBuffer, получаю необработанное растровое изображение и отправляю его в ffmpeg через канал. Новый кадр рисуется при изменении сцены (без постоянной частоты кадров).
В настоящее время я использую -use_wallclock_as_timestamps 1
, чтобы позволить ffmpeg поместить timeStamp в получающееся видео.
ffmpeg -f rawvideo -pix_fmt rgba -s size -use_wallclock_as_timestamps 1 -i - -threads 0 -y -c:v libx264 -pix_fmt yuv420p -b:v rate -vf vflip out.mp4
Это работает на большинстве компьютеров, но я думаю, что между моментом, когда я получаю видео, и моментом, когда ffmpeg кодирует его, есть задержка, которая вызывает артефакт в моем конечном выходе.
Есть ли способ отправить / отметитьметка времени на моей стороне трубы и отправьте их с данными. Или я могу поместить другую метку времени в файл, а затем перекодировать мой первый вывод с помощью новых меток времени.