
Как разделить видео на кадры, а затем собрать его заново, добавив звук?
Я использую это:
Для извлечения кадров: ffmpeg -i "video_path" frame%04d.png
Для извлечения аудио: ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
Для повторной сборки: ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
решение1
Чтобы разделить видео на кадры, а затем собрать его вместе со звуком, можно воспользоваться инструментом командной строки ffmpeg.
Чтобы извлечь кадры из видео, вы можете использовать следующую команду:
ffmpeg -i "video_path" frame%04d.png
Эта команда извлечет кадры из видео и сохранит их как отдельные файлы изображений. %04d
В имени выходного файла указывается номер кадра с ведущими нулями, чтобы гарантировать правильную сортировку файлов.
Чтобы извлечь звук из видео, вы можете использовать следующую команду:
ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
Эта команда извлечет звук из видео и сохранит его как отдельный файл MP3.
Чтобы собрать видео из кадров и звука, можно использовать следующую команду:
ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
Эта команда возьмет кадры и аудио в качестве входных данных и соберет их в новый видеофайл. Параметры -c:v
и -c:a
указывают кодеки, которые будут использоваться для видео и аудио соответственно. Параметр -r
указывает частоту кадров, а -pix_fmt
параметр указывает формат пикселей. Параметр -shortest
гарантирует, что выходное видео будет иметь ту же длительность, что и самые короткие входные данные (видео или аудио).
Чтобы объединить три команды в один скрипт, можно использовать следующий скрипт оболочки:
# Extract frames from video
ffmpeg -i "video_path" frame%04d.png
# Extract audio from video
ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
# Reassemble video from frames and audio
ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
Вы можете сохранить этот скрипт в файл (например, split_and_reassemble.sh) и запустить его с помощью следующей команды:
bash split_and_reassemble.sh
Это позволит последовательно выполнить три команды: извлечь кадры из видео, извлечь аудио, а затем снова собрать видео из кадров и аудио.