для ffmepg вы можете использовать скрипт ниже.это проверило это.Но по времени, вы должны изменить это STARTPTS от + 5 до +25 в вашем видео.Я поставил 5 здесь, чтобы проверить, происходит ли слияние.
ffmpeg -i 2.mp4 -i 1.mp4 -filter_complex "[1]setpts=PTS-STARTPTS+5/TB[top];[0:0][top]overlay=enable='between(t\,10,15)'[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 output1.mp4
Ограничение Этот источник должен быть достаточно длинным, что означает, что вам нужно видео-холст, а затем используйте этот скрипт для добавления каждого видео на холст.
И в ffmpeg нет полностью автономного способа его использования.
Вы правы.Opencv не может разобраться со звуком.для одновременной работы нужна поддержка сторонней библиотеки.До этого мне приходилось использовать ROS для передачи звука и изображения в систему робота с веб-камеры.Затем звук обрабатывается с использованием НЛП для пользовательского интерфейса на естественном языке, а зрение используется отдельно для определения местоположения и картирования.
Существует несколько способов обхода.
Сначала вы используете сопоставление с шаблоном OpenCV или различие изображения в пакете локального окна.Наименьшая позиция ошибки даст вам правильное местоположение A для вставки.Это должно быть точным с точки зрения мили-второго уровня.(если ошибка всегда велика, это означает, что исключений перекрытия и возврата нет)
Во-вторых, на основе правильного местоположения, полученного из opencv.вызовите system.call для вызова вышеуказанного скрипта с параметром A в качестве входных данных для автоматического слияния.
Зависит от вашего приложения. Если вам нужно делать это часто, напишите сценарий opencv python для автоматического предохранителя.Если хотя бы раз в месяц делать это вручную, достаточно использовать ffmepg