moviepy при обработке видео фризит видео

Рейтинг: 0Ответов: 1Опубликовано: 27.03.2023

Пытаюсь наложить музыку на аудио дорожку видео и потом на само видео. Стоит скомпилироваться видео, смотрю его и после 1 секунды видео зависает, а аудио нормально идет. Я пробывал использовать внутреннимй атрибут write_videofile(threads, codec) и фпс, но ничего не меняется, только при кодеке 'mpeg4' компилируется с просто черным экраном, а аудио норм. Размеры файла маленькие, до 15 сек. Пробовал на 3.8 и 3.9 пайтонах. Версии moviepy я тоже менял, но только 1.0.3 версия рабортает без бага. Пожалуйста помогите, очень нужно! :(

Код:

def add_music(audio_path, video_path):
    video_clip = VideoFileClip(f'{BASE_DIR}/media/{video_path}')
    audio_clip = AudioFileClip(f'{BASE_DIR}/media/{audio_path}')
    audio_clip = audio_clip.volumex(0.035)
    end = video_clip.end
    audio_clip = audio_clip.subclip(0, end)
    final_audio = CompositeAudioClip([video_clip.audio, audio_clip])
    final_clip = video_clip.set_audio(final_audio)
    final_clip.write_videofile(f'{BASE_DIR}/media/{video_path}')

Ответы

▲ 1Принят

Нет возможности протестировать, но думаю проблема в том что чтение и запись видео идёт в один и тот же файл. Таким образом записывается только 1 чанк видео, а дальше считывать информацию неоткуда, так как файл уже перезаписан Соответственно нужно изменить путь в строчке

final_clip.write_videofile(f'{BASE_DIR}/media/{video_path}')

На любой другой