Предоставляет ли libavcodec способ заменить видеокадры на входе, оставив звук нетронутым?
У меня есть рабочий проект, собранный вместе с использованием ряда примеров, который извлекает видеокадры из .mp4, выполняет рендеринг поверх них, а затем записывает новое видео с новыми кадрами. Проблема в том, что я теряю звук в этом процессе. Когда я добавляю поток avformat к выходному видео, я начинаю получать загадочные сбои в
mux.c::compute_muxer_pkt_fields
, куда
st->internal->priv_pts
нулевой.
Здесь я скорее заново изобрел колесо - выполняю полное декодирование видео и извлечение кадров, а затем пишу собственный код для создания нового видео. Кажется, что кто-то должен был позаботиться о довольно простом процессе извлечения, а затем замены каждого кадра видео. В качестве альтернативы, следует ли мне просто выбросить весь написанный мной код и просто использовать popen и командную строку ffmpeg для потоковой передачи и вывода видеокадров, а затем использовать другой вызов popen для копирования звука из исходного видео в место назначения? ( вот так)
Если такого зверя не существует, я посмотрю, смогу ли я понять беспорядок, который превратился в мой код, чтобы опубликовать его.