Предоставляет ли libavcodec способ заменить видеокадры на входе, оставив звук нетронутым?

У меня есть рабочий проект, собранный вместе с использованием ряда примеров, который извлекает видеокадры из .mp4, выполняет рендеринг поверх них, а затем записывает новое видео с новыми кадрами. Проблема в том, что я теряю звук в этом процессе. Когда я добавляю поток avformat к выходному видео, я начинаю получать загадочные сбои в mux.c::compute_muxer_pkt_fields, куда st->internal->priv_pts нулевой.

Здесь я скорее заново изобрел колесо - выполняю полное декодирование видео и извлечение кадров, а затем пишу собственный код для создания нового видео. Кажется, что кто-то должен был позаботиться о довольно простом процессе извлечения, а затем замены каждого кадра видео. В качестве альтернативы, следует ли мне просто выбросить весь написанный мной код и просто использовать popen и командную строку ffmpeg для потоковой передачи и вывода видеокадров, а затем использовать другой вызов popen для копирования звука из исходного видео в место назначения? ( вот так)

Если такого зверя не существует, я посмотрю, смогу ли я понять беспорядок, который превратился в мой код, чтобы опубликовать его.

0 ответов

Другие вопросы по тегам