Moviepy write_videofile работает во второй раз, но не в первый?

#python #video #ffmpeg #moviepy

#python #Видео #ffmpeg #moviepy

Вопрос:

Я объединяю список видеообъектов вместе, а затем записываю их с помощью write_videofile, как ни странно, в первый раз, когда я пишу файл, он воспроизводится нормально для первой половины, затем воспроизводятся первые несколько кадров каждого клипа в файле, после чего воспроизводятся перед замораживанием. Но вот странная часть, если я напишу точно такой же видеообъект сразу после записи первого видео, он записывается просто отлично и воспроизводится отлично.

Вот мой код

 from moviepy.editor import VideoFileClip, concatenate_videoclips

clipslist = []
clips = ['https://clips-media-assets2.twitch.tv/AT-cm|787619651.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787628097.mp4', 'https://clips-media-assets2.twitch.tv/2222789345-offset-20860.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787624765.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787539697.mp4', 'https://clips-media-assets2.twitch.tv/39235981488-offset-3348.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788412970.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787682495.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787962593.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787627256.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787573008.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788543065.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787593688.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788079881.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788707738.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788021727.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787595029.mp4', 'https://clips-media-assets2.twitch.tv/39233367648-offset-9536.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788517651.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|788087743.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787497542.mp4', 'https://clips-media-assets2.twitch.tv/39233367648-offset-9154.mp4', 'https://clips-media-assets2.twitch.tv/7109626012888880881-offset-4818.mp4', 'https://clips-media-assets2.twitch.tv/72389234-offset-760.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787774924.mp4', 'https://clips-media-assets2.twitch.tv/AT-cm|787565708.mp4']

for clip in clips:
    dlclip = VideoFileClip(clip, target_resolution=(1080, 1920))  # Download clip
    clipslist.append(dlclip)

videofile = concatenate_videoclips(clipslist)
videofile.write_videofile("final1.mp4") # Broken after the first halfish
videofile.write_videofile("final2.mp4") # Works entirely fine.
videofile.close
  

Есть идеи? Любые предложения приветствуются.

  • Иногда, когда видео достаточно маленькое, кажется, что и в первый раз оно записывается просто отлично.
  • Кажется, нет заданного значения, где он прерывается, каждый раз, когда я пишу его в первый раз, он обычно прерывается в другом месте.
  • Я пытался дождаться завершения потока и перехода в спящий режим после конкатенации, и это, похоже, не устраняет проблему.

Ответ №1:

Если вы не можете последовательно воспроизвести проблему, скорее всего, это не проблема с вашим кодом.

Попробуйте открыть созданный клип с помощью другой программы, например VLC.

Ответ №2:

Я столкнулся с той же проблемой при одновременной записи нескольких видеороликов write_videofile , похоже, что более поздние задачи приведут к неправильным выводам предыдущих write_videofile задач из-за зависания их процессов записи, хотя процессы будут продолжаться после завершения более поздних задач, результирующие видеоролики предыдущих задач прерываются в местах зависания, не нашли решения

Комментарии:

1. Использование logger=None по-прежнему не повезло.