Программное добавление простой паузы в видео - PullRequest
0 голосов
/ 06 мая 2020

Допустим, у меня есть 30-е видео. Я хочу создать 40-секундное видео, которое является только первым видео, но с дополнительным «замороженным» кадром (например, 10-секундным) где-то в середине. (подумайте об этом как о желании прокомментировать видео в определенной c точке)

Я знаю, что могу легко сделать это с помощью программного обеспечения для редактирования видео. Однако я ищу инструмент командной строки, который позволяет мне делать это эффективно (мне нужно сделать это несколько раз с переменными точками, чтобы заморозить видео)

Я использую Python

Я думал использовать ffmpeg, разделить видео на два, создать третье видео, состоящее из заданного кадра, а затем объединить три видео.

Но, может быть, есть гораздо более простой метод?

1 Ответ

0 голосов
/ 08 мая 2020

Я нашел способ сделать это

Допустим, у меня есть исходный файл mov ie: in.mp4, и я хочу приостановить его на 10 секунд с кадром, найденным на отметке 15 секунд

#first extract the frame
ffmpeg -ss 00:00:15 -i in.mp4 -vframes 1 -q:v 2 -y static_frame.png

# Create the movie_aux1.mp4 of the first part of the original video
ffmpeg -t 00:00:15 -i in.mp4 movie_aux1.mp4
# Create the movie_aux2.mp4
ffmpeg -loop 1 -i static_frame.png -t 10 movie_aux2.mp4
# Create the movie_aux3.mp4
ffmpeg -ss 00:00:15 -i in.mp4 movie_aux3.mp4

# Create a list of the movies to concatenate. Dont forget to erase this file afterwards
echo "file 'movie_aux1.mp4'" >> mylist.txt
echo "file 'movie_aux2.mp4'" >> mylist.txt
echo "file 'movie_aux3.mp4'" >> mylist.txt

# Concatenate all three movies
ffmpeg -f concat -safe 0 -i mylist.txt out.mp4
...