Объединить файлы mp4 - PullRequest
       58

Объединить файлы mp4

0 голосов
/ 20 июня 2020

Я хочу соединить около 15 клипов по 45 секунд вместе, встающие на один конец. Эти клипы могут иметь разное разрешение (большинство из них 1080 или 720), но все они являются файлами mp4.

Я пробовал оба

concatenate_videoclips(clips,method='compose')
concatenate_videoclips(clips,method='chain')

из moviepy, но ни один из них мне не подходит, так как 'compose' полагается на то, что все файлы имеют одинаковое разрешение, которым они не являются, и цепочка занимает слишком много времени и иногда вызывает ошибки.

Я также пробовал использовать ffmpeg с:

ffmpeg -i clip1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts

для каждый клип, а затем объединяется с:

ffmpeg -i "concat:intermediate1.ts|intermediate2.ts|...|intermediate15.ts" -c copy -bsf:a aac_adtstoasc output.mp4

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

Я также пробовал ffmpeg

ffmpeg -f concat -safe 0 -i clipsfile.txt -c copy output.mp4

, где файл clipsfile.txt выглядит как

file clip1.mp4
file clip2.mp4
...
file clip15.mp4

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

Любые предложения по исправлению любого из этих, дополнительных информация или рекомендации о других делах приветствуются, спасибо.

1 Ответ

0 голосов
/ 17 июля 2020

clip = concatenate_videoclips (new_path, method = "compose") clips.write_videofile ("C: / Users / unknown / Desktop / movie / temp.mp4", preset = 'ultrafast', thread = 8, codec = 'libx264')

...