Удалить часть некоторых кадров из видео - PullRequest
0 голосов
/ 20 января 2020

Вот что я пытаюсь сделать: представьте видео с 10 кадрами (0 = 1 кадр)

0 0 0 0 0 0 0 0 0 0

с некоторыми кадрами выбранный (1 = 1 выбранный кадр)

0 1 1 1 0 0 0 0 0 0

и конечные результаты должны быть такими (все выбранные кадры были удалены из видео)

0 0 0 0 0 0 0

это то, что я пытаюсь сделать в python (с кадрами, а не раз). Кто-нибудь знает, как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 21 января 2020

Вы можете использовать ffmpeg в оболочке Python для управления видео.

Этот подход позволяет вам использовать функциональность командной строки ffmpeg и широкое сообщество экспертов по ffmpeg, хотя если вам приходится анализировать и манипулировать тогда стоит рассмотреть фреймы, OpenCV, как упомянуто в другом ответе.

Для Pithing есть несколько оболочек ffmpeg, но хорошо поддерживаемый пример:

Чтобы выбрать определенные c фреймы для включения или исключения из вашего вывода, вы можете использовать фильтр «select» в ffmpeg, который задокументирован здесь:

0 голосов
/ 21 января 2020

Попробуйте этот код:

ffmpeg  -t 00:00:01 -i video.mp4 -map 0 -c copy seg1.mp4
ffmpeg -ss 00:00:04 -i video.mp4 -map 0 -c copy seg2.mp4

, чем мы можем объединить их:

Создать файл 1.txt с:

file 'seg1.mp4'

file 'seg2.mp4'

и запустите его

ffmpeg -f concat -i 1.txt -map 0 -c copy out.mp4

Обратите внимание, мы должны вычислять метки времени от номеров кадров до времени в опциях -t и -ss

0 голосов
/ 20 января 2020

Проверьте OpenCV , он может разбивать видео на кадры, которые затем можно выделить и удалить, если хотите.

Пример учебника, который я получил из быстрого Google поиск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...