Привет всем и спасибо за чтение!
Вот моя проблема: у меня есть программа, передающая необработанные видеокадры на стандартный вывод. Эта программа использует OpenCV для захвата и обработки видео и вывода непосредственно обработанных кадров. Цикл синхронизируется с выбранной частотой кадров. Я использую ffmpeg для чтения со стандартного ввода, и все отлично работает для видео.
Но теперь, когда я добавил звук, у меня есть большая проблема: растущая задержка происходит, и мне действительно нужно от нее избавиться. Итак, вот моя идея, но мне очень нужна ваша помощь:
Мне нужно найти способ включить информацию о временной метке в необработанное видео. Чтобы быть понятным для ffmpeg, он должен быть известным контейнером, совместимым с необработанным видео. И тогда мне нужно будет использовать API контейнера и передать его на стандартный вывод в моей программе. Я действительно не знаю, что использовать в джунглях видео форматов и кодеков, и я не знаю, как включить синхронизацию меток времени в ffmpeg ...
Если у кого-то есть идея, мне действительно интересно здесь. Для информации вот командная строка, которую я использую для передачи необработанного видео:
./myprogram | ffmpeg -y -f alsa -i pulse -ac 2 -f rawvideo -vcodec rawvideo -r 24 -s 640x480 -pix_fmt bgr24 -i - -vcodec libx264 -pix_fmt yuv420p -r 24 -f flv -ar 44100 out.flv;
Большое спасибо,
Roland