Я пишу многопоточное приложение на Python 3, один поток захватывает кадры с веб-камеры с помощью opencv, другой записывает аудио кадры с помощью pyaudio.Оба потока помещают кадры в отдельный циклический буфер с абсолютной отметкой времени для каждого кадра.Теперь я хотел бы создать еще один поток, который читает из буферов и объединяет аудио и видеокадры, используя информацию о временной метке, а затем сохраняет все в файл mp4.Единственное, что я обнаружил, - это объединение аудио и видео файлов с использованием, например, ffmpeg, но ничего не связано с кадрами на лету.Мне действительно нужно создавать аудио и видео файлы, прежде чем присоединиться к ним?В этом случае я не понимаю, как обрабатывать синхронизацию. Любые советы будут оценены.
РЕДАКТИРОВАТЬ
В ответ на комментарии, метки времени созданы мной и являются абсолютнымиЯ использую структуру данных, которая содержит фактические данные (видео или аудио кадр) и метку времени.Дело в том, что звук записывается с помощью микрофона, а видео с помощью веб-камеры, которые различаются аппаратным обеспечением, не синхронизируются.
Веб-камера захватывает кадр, разрабатывает его и помещает в кольцевой буфер, используя мою структуру данных (data + timestamp).
Микрофон записывает аудио кадр, разрабатывает его и помещает в круговой буфер, используямоя структура данных (data + timestamp).
Итак, у меня есть 2 буфера, я хочу совмещать кадры и объединять их в любом формате видеофайла, сопоставляя метки времени наиболее точным способом.Моя идея - это то, что может добавить аудио кадр к видеокадру (я проверю соответствие временных меток).