Moviepy - Ошибка CompositeVideoClip с TextClip

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

Вот мой код:

clip_list = []
for file in movie_maker_directory:
    clip = VideoFileClip('C:\dev\movie_maker\{}'.format(file))
    if clip.rotation != 0:
        clip = clip.rotate(-clip.rotation)
    clip = clip.resize(height=1080)
    clip_list.append(clip)
final_clip = concatenate_videoclips(clip_list, method = "compose")
text = TextClip('Documentary Title', fontsize=5).set_position(('top', 'left'))
final_clip = CompositeVideoClip([text, clip])
final_clip.write_videofile("C:\dev\movie_maker\my_concatenation.mp4")

И вот сообщение об ошибке:

File "C:/dev/movie_compilator.py", line 58, in <module>
    final_clip.write_videofile("C:\dev\movie_maker\my_concatenation.mp4")
  File "<decorator-gen-51>", line 2, in write_videofile
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
    return f(clip, *a, **k)
  File "<decorator-gen-50>", line 2, in write_videofile
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\decorators.py", line 137, in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
  File "<decorator-gen-49>", line 2, in write_videofile
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB
    return f(clip, *a, **k)
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\video\VideoClip.py", line 349, in write_videofile
    progress_bar=progress_bar)
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 209, in ffmpeg_write_video
    fps=fps, dtype = "uint8"):
  File "C:\Local\Programs\Python\Python35\lib\site-packages\tqdm\_tqdm.py", line 833, in __iter__
    for obj in iterable:
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\Clip.py", line 475, in generator
    frame = self.get_frame(t)
  File "<decorator-gen-14>", line 2, in get_frame
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\decorators.py", line 89, in wrapper
    return f(*new_a, **new_kw)
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\Clip.py", line 95, in get_frame
    return self.make_frame(t)
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\video\compositing\CompositeVideoClip.py", line 110, in make_frame
    f = c.blit_on(f, t)
  File "C:\Local\Programs\Python\Python35\lib\site-packages\moviepy\video\VideoClip.py", line 603, in blit_on
    pos[0] = D[pos[0]]
KeyError: 'top'
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
711
1

Ответы 1

Я думаю, вы изменили свое позиционирование. Попробуйте вместо этого:

text = TextClip('Documentary Title', fontsize=5).set_position(('left', 'top'))

Другие вопросы по теме