#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
по-прежнему не повезло.