Вопросы с тегами [moviepy]

0

голосов
0

ответ
5

Просмотры

Python moviepy читатель не определен при написании видеофайла

Я пытаюсь объединить несколько наборов AudioFileClip-х и ImageClip-х в одном фильме. Но у меня возникают странные ошибки, я потратил много времени, и пытался много вещей, чтобы попытаться и заставить его работать. Я пробовал: Создание один комбинированный AudioClip, а затем добавить его к объединенным ImageClips вместо добавления кучи ImageClips, что уже есть аудио присоединенных различных способы ввода клипов вместе, такие как .set_audio и с помощью температуры аудиофайла при записи клипа на файл Тестирование аналогичной ситуации в консоли, которая работала поиск и поиск по moviepy документов и предыдущие вопросы moviepy редактора импорта как мки из ГТЦ импорт ГТЦ из теста mutagen.mp3 импорта MP3 класса: Защита __init __ (самостоятельно): self.clips = [ ] Защита add_clip (сам, текст, picture_path, audio_path): TTS = ГТЦ (текст) TTS. каждый поздоровавшись с помощью TTS. TTS работает отлично и выводит mp3 правильно, он отлично работает, когда я закомментируйте set_audio линии, но когда я объединить все клипы в один mp4 имеет ошибку. AttributeError: объект «NoneType» не имеет атрибута «get_frame» Full Error: https://mystb.in/ulusafajan.rb Ни один из объектов в списке нет ни одного, и я запутался, почему каскадный клип оленьей кожи у читателя любые и все помощь приветствуется! Спасибо! гь Ни один из объектов в списке нет ни одного, и я запутался, почему каскадный клип оленьей кожи есть карды Любой помощи приветствуется! Спасибо! гь Ни один из объектов в списке нет ни одного, и я запутался, почему каскадный клип оленьей кожи есть карды Любой помощи приветствуется! Спасибо!
1

голосов
0

ответ
26

Просмотры

PermissionError: [WinError 5] Доступ запрещен при попытке создать объект VideoFileClip для видео

в ffmpeg_parse_infos proc.terminate () Файл "C: \ Users \ Борат \ AppData \ Local \ Programs \ Python \ Python36 \ Lib \ сайт-пакеты \ GEvent \ subprocess.py", строка 982, в прекращении TerminateProcess (self._handle, 1) PermissionError: [WinError 5] Доступ запрещен Я проверил разрешение и все, кажется, в порядке. Кроме того, я попытался изменить разрешение, используя os.chmod (original_video, 777), но до сих пор без всякого успеха.
Alex Goft
1

голосов
2

ответ
314

Просмотры

py2exe and moviepy attribute error

I generate the application without problems with py2exe. But then, when I execute the .exe, it throws next traceback: Traceback (most recent call last): File "editor.py", line 25, in File "moviepy\editor.pyo", line 72, in File "", line 1, in AttributeError: 'module' object has no attribute 'audio_fadein' I previously used py2exe with successful results, but now I'm using moviepy I can't make it work. This is my setup.py, no errors when I execute python setup.py py2exe: from distutils.core import setup from py2exe.build_exe import py2exe import os from distutils.filelist import findall import matplotlib datafiles = ['logo.png', 'Lower Brand.png', "icon.ico"] matplotlibdatadir = matplotlib.get_data_path() matplotlibdata = findall(matplotlibdatadir) matplotlibdata_files = [] for f in matplotlibdata: dirname = os.path.join('matplotlibdata', f[len(matplotlibdatadir)+1:]) matplotlibdata_files.append((os.path.split(dirname)[0], [f])) mpl = matplotlib.get_py2exe_datafiles() datafiles.extend(mpl) setup( name='VTE', description="Video Test Editor", version="1.0", author="David Rodriguez", data_files=datafiles, console=[ { 'script':'videoeditor.py', 'icon_resources': [(1, r"icon.ico")] } ], options={ 'py2exe': { 'skip_archive':True, 'includes': ['sip', 'moviepy'], 'excludes': ['_gtkagg', '_tkagg', '_ssl'], 'optimize': 2, 'unbuffered': True } }, )
DavidRguez
1

голосов
1

ответ
274

Просмотры

Как установить цвет отдельных пикселей с moviepy

Я хочу создать пользовательское видео, где каждый пиксель представляет собой результат математической функции. Я попытался clip.get_frame (F) [у] [х] = (г, г, б), но это не работает, видео остается неизменным. Как я могу идти об этом? Кроме того, есть лучшие плагины для ведения такого рода вещи?
Maurdekye
1

голосов
1

ответ
326

Просмотры

Moviepy - TypeError: Не удается преобразовать объект «БАЙТ» на ул неявным

от moviepy.editor импорта * клипа = VideoFileClip ( "vid.mov") clip.write_videofile ( "movie.mp4") ^ Выдает TypeError об ошибке: Не удается преобразовать объект 'байтов' на ул неявно. Он печатает «Строительное видео movie.mp4» и «Запись аудио в movieTEMP_MPY_wvf_snd.mp3» нормально. Я использую Python 3.2 с Raspian хриплым. Что случилось? Конечно, она должна быть простой программой ... EDIT: Если добавить аудио = False к параметрам write_videofile, он отлично работает. Проблема где-то в аудио.
tburrows13
1

голосов
1

ответ
575

Просмотры

Поворот изображения вокруг своей оси х

Мне нужно повернуть изображение вокруг своей оси х (или у-оси). Я могу легко создать такую ​​анимацию с AviSynth, но теперь мне нужно реализовать этот эффект с moviepy модуля Python. Я могу легко повернуть изображение со следующим сценарием, но нужны некоторые подсказки, как повернуть его в 2D или 3D. от moviepy.editor импорта * клипа = ImageClip ( 'my_image.jpg') rotated_clip = (clip.add_mask () .fx (vfx.resize, ширина = 300, высота = 300) .fx (vfx.rotate, лямбда-т: 90 * т, расширить = False) .set_duration (5)) final_clip = CompositeVideoClip ([rotated_clip.set_pos ( "центр")], размер = (800800), bg_color = 3 * [255]) final_clip.write_videofile ( "test.mp4 »кадров в секунду = 25, кодек =„libx264“) Здесь AviSynth скрипт, который на самом деле генерируется этот пример изображения. Обратите внимание, что это требует «QUAD» плагин. Функция звезды (клип гр, Int г) {c.Overlay (х = Rand (C.WIDTH), у = Rand (c.height), BlankClip (с, ширина = 1, высота = 1, цвет = $ 030301 * Rand ( 85))) (г == 0)? последние: звезды (R-1) Обрежьте (0, -1) .loop (c.Framecount, 0, 0)} ширина = 800 высота = 600 длина = 100000 TColor = $ 000040 Bcolor = $ 000018 StackVertical (BlankClip (длина = длина, ширина = 2, высота = 1, цвет = TColor, pixel_type = "RGB32"), BlankClip (длина = длина, ширина = 2, высота = 1, цвет = BColor)). BilinearResize (ширина, 2 * высота, src_top = 0 , src_height = 2) .Crop (0, высота / 2,0, -высота / 2) .Stars (ширина * высота / 3072) ImageSource ( "path_to_image.png", начать = 0, окончание = Total_time, кадров в секунду = 300, pixel_type = "RGB32") #BlankClip (длина = длина, FPS = 25, ширина = 640, высота = 480, цвет = $ 000018, pixel_type = "RGB32"
Anay Bose
1

голосов
1

ответ
1.3k

Просмотры

Moviepy: Как читать в оттенках серого фильмы кадр за кадром?

Отказ от ответственности: У меня нет никакого опыта в области компьютерного зрения или обработке изображений, но мне нужно обрабатывать видео, чтобы получить данные для машинного обучения. Я хотел бы прочитать полутоновый фильм (я сделал это с помощью полутоновых изображений) - кадр за кадром с помощью moviepy. Для дальнейшей обработки, мне нужно полутоновые кадры. Вот мой код: клип = VideoFileClip ( 'movie.mp4') Количество = 1 для кадров в clip.iter_frames (): подсчет количества печати frames.shape + = 1 печать Формы каркасные вышли быть (360L, 480L, 3L) в то время как я ожидал (360L, 480L). И это меня озадачивает. Есть ли способ, чтобы получить «ожидаемый» форму? Python OpenCV идея может работать, но я предпочел бы moviepy.
GKS
1

голосов
1

ответ
352

Просмотры

Непризнанный вариант «с копией»

Я работал над сценарием в рамках как процесс обучения и создание удобных инструментов. Я пытаюсь перебрать список видео файлов для извлечения определенной части каждого видео в списке. Глядя на примерах сценариев и FFmpeg документации, которую я наконец придумал это: импорт Os импорта SYS импорт подпроцесс, как зр из moviepy.tools импорта subprocess_call Защиты ffmpeg_extract_pandomim_subclip (): с открытым ( «videolist.txt») как F: линии = ф. readlines () линия = [x.strip () для й в строках] для видео в строках: имя, доб = os.path.splitext (видео) Имя_целевого_объект = "% S-pandomim% S" % (имя, доб) t1 = "00:10:00" t2 = "00:15:00" CMD = [ "FFmpeg", "-i", "% S% S" % (имя, доб), "& beta;", t1, «-В», t2, «-с копия», Имя_целевого_объект] subprocess_call (CMD) ffmpeg_extract_pandomim_subclip () Я знаю, что это не идеальный способ сделать это: Я создал videolist.txt и перечислены все имена файлов видео в этом формате TXT файл, строка за строкой, (T1-1.mp4, T1-2.mp4, ...), которые разделяют ту же папку с Python сценарием «новым 1.py» и фактическим видео, которые T1-1.mp4, T1-2.mp4, ... ошибка я получаю действительно смущает меня, потому что, когда я использую -c копию из CMD она работает просто отлично. Полная ошибка: C: \ Users \ çomak \ AppData \ Local \ Programs \ Python \ Python35-32 \ python.exe "C: / FFmpeg / бен / новый 1.py" [MoviePy] Запуск: >>> FFmpeg - я T1-1.mp4 -ss 00:10:00 -в 00:15:00 -c скопировать T1-1-pandomim.mp4 [MoviePy] Эта команда вернула ошибку Traceback (самый последний вызов последнего): Файл «C : / FFmpeg / бен / новый 1. 55. libavutil 48,100 / 48,100 55. кодеком 57. 83,100 / 83,100 57. libavformat 57. 66,104 / 66,104 57. libavdevice 57. 3.100 / 3.100 57. libavfilter 6. 76,100 / 76,100 6. libswscale 4. 3.101 / 3.101 4. libswresample 2 . 4,100 / 4,100 2. libpostproc 54. 2,100 / 54. 2,100 Непризнанные вариант "с копией. Расщепление Ошибки список аргументов: Опция не найден процесс завершится с кодом выхода 1 Я использую PyCharm и если я удалить -c части копии она работает, но процесс идет медленно ... С -c копией, это намного быстрее. Я ценю ваше время и усилия, чтобы помочь мне! 3,101 libswresample 2. 4,100 / 2. 4,100 libpostproc 54. 2,100 / 54. 2,100 Непризнанные вариант "с копией. Расщепление Ошибки список аргументов: Опция не найден процесс завершится с кодом выхода 1 Я использую PyCharm и если я удалить -c части копии она работает, но процесс идет медленно ... С -c копией, это намного быстрее. Я ценю ваше время и усилия, чтобы помочь мне! 3,101 libswresample 2. 4,100 / 2. 4,100 libpostproc 54. 2,100 / 54. 2,100 Непризнанные вариант "с копией. Расщепление Ошибки список аргументов: Опция не найден процесс завершится с кодом выхода 1 Я использую PyCharm и если я удалить -c части копии она работает, но процесс идет медленно ... С -c копией, это намного быстрее. Я ценю ваше время и усилия, чтобы помочь мне!
Eser Comak
1

голосов
1

ответ
581

Просмотры

удалить аудио из файла MP4 FFmpeg

Я на Mac с помощью Python 3.6. Я пытаюсь удалить аудио из файла mp4 с помощью FFmpeg, но, к сожалению, он не дает мне «бесшумный» mp4 файл я искать. Код я использую: ffmpeg_extract_audio ( «input_file.mp4», «output_file.mp4», битрейт = 3000, кадров в секунду = 44100) Это дает мне новый выходной файл с низким качеством видеоизображения, но все же аудио. Любое предложение?
martins
1

голосов
2

ответ
802

Просмотры

Why does moviepy complain about bitrate while generating audiofile?

I have just try to use moviepy library for the first time. Generation of movies from numpy arrays was really simple, intuitive and worked out of box. This is what I tried: from moviepy.editor import VideoClip import numpy as np def make_frame(t): val = int(255.0*(t/3.0)) ls = [] for height in range(100): row = [] for width in range(300): row.append([val,0,0]) ls.append(row) frame = np.array(ls) return frame animation = VideoClip(make_frame, duration = 3) animation.write_gif('first_try.gif', fps=24) animation.write_videofile('first_try.mp4', fps=24) Then I wanted to use moviepy to generate sound. In theory it should work in a very similar way. Here is what I tried: from moviepy.editor import AudioClip import numpy as np make_frame = lambda t : 2*[ np.sin(404 * 2 * np.pi * t) ] clip = AudioClip(make_frame, duration=5) clip.write_audiofile('sound.mp4') However, I got an error message: [MoviePy] Writing audio in sound.mp4 |----------| 0/111 0% [elapsed: 00:00 left: ?, ? iters/sec]Traceback (most recent call last): File "sound.py", line 9, in clip.write_audiofile('sound.mp4') File "", line 2, in write_audiofile File "/usr/local/lib/python2.7/dist-packages/moviepy/decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "/usr/local/lib/python2.7/dist-packages/moviepy/audio/AudioClip.py", line 204, in write_audiofile verbose=verbose, ffmpeg_params=ffmpeg_params) File "", line 2, in ffmpeg_audiowrite File "/usr/local/lib/python2.7/dist-packages/moviepy/decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "/usr/local/lib/python2.7/dist-packages/moviepy/audio/io/ffmpeg_audiowriter.py", line 162, in ffmpeg_audiowrite writer.write_frames(chunk) File "/usr/local/lib/python2.7/dist-packages/moviepy/audio/io/ffmpeg_audiowriter.py", line 122, in write_frames raise IOError(error) IOError: [Errno 32] Broken pipe MoviePy error: FFMPEG encountered the following error while writing file sound.mp4: Invalid encoder type 'libx264' The audio export failed, possily because the bitrate you specified was two high or too low for the video codec. Does anybody know what this error means and how this problem can be resolved?
Roman
1

голосов
1

ответ
395

Просмотры

Pythonanywhere Moviepy

Что проблема? Я бегу на Pythonanywhere.com Эта ошибка может быть связано с тем, что ImageMagick не установлен на вашем компьютере, или (для пользователей Windows), что вы не указали путь к двоичному файлу ImageMagick в файле conf.py, или .that путь вы указали неверно [MoviePy] Эта команда вернула ошибку! Traceback (самый последний вызов последнего) :, Файл "deneme.py", строка 6, в txt_clip = TextClip ( "My Holidays 2013", размер шрифта = 70 , цвет = 'белый') Файл "/home/pirali/.local/lib/python2.7/site-packages/moviepy/video/VideoClip.py", строка 1145, в __init__ поднять IOError (ошибка) IOError: MoviePy Ошибка : создание None не удалось из-за следующей ошибки: Youtube Фото Galeri: не авторизован `@ / TMP / tmpxjn5vu.txt @ ошибка / property.c / InterpretImageProperties / 2959.
pirali
1

голосов
1

ответ
867

Просмотры

Moviepy OSError Exec format error - Missing Shebang?

Я пытаюсь использовать MoviePy с Python 3.2.3 на Raspian. Я установил его (для Python 2.7, 3.2 и 3.5 ... длинный рассказ) и линии от moviepy.editor импорта * отлично работает. Когда я пытаюсь клип = VideoFileClip ( «vid.mov»), которая является самой основной командой, он дает ошибку Traceback (самый последний вызов последний): Файл «/home/pi/QuickFlicsPics/moviepytest.py», строка 8, в клип = VideoFileClip ( "vid.mov") Файл "/usr/local/lib/python3.2/distpackages/moviepy/video/io/VideoFileClip.py", строка 55, в __init__ читателя = FFMPEG_VideoReader (имя файла, pix_fmt = pix_fmt ) Файл "/usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py", строка 32, в __init__ Infos = ffmpeg_parse_infos (имя файла, print_infos, check_duration) Файл «/ USR / местные / Библиотека / python3. MoviePy зависит от FFMPEG программного обеспечения для чтения и записи видео. > Вам не нужно беспокоиться о том, что, как FFMPEG должна быть автоматически> скачивание / установлено ImageIO во время первого использования MoviePy (это занимает несколько секунд). Если вы хотите использовать конкретную версию FFMPEG, следуйте инструкциям в файле config_defaults.py. [Цитата из руководства по установке здесь]
tburrows13
1

голосов
1

ответ
39

Просмотры

ColorClip бросает ошибку при использовании «цвет» аргумент

Я пытаюсь создать видео клип с определенным цветом: клип = ColorClip (размер = (460, 380), цвет = [122, 12, 54]) Однако, когда я бегу мой сценарий, я получаю следующее сообщение об ошибке: TypeError : __init __ () получила неожиданный аргумент ключевого слова «цвета» это прекрасно работает, когда я опускаю цвет аргумент, он просто делает черный видеоклип. Кто-нибудь есть какие-либо идеи о том, как устранить это?
timkl
1

голосов
1

ответ
879

Просмотры

Moviepy полноэкранный режим

Я создаю простой Pygame, и не могу узнать, как сделать Moviepy клипа предварительного просмотра в полноэкранном режиме. Использование Moviepy для моего открытия кинематографического. Вот мой код: импорт moviepy импорт ОС из moviepy.editor импорта * импорт Pygame pygame.display.set_caption ( 'Название игры') os.environ [ "SDL_VIDEO_CENTERED"] = "1" клип = VideoFileClip ( '') qq.mp4 clip.preview () ExecFile ( «startGame.py») Я не уверен, если это лучшая практика в Pygame использовать для открытия полноэкранного кинематографического ...
user2648117
1

голосов
2

ответ
690

Просмотры

Moviepy еще печатает индикатор даже после установки `` verbose` в false`

Я пытался подавить консольный вывод, полученный из moviepy при вызове метода «write_videofile». Я прошел подробный аргумент ЛОЖЬ безрезультатно. Он по-прежнему выдает что-то вроде: 0% | | 0/1624 [00:00
anarchos78
1

голосов
0

ответ
58

Просмотры

Использование MoviePy исправить незавершенные .flv видео

Во время записи моего экрана с захватом OBS, я накопил большое количество видео, которые были предметом принудительного выключения системы, в результате чего их финализировано. Видео были созданы с использованием формата .flv, поэтому, когда я играю их в VLC Player они играют безупречно, однако они не хватает времени окончания (длина видео). Вместо этого видео показывает время работы, как они играют, но поддерживать 00:00 время окончания, несмотря на фактическом воспроизведения видео в течение нескольких минут. В моем понимании, в отличие от .mp4 форматирования, .flv отформатированы видео должно быть в состоянии восстановить, если она не была завершена (как и в случае моего кадры остановленного неожиданных отключений). Так как у меня есть большое количество финализировано, мне нужно автоматизированное решение, чтобы исправить их. Использование MoviePy write_videofile Я попытался исправить видео с помощью команды MoviePy write_videofile в питоне оболочке с каталогом, установленным в каталог плохого видео: от ошибок moviepy.editor импорта * #No VID = VideoFileClip ( «oldVideoName.flv») #no vid.write_videofile ошибка ( «corrected.mp4») #IndexError в последней строке создается breifly создал файл «correctedTEMP_MPY_wvf_snd.mp3» (только 1kB, воспроизводимый в Audacity), коротышка, прежде чем выбросить исключение. Я получил массивную отслеживающий с окончательным чтением Teir: Файл "\ Python37-32 \ Lib \ сайта-пакеты \ moviepy \ аудио \ ю \ readers.py", строка 168, в get_frame «Доступ к времени т =% 02f-%. .02f секунд, «% (тт [0], тт [-1]) + IndexError: Индекс 0 находится вне границ для оси 0 с размером 0 Я предположил, что это было вызвано проблемой с аудио читателя не принимает предполагаемую 00:00 метки времени в качестве длины видео. Использование MoviePy подклипа я попытался выяснить, есть ли способ, что я мог вручную кормить MoviePy начала и конца метки времени, используя метод подклипа. Я знаю, что видео имеет длину по меньшей мере, 4 секунды, так что я использовал это в качестве контрольного теста: клип = vid.subclip ( «00:00:00», «00:00:05») #no clip.write_videofile ошибки (» corrected.mp4" ) #OSError метод write_videofile снова бросил исключение: Файл "\ Python37-32 \ Lib \ сайт-пакеты \ moviepy \ аудио \ Io \ readers.py", строка 169, в get_frame «с длительностью клипа =% D секунд, «% self.duration) OSError: Ошибка в файле oldVideoName.flv, Доступ к времени Т = 0.00-0.04 секунд, с длительностью клипа = 0 секунд, даже если этот метод был работать, я должен был бы найти способ автоматизировать процесс обнаружения время окончания. Использование OpenCV CAP_PROP_FRAME_COUNT Одним из возможных решений найти конечное время (длина видео) состоит в использовании CV2, на этот пост. импорт ошибка CV2 #no VID = cv2.VideoCapture ( "oldVideoName.flv") #No ошибка vid.get (cv2.CAP_PROP_FRAME_COUNT) #returns -5.534023222112865e + 17 Я не планирующий получить отрицательный поплавок для этого значения. Дальнейшие тесты показали мне, что поплавок не соответствует вообще с длиной видео, так как все незавершенные видео возвращают один и тот же поплавок для этого запроса. (Обычное видео сделать возвращает их длину для этого вызова метода) Это полезно перебрать каталог, идентифицирующий незакрытых для записи видео. Пользуется MoviePy исправить большое количество незакрытых видео жизнеспособного или даже возможное решение? Что лучше использовать CV2 (Python OpenCV) для решения этой проблемы?
Frank Fanelli
1

голосов
1

ответ
1.5k

Просмотры

Видео редактирования с питоном: добавить фоновую музыку к видео со звуком

Я хотел бы добавить фоновую музыку в видео файл (.mp4) в питоне. Я посмотрел в Интернете и сделал некоторые трюки с moviepy для питона, но я не нашел ни одного способа, чтобы добавить фоновую музыку к видео файл, который уже содержит музыку. Любые идеи, как сделать это? Редактировать следующий комментарий Anil_M в: Спасибо, нет, я не смотрел на этой конкретную тему, Althought я знал о FFmpeg, но это выглядит как раз, это способ объединить видео без звука с аудио дорожкой. Так что теперь я буду пытаться извлекать аудио из видео, слияние с другим звуковым файлом, а затем объединить обратно с видео. Может быть, это не самый лучший способ, но, по крайней мере, это possile, как даются ответы на вопросы о слиянии 2 звуковых дорожек.
Jay D.
2

голосов
0

ответ
2.3k

Просмотры

python-moviepy-resize(), Exception: tostring() has been removed. Please call tobytes() instead

My code: clip1 = VideoFileClip(changename).subclip(0,40) clip2 = VideoFileClip(changename).subclip(int(duration/2-20), int(duration/2+20) ) clip3 = VideoFileClip(changename).subclip(duration-41,duration-1) final_clip = concatenate_videoclips([clip1,clip2,clip3]) final_clip.resize(width=480).write_videofile(exportfile, fps=25) Exception Traceback (most recent call last) in () 8 #final_clip.set_audio(audio.set_duration(final_clip)) 9 ---> 10 final_clip.resize(width=480).write_videofile(exportfile, fps=25) 11 12 if meta['width']>480: /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/fx/resize.pyc in resize(clip, newsize, height, width, apply_to_mask) 142 fl = lambda pic: resizer(pic.astype('uint8'), newsize) 143 --> 144 newclip = clip.fl_image(fl) 145 146 if apply_to_mask and clip.mask is not None: /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/VideoClip.pyc in fl_image(self, image_func, apply_to) 512 `get_frame(t)` by another frame, `image_func(get_frame(t))` 513 """ --> 514 return self.fl(lambda gf, t: image_func(gf(t)), apply_to) 515 516 # -------------------------------------------------------------- /Applications/anaconda/lib/python2.7/site-packages/moviepy/Clip.pyc in fl(self, fun, apply_to, keep_duration) 134 135 #mf = copy(self.make_frame) --> 136 newclip = self.set_make_frame(lambda t: fun(self.get_frame, t)) 137 138 if not keep_duration: in set_make_frame(self, mf) /Applications/anaconda/lib/python2.7/site-packages/moviepy/decorators.pyc in outplace(f, clip, *a, **k) 12 """ Applies f(clip.copy(), *a, **k) and returns clip.copy()""" 13 newclip = clip.copy() ---> 14 f(newclip, *a, **k) 15 return newclip 16 /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/VideoClip.pyc in set_make_frame(self, mf) 652 """ 653 self.make_frame = mf --> 654 self.size = self.get_frame(0).shape[:2][::-1] 655 656 in get_frame(self, t) /Applications/anaconda/lib/python2.7/site-packages/moviepy/decorators.pyc in wrapper(f, *a, **kw) 87 new_kw = {k: fun(v) if k in varnames else v 88 for (k,v) in kw.items()} ---> 89 return f(*new_a, **new_kw) 90 return decorator.decorator(wrapper) 91 /Applications/anaconda/lib/python2.7/site-packages/moviepy/Clip.pyc in get_frame(self, t) 93 return frame 94 else: ---> 95 return self.make_frame(t) 96 97 def fl(self, fun, apply_to=[] , keep_duration=True): /Applications/anaconda/lib/python2.7/site-packages/moviepy/Clip.pyc in (t) 134 135 #mf = copy(self.make_frame) --> 136 newclip = self.set_make_frame(lambda t: fun(self.get_frame, t)) 137 138 if not keep_duration: /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/VideoClip.pyc in (gf, t) 512 `get_frame(t)` by another frame, `image_func(get_frame(t))` 513 """ --> 514 return self.fl(lambda gf, t: image_func(gf(t)), apply_to) 515 516 # -------------------------------------------------------------- /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/fx/resize.pyc in (pic) 140 141 else: --> 142 fl = lambda pic: resizer(pic.astype('uint8'), newsize) 143 144 newclip = clip.fl_image(fl) /Applications/anaconda/lib/python2.7/site-packages/moviepy/video/fx/resize.pyc in resizer(pic, newsize) 30 pilim = Image.fromarray(pic) 31 resized_pil = pilim.resize(newsize[::-1], Image.ANTIALIAS) ---> 32 arr = np.fromstring(resized_pil.tostring(), dtype='uint8') 33 return arr.reshape(newshape) 34 resizer.origin = "PIL" /Applications/anaconda/lib/python2.7/site-packages/PIL/Image.pyc in tostring(self, *args, **kw) 684 def tostring(self, *args, **kw): 685 raise Exception("tostring() has been removed. " + --> 686 "Please call tobytes() instead.") 687 688 def tobitmap(self, name="image"): Exception: tostring() has been removed. Please call tobytes() instead. Help of resize() fuction: resize(clip, newsize=None, height=None, width=None, apply_to_mask=True) | Returns a video clip that is a resized version of the clip. | | Parameters | ------------ | | newsize: | Can be either | - ``(height,width)`` in pixels or a float representing | - A scaling factor, like 0.5 | - A function of time returning one of these. | | width: | width of the new clip in pixel. The height is then computed so | that the width/height ratio is conserved. | | height: | height of the new clip in pixel. The width is then computed so | that the width/height ratio is conserved. | | Examples | ---------- | | >>> myClip.resize( (460,720) ) # New resolution: (460,720) | >>> myClip.resize(0.6) # width and heigth multiplied by 0.6 | >>> myClip.resize(width=800) # height computed automatically. | >>> myClip.resize(lambda t : 1+0.02*t) # slow swelling of the clip I tried all of the examples : resize( (width,height) ), resize(domsampling), resize(width=800), resize(lambda t : 1+0.02*t). But all of them getting the same error.
Stream
5

голосов
2

ответ
6.3k

Просмотры

Как изменить размер видеоклипа Python

Я хочу, чтобы изменить размер видеоклипа в Python 2.7. Для примера приведет «movie.mp4» с качеством 1080p Результат должен быть «movie.mp4» с качеством 360p Я считаю, что должно быть решением с Moviepy. Если вы знаете, решение с ним. Буду признателен, если вы ответите мне.
Seyed Ali Akhavani
4

голосов
1

ответ
879

Просмотры

Moviepy - Создание нескольких подклипы используя раз из CSV-файла

Я создаю сценарий Python, который использует модуль MoviePy, принять клипы с большим видео и объединить их вместе. Время для клипов детализированы в CSV-файл, как это; 0,10 11,19 15,20 34,42 и т.д. То, что я сделал это прочитать файл строку CSV построчно, а затем с помощью метода подклипа из Moviepy создал клип, который хранится в списке клипов, однако я получаю IndexError - индекс списка вне диапазона. Что может быть проблемой (код работает отлично, если я не использую метод подклипа со значениями из файла CSV)? Это мой код: видео = VideoFileClip ( «файл») clipsArray = импорт CSV с открытым ( «CSV файл», «г») в файл []: читатель = csv.reader (файл) для строки в читателе: = строка начального времени [0] EndTime = строка [1] клип = fullVideo.subclip (начальный промежуток, EndTime) clipsArray.
TarlochanSingh
2

голосов
3

ответ
8.8k

Просмотры

Getting “OSError: [WinError 6] The handle is invalid” in VideoFileClip function

I am creating a program using python by importing moviepy library, but getting following error: from moviepy.editor import VideoFileClip white_output = 'videos/testVideo.mp4' clip1 = VideoFileClip("videos/testVideo.mp4") OSError Traceback (most recent call last) in () 1 white_output = 'videos/testVideo.mp4' ----> 2 clip1 = VideoFileClip("videos/testVideo.mp4") 3 white_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!! 4 get_ipython().magic('time white_clip.write_videofile(white_output, audio=False)') C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\VideoFileClip.py in __init__(self, filename, has_mask, audio, audio_buffersize, audio_fps, audio_nbytes, verbose) 53 # Make a reader 54 pix_fmt= "rgba" if has_mask else "rgb24" ---> 55 reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt) 56 self.reader = reader 57 # Make some of the reader's attributes accessible from the clip C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\ffmpeg_reader.py in __init__(self, filename, print_infos, bufsize, pix_fmt, check_duration) 30 31 self.filename = filename ---> 32 infos = ffmpeg_parse_infos(filename, print_infos, check_duration) 33 self.fps = infos['video_fps'] 34 self.size = infos['video_size'] C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\ffmpeg_reader.py in ffmpeg_parse_infos(filename, print_infos, check_duration) 236 popen_params["creationflags"] = 0x08000000 237 --> 238 proc = sp.Popen(cmd, **popen_params) 239 240 proc.stdout.readline() C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds) 840 pass_fds=()): 841 """Create new Popen instance.""" --> 842 _cleanup() 843 # Held while anything is calling waitpid before returncode has been 844 # updated to prevent clobbering returncode if wait() or poll() are C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in _cleanup() 503 def _cleanup(): 504 for inst in _active[:]: --> 505 res = inst._internal_poll(_deadstate=sys.maxsize) 506 if res is not None: 507 try: C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in _internal_poll(self, _deadstate, _WaitForSingleObject, _WAIT_OBJECT_0, _GetExitCodeProcess) 1257 """ 1258 if self.returncode is None: -> 1259 if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0: 1260 self.returncode = _GetExitCodeProcess(self._handle) 1261 return self.returncode OSError: [WinError 6] The handle is invalid Please let me know a workaround.
4

голосов
2

ответ
78

Просмотры

Высокая производительность видео редактирования в Python

Я пытаюсь добавить водяной знак на очень короткую часть mp4 видео. Он должен быть очень, очень быстро. Теперь я пытался сделать это с moviepy Вот мой код: импорт moviepy.editor, как тр видео = mp.VideoFileClip ( "video.mp4") part1 = video.subclip (0,10) part2 = video.subclip (10,15 ) part3 = video.subclip (15,152.56) логотип = (mp.ImageClip ( "logo.png") .set_duration (part2.duration) .resize (высота = 50) # если вам необходимо изменить размер ... .margin (право = 8, верхний = 8, непрозрачность = 0) # (необязательно) логотипа внешнеторговой обивки .set_pos (( "правый", "верхний"))) partSubtitles = mp.CompositeVideoClip ([part2, логотип]) final_clip = mp.concatenate_videoclips ( [part1, partSubtitles, part3]) final_clip.write_videofile ( "my_concatenation.mp4") Добавление логотипа и объединения видео работает почти мгновенно, но запись на диск занимает 1 мин в течение 2 мин видео, что значительно слишком долго. Вы знаете способ редактирования только несколько кадров и сохранить гораздо быстрее? Во-вторых, после преобразования, новый файл примерно на 40% больше. Зачем? Как исправить это?
R.Slaby
2

голосов
1

ответ
326

Просмотры

Создание нескольких подклипов из видео с UnixTime из JSON?

Проблема: Я хочу, чтобы обрезать видео файл на основе начального времени и конечное время от данных JSON. Есть несколько запуска и времени окончания и видео должны быть обрезаны, а затем финальные части прилагаются. Я попытался с помощью MoviePy путем присвоения метки времени UNIX к вар и затем преобразование в MM: SS с помощью DateTime. Как я могу сделать это для нескольких значений, например скрипт проходит через всю dicts и обрежет видео в соответствии с данными? Является MoviePY достаточно хорошо для этой работы, или есть какой-либо другой эффективный Lib / выход есть? Что я пробовал: от moviepy.editor импорт * импорт даты и времени start_time = INT (. Datetime.datetime.fromtimestamp (междунар ( "1456229360")) STRFTIME ( '% S')) end_time = INT (datetime.datetime.fromtimestamp (INT ( "1456229334")). STRFTIME ( '% S')) печати start_time печати END_TIME my_clip = VideoFileClip ( "sample.mp4" ) #Trims видео в соответствии с временными метками обработанных clip1 = my_clip.subclip (start_time, END_TIME) # и выберите подклип 00:00:00 - 00:00:00 #Append отсеченные части. #final_video = конкатенации ([clip1, clip2, Clip3]) # Как это сделать? processed_vid = clip1.write_videofile ( "final_sample.mp4") с открытым ( 'output.json', 'г'), как F: временные метки = json.load (е) Образец Json данные: [{ "ACCL": 1,5899999999999999, «продолжительность «: 19, "end_time": 1434367730, "start_time": 1434367711}, { "ACCL": 0,7670000000000012, "длительность": 14, "end_time": 1434368618, "start_time": 1434368604}, { "ACCL": 0,7129999999999992, "продолжительность": 11, "End_time": 1434368692, "start_time": 1434368681}, { "ACCL": 0,5970000000000013, "продолжительность": 13, "end_time": 1434367605, "start_time": 1434367592}] Обновление: Я пытался делать что-то другое, я получаю там, но мне нужна помощь в массовом преобразовании этих временных меток в moviepy принимает только ЧЧ: ММ: СС, а не UnixTime, а также с созданием подклипов на основе этого. от moviepy.editor импорта * импорт дата и время импорта JSON clips_array = [] видео = VideoFileClip ( 'sample.mov') с открытым ( 'output.json', 'г'), как F: временные метки = json.load (е) для временных меток в F: клип = full_vid.subclip (start_time, END_TIME) clips_array.append (клип) я получаю там, но мне нужна помощь в массовом преобразовании этих временных меток в moviepy принимает только ЧЧ: ММ: СС, а не UnixTime, а также с созданием подклипов на основе этого. от moviepy.editor импорта * импорт дата и время импорта JSON clips_array = [] видео = VideoFileClip ( 'sample.mov') с открытым ( 'output.json', 'г'), как F: временные метки = json.load (е) для временных меток в F: клип = full_vid.subclip (start_time, END_TIME) clips_array.append (клип) я получаю там, но мне нужна помощь в массовом преобразовании этих временных меток в moviepy принимает только ЧЧ: ММ: СС, а не UnixTime, а также с созданием подклипов на основе этого. от moviepy.editor импорта * импорт дата и время импорта JSON clips_array = [] видео = VideoFileClip ( 'sample.mov') с открытым ( 'output.json', 'г'), как F: временные метки = json.load (е) для временных меток в F: клип = full_vid.subclip (start_time, END_TIME) clips_array.append (клип)
Dynamic
12

голосов
1

ответ
3.3k

Просмотры

How to concatenate videos in moviepy?

Я пытаюсь использовать moviepy для создания видео с текстами. Во-первых, я хочу показать одну сообщения, а затем еще один. В моем случае я хочу, чтобы показать «Собака» в течение одной секунды, и чем «Cat Cat». Для этого я использую следующий код: от moviepy.editor импорта * (my_func четкости messeges): клипы = {} Count = 0 для messege в messeges: кол + = 1 клипы [число] = TextClip (messege, FontSize = 270, цвет = 'зеленые') клипы [число] = клипы [число] .set_pos ( 'центр'). set_duration (1) клипы [число] .write_videofile (ул (счет) + '.avi', кадров в секунду = 24, кодек =» mpeg4 'видео) = [клипы [+ 1] для I в диапазоне (количество)] видео = конкатенации (видео) video.write_videofile (' test.avi», 24 кадров в секунду =, кодек = 'mpeg4') видео = VideoFileClip ( 'test.avi') video.write_gif ( "тест.
Roman
3

голосов
2

ответ
547

Просмотры

оживляющий MayaVi с moviepy

Я пытаюсь выяснить, как экспортировать 3D графики, созданные с MayaVi в фильме, который я могу использовать для презентаций в Powerpoint и т.д. Я нашел обсуждение делать это с помощью moviepy в http://zulko.github.io/blog/2014 / 11/29 / дата-анимации-с-Python-и-moviepy / Я использовал этот код, с небольшими изменениями следующим образом длительность = 6 четкости make_frame (т): и = np.linspace (0,2 * np.pi, 360) у = np.sin (3 * и) * (0,2 + 0,5 * np.cos (2 * np.pi * т / длительность)) pore_surface.mlab_source.set (у = у) mlab.view (азимут = 360 * т / продолжительность, расстояние = 200). , , Verts, лица = marching_cubes (large_region, 0,5, (1., 1., 1.)) surface_area = mesh_surface_area (VERTS, лица) pore_surface = mlab.triangular_mesh ([верт [0] для верт в Verts], [верт [1 ] для верт в Verts], в вызове self.handler (* арг) Файл "/Users/iz9/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/mayavi/tools/sources.py", строка 835, в _y_changed себя. точки [:, 1] = y.ravel () ValueError: не может транслировать входной массив из формы (360) в форму (43505) Ошибка: черты: Исключение произошло в чертах обработчика уведомлений для объекта:, признак: у, старое значение: [0. 0. 1. ..., 62,5 63. 63.], новое значение: [0.00000000e + 00 3.67371235e-02 7.33729915e-02 1.09806628e-01 1.45937613e-01 1.81666362e-01 2.16894399e-01 2.51524628e-01. , , это повторяется много раз. В то же время сцена MayaVi действительно показывает, и он показывает вращение изображения в то время как эта ошибка продолжает я бегу на Python под Enthought Навес на Mac. не может транслировать входной массив из формы (360) в форме (43505) ОШИБКА: черты: Исключение в черты обработчика уведомлений для объекта:, черта: у, старое значение: [0. 0. 1. ... 62,5 63. 63.], новое значение: [0.00000000e + 00 3.67371235e-02 7.33729915e-02 1.09806628e-01 1.45937613e-01 1.81666362e-01 2.16894399e-01 2.51524628e-01. , , это повторяется много раз. В то же время сцена MayaVi действительно показывает, и он показывает вращение изображения в то время как эта ошибка продолжает я бегу на Python под Enthought Навес на Mac. не может транслировать входной массив из формы (360) в форме (43505) ОШИБКА: черты: Исключение в черты обработчика уведомлений для объекта:, черта: у, старое значение: [0. 0. 1. ... 62,5 63. 63.], новое значение: [0.00000000e + 00 3.67371235e-02 7.33729915e-02 1.09806628e-01 1.45937613e-01 1.81666362e-01 2.16894399e-01 2.51524628e-01. , , это повторяется много раз. В то же время сцена MayaVi действительно показывает, и он показывает вращение изображения в то время как эта ошибка продолжает я бегу на Python под Enthought Навес на Mac. 16894399e-01 2.51524628e-01. , , это повторяется много раз. В то же время сцена MayaVi действительно показывает, и он показывает вращение изображения в то время как эта ошибка продолжает я бегу на Python под Enthought Навес на Mac. 16894399e-01 2.51524628e-01. , , это повторяется много раз. В то же время сцена MayaVi действительно показывает, и он показывает вращение изображения в то время как эта ошибка продолжает я бегу на Python под Enthought Навес на Mac.
LM Anovitz
3

голосов
1

ответ
979

Просмотры

Как изменить скорость звука без изменения шага?

Мне нужно применять аудио видео в определенное время с определенной продолжительностью, но некоторые аудио длительности больше (или меньше), то это необходимо. Как изменить скорость звука без изменения шага? Я попытался изменить частоту кадров (путем умножения на деления необходимой продолжительности на аудио продолжительности), но она не работает, как я хочу. Оригинальный = VideoFileClip ( "orig.mp4") клипсы = [orig.audio.volumex (0.3)] подлодки = [] #Some массив я = 0 для суб в подлодки: клип = AudioFileClip ( "\\ Temp {} mp3" ) мульт = clip.duration / (sub.end - sub.start) + 0,00001 = клип AudioArrayClip (clip.to_soundarray (BufferSize = 500, кадров в секунду = 24000 / мульт), кадр = 24000) .set_start (sub.start) .set_end (sub.end) clips.append (клип) I + 1 = конечная = CompositeAudioClip (клипы) final.write_audiofile ( "final.mp3")
harungo
2

голосов
0

ответ
2.1k

Просмотры

Как объединить два видео?

Я использую https://github.com/Zulko/moviepy библиотеку для слияния двух видео с питоном. Она объединилась успешно, но звук видео не существует в merged.mp4. Код Python: clip1 = VideoFileClip ( "2.mp4", аудио = True) clip2 = VideoFileClip ( "1.mp4", аудио = True) final_clip = concatenate_videoclips ([clip1, clip2], метод = "создать") final_clip. write_videofile ( "merged.mp4") Я также попытался с FFmpeg FFmpeg -i 'CONCAT: 1.mp4 | 2.mp4' -codec копировать merged.mp4 FFmpeg не может объединить видео. Это создание merged.mp4 который только 1.mp4 Как я могу объединить два видео с питоном или другим способом?
Alexander
3

голосов
1

ответ
559

Просмотры

EC2 экземпляра: Невозможно выделить память

Я есть экземпляр EC2, который хозяин среду Elastic Beanstalk (Linux и Python) с конфигурацией: тип Instance: c5.2xlarge размер тома Root: 1000 Гигабайт В моем файле питона, я создаю 60 потоков для обработки видео культур (с использованием moviepy) , каждый поток будет обрезать 10 видео (общая 10Мб). Когда я запускаю файл, он вернул ошибку «Не удается выделить память». Я знаю, что это о из памяти, но я не знаю, как измерить и настройку мощности экземпляра EC2, чтобы избежать этой проблемы. Любое предложение будет оценено.
Peter Pham
2

голосов
0

ответ
623

Просмотры

Почему конкатенации изображений в moviepy не удается иногда?

Я использую следующий код для чтения два изображения, установить их продолжительность и объединить их в одну анимацию. от импорта moviepy.editor * ic_1 = ImageClip ( 'pg_0.png') ic_1 = ic_1.set_duration (2.0) ic_2 = ImageClip ( 'pg_1.png') ic_2 = ic_2.set_duration (2.0) видео = конкатенации ([ic_1, ic_2 ], метод = "создать") video.write_videofile ( 'test.avi', кадров в секунду = 24, кодек = 'mpeg4') Это работает, как ожидалось для pg_0.png и pg_1.png. Но е я заменить эти два изображений еще два изображения, которые я получаю сообщение об ошибке: ValueError: операнды не могут быть передающимся вместе с формами (272,363,3) (272,363) Если требуется более подробная информация, здесь есть полное сообщение: [MoviePy] >>>> Строительство видео test.avi [MoviePy] Запись видео test.avi | ---------- | 0/97 0% [истекшее: 00:00 осталось:,? Iters / сек] Traceback (самый последний вызов последнего): , Строка 110, в make_frame F = c.blit_on (е, т) Файл "/usr/local/lib/python2.7/dist-packages/moviepy/video/VideoClip.py", строка 571, в обратном blit_on блитирования ( IMG, фотография, позы, маска = маска, ismask = self.ismask) Файл "/usr/local/lib/python2.7/dist-packages/moviepy/video/tools/drawing.py", строка 45, в Blit new_im2 [yp1: yp2, xp1: xp2] = ValueError: выведены операнды не могут передаваться вместе с формами (272,363,3) (272,363) Почему формы отличаются? Все изображения, которые я использую смотрите на меня как обычные PNG изображений. Как я могу решить эту проблему?
Roman
1

голосов
1

ответ
4.7k

Просмотры

Как использовать fl_image функцию в Moviepy в Python?

Я хочу, чтобы сохранить видео в другой файл, используя другое имя. Таким образом, я следующие коды справиться с этим вопрос: четкости process_image_1 (изображение): IMG = mpimg.imread (изображение) обратный IMG; Кроме того, у меня есть выход = 'output.mp4' clip1 = VideoFileClip ( "Right.mp4") клип = clip1.fl_image (process_image_1)% времени clip.write_videofile (выход, аудио = False) Однако, я получил следующее сообщение об ошибке: Объект как представляется, не будет 8-битовую строку пути в или Python файл-подобный объект я не уверен, что случилось с ним, кто-то может сказать мне, почему?
user144600
2

голосов
1

ответ
619

Просмотры

Как я могу решить большое использование памяти MoviePy?

Я пытаюсь сделать видео из большого количества изображений с использованием MoviePy. Подход отлично работает для небольшого количества изображений, но процесс был убит для большого количества изображений. При около 500 изображений добавлены, процесс Python использует все около половины энергонезависимой памяти, доступной. Есть много больше изображений, чем это. Как мне решить эту проблему? Я хочу, чтобы закончить обработку, и я не возражаю, если обработка занимает немного больше времени, но это было бы хорошо, если бы я мог бы ограничить использование памяти и процессора в некотором роде. При нынешнем подходе, машина становится практически непригодной для использования при обработке. Код выглядит следующим образом: импорт ОС время импорта из moviepy.editor импорта * четкость ls_files (путь = ""): возвращение ([имя_файл для FileName в os.listdir (пути), если os.path.isfile (os.path. присоединиться (путь, Filename))]) Защита основного (): listOfFiles = ls_files () listOfTileImageFiles = [имя_файла для FileName в listOfFiles \ если "_tile.png" в FileName] numberOfTiledImages = LEN (listOfTileImageFiles) # Создание видеоклипа для каждого изображения. печать ( "создавать видео") = видеоклипы [] imageDurations = [] для Изображения NUMBER в диапазоне (0, numberOfTiledImages):. ImageFileName = ул (Изображение NUMBER) + печать "_tile.png" ( "добавить изображение {имя_файла}" формат (имя_файл = ImageFileName)) imageClip = ImageClip (ImageFileName) продолжительность = 0,1 VideoClip = imageClip.set_duration (длительность) # Определить время начала изображения путем вычисления суммы длительностей # всех предыдущих изображений. если Изображение NUMBER = 0:
d3pd
2

голосов
1

ответ
978

Просмотры

Moviepy - избежать записи на диск с ImageSequenceClip?

Я генерация значительного количества изображений и запись их на диск. Затем я передать массив имен файлов в ImageSequenceClip. Основное узкое место записывают изображения вниз на диск; есть способ, чтобы сохранить изображения в памяти затем передать, что ImageSequenceClip, впоследствии избежать время, необходимое для записи / чтения на диск? имена файлов = [] для я в диапазоне (0, ФРЕЙМАМИ): имя_файла = "TMP / frame_% s.png" % (я) filenames.append (имя файла) center_x = img_width / 2 center_y = img_height - ((img_height - I * HEIGHT_INC) / 2) = ширина img_width - г * WIDTH_INC высота = img_height - я * HEIGHT_INC IMG = vfx.crop (img_w_usr_img, x_center = center_x, y_center = center_y, ширина = ширина, высота = высота) IMG = img.resize (( VID_WIDTH, VID_HEIGHT)) img.save_frame (имя файла) печать "обработал:% s"
Michael
7

голосов
2

ответ
2.4k

Просмотры

Экземпляр MoviePy VideoFileClip не имеет атрибут «читателя»

Я искал в течение нескольких дней по поводу этого вопроса, но пришел ни к какому решению. У меня есть большой скрипт (я пытаюсь объединить большое количество видео, ~ 100-500), поэтому я получаю ошибку «Слишком много открытых файлов». Чтение ответов Zulko на другие вопросы, я увидел, что это было необходимо удалить каждый экземпляр VideoFileClip как вручную это: дель clip.reader дель клип Вопроса я столкнулся в том, что у меня есть простой hello_world пытается сделать это, но получает сообщение об ошибке экземпляр VideoFileClip не имеет атрибута 'читателя Вот код: от moviepy.editor импорта * rel_path = "main.py" file_path = "hello_world.mp4" newVideo = VideoFileClip (file_path) дель newVideo.reader дель newVideo Я использую El Capitan (OS X), обновили MoviePy, Numpy, ImageMagick, и все пакеты, я видел, как требуется, но я все еще получаю эту ошибку. Проблема в том, что мой компьютер заканчивается замораживание иногда потому, что он использует так много памяти. Я в настоящее время конкатенации куски 25 видео, и пытаюсь удалить все 25 «открытые файлы», сцепить следующий 25, и так далее. После этого я конкатенировать длинные видео. Пожалуйста, обратите внимание, что без линии дель newVideo.reader я все еще получаю ошибку слишком много открытых файлов При попытке запустить реальный сценарий, я получаю следующее сообщение об ошибке, если не добавить newVideo.reader Traceback (самый последний вызов последнего): Файл "/Users/johnpeebles/mispistachos/vines/video/reader.py", строка 135, в compile_videos newVideo = VideoFileClip (videoPath) .resize (высота = finalHeight, ширина = finalWidth) .set_position ( 'центр'). set_start (currentDuration ) Файл «/ Library / Python / 2.
Waclock
2

голосов
1

ответ
463

Просмотры

Как сделать пустое видео с Moviepy

Как я могу сделать полностью черное видео без звука с помощью moviepy? Желательно с размером и продолжительность базового клипа, например 1280х720 и длиной 5 секунд, 30 кадров в секунду.
Maurdekye
2

голосов
1

ответ
893

Просмотры

Moviepy zooming effects need tweaking

Я хотел бы, чтобы увеличить клип к определенному размеру, то в дальнейшем остановить масштабирование. Другими слова, клип остановить дальнейшее увеличение его размера после достижения определенного размера, и его лучше, если клип начать масштабирование от гораздо меньше исходного размера, и в большую версию. Я использую moviepy модуль. С помощью следующего кода можно постепенно увеличить клип, но с трудом выяснить, как вырастить клип от мала до велика, создавая анимированный эффект. Любая обратная связь вы обеспечиваете очень ценится. импорт ОС от moviepy.editor импорта * = размера экрана (640360) клип = (ImageClip (IMG) .resize (высота = Размер экрана [1] * 4) .resize (лямбда т: 1 + 0,02 * т) .set_position (( 'центр », 'центр')). set_duration (10)) Я имею очень трудно понять, как написать функцию для того, чтобы создать эффект типа пишущих с txtclip moviepy, а это означает буквы в клипе будет показан один за другие, создавая плавную машинку анимация текста. Moviepy получили некоторые полезные классы, такие как findObjects - которые могут обнаружить отдельные буквы из клипа: txtClip = TextClip ( «Классный эффект», цвет = «белый», шрифт = «Амири-Bold», кернинг = 5, размер шрифта = 100 ) CVC = CompositeVideoClip ([txtClip.set_pos ( 'центр')], размер = размер экрана, прозрачный = True) буквы = findObjects (CVC) # список ImageClips здесь ссылка: http://zulko.github.io/ moviepy / примеры / moving_letters. HTML после нахождения буквы (буквы клипы) Я хотел бы присоединиться к ним таким образом, что они появляются один за другим, который выглядит как тип письма. Документация уже есть несколько примеров движущихся букв, которые могут быть очень полезны, однако. Спасибо
Anay Bose
2

голосов
1

ответ
833

Просмотры

многопроцессорная в питона moviepy

работаю над написанием видеоклипов в качестве видеофайлов параллельно одновременно на moviepy, без необходимости ждать завершение процесса, поэтому я разделить мое видео на 5-секундные клипы, п = 0 р = 5 клипа = mp.VideoFileClip (видеофайл) .subclip (п, п + р) я затем добавить субтитры к видео, х = 0 text2 = 'Hello' ул (х) текст + [х] = TextClip (text2, шрифт = 'Амири-регулярным', цвет = 'белый' , размер шрифта = 24) .set_duration (р) .set_start (0), то я делаю это снова и снова в течение первых пяти клипов, а на пятый, я пишу клип как видеофайл я хочу продолжить обработку оставшихся видео в письменной форме продолжается в фоновом режиме, поэтому я использую мультипроцессирование, после редактирования кода, предложенного @Roland Смита, я использую: если float.is_integer (флоат (х) /5.0) == Правда и х = 0: text2 = конкатенация (текст.значения ()) textd = text2.on_color (размер = (clip.w, text2.h), цвет = (0,0,0), col_opacity = 0,6) .set_pos ( 'снизу') VIDEO3 [п] = CompositeVideoClip ( [VideoFileClip (видеофайл) .subclip (п, 5 + п), textd]) защиту AudioClip (данные): outname = ул (данные) [- 10:]. полоса ( '>') +».mp4' data.write_videofile (outname, кадров в секунду = 24, кодек = 'libx264') возвращают имена outname = video3.values ​​() ч = multiprocessing.Pool () = аудиофайлы h.map (AudioClip, имена) GC.Collect () п = п + рх = х + 1 Я импортировал из moviepy.editor импорта * импорта moviepy.editor, как тр импорт ОС импорт многопроцессорной из многопроцессорных импорта бассейн однако, я получаю эту ошибку: Traceback (самый последний вызов последнего): Файл «p2 (копия) .py» , строка 128, в аудиофайлы = h.map (AudioClip, имена) Файл «/ USR / Lib / python2.7 / многопроцессорные / pool.py», строка 251, в карте возвратного self.map_async (FUNC, итерация, chunksize) .get () Файл "/usr/lib/python2.7/multiprocessing/pool.py", строка 558, в ПОЛУЧИТЬ рейз self._value cPickle.PicklingError: не удается замариновать:. атрибут поиска __builtin __ функция не удалось, пожалуйста, помогите
programmer44
2

голосов
1

ответ
300

Просмотры

moviepy размер не работает в некоторых размерах

У меня есть mp4 видео 720x1280, и я хочу его в различных размерах, как: 0,66%, 0,5% и 0,33%. Для каждого из этих размеров я использую: клип = mp.VideoFileClip (файл) clip_resized1 = clip.resize (высота = INT (clip.h * поплавок (0,66666))) clip_resized1.write_videofile (имя + '-2x' + вн) Я сделать это для каждого из размеров, но некоторые из них работают, а некоторые нет. В не 0.66 работает, так же, как 0,33. 0,5% работает просто отлично. Она создает файлы для любого размера, но они коррумпированы, и не может открыть их (за исключением 0.5, как я сказал, что хорошо работает). Любой ключ на это? Любое лучшее решение для изменения размера в Python?
facumedica
2

голосов
3

ответ
441

Просмотры

Как добавить параметры fl_image в MoviePy?

Из того, что я понимаю, fl_image принимает функцию трубопровода, который должен принимать только одно изображение, то есть processedClip = input_file.fl_image (imagePipeline) где Защиту imagePipeline (IMG): .... возвращение finalImage Но что, если наша функция imagePipeline принимает больше аргументов т.е. Защита imagePipeline (IMG, arg1, arg2, arg3): ... вернуться finalImage Как мы можем добавить аргументы в нашу imagePipeline в fl_image?
Sean
2

голосов
1

ответ
1.4k

Просмотры

Moviepy - Обрезка видео с рамкой (область интереса) движется слева направо со временем

Я работаю автоматически создавать GIF из видео клипов на сервере с помощью MoviePy. Библиотека помогает в различных преобразований и обрезки видео для создания GIF-файлов. В моем текущем проекте, у меня есть видео ролик с большим количеством движущихся объектов, что делает его трудно сделать автоматическое отслеживание интересующей области. (Быстрый GIF ниже показывает сцены, хотя фон может быть легко устранить и сделать отслеживание объекта. Но давайте говорить отслеживание объекта выходит за рамки проекта). Как показано в GIF ниже красного прямоугольника интересующая область, которая движется слева направо со временем. Я хочу, чтобы обрезать эту область и создать GIF. Я использую MoviePy где я обрезанный прямоугольник из видео для создания GIF. Но прямоугольник фиксируются на своей позиции оригинальных координат. Я' м ищет способ, чтобы переместить этот прямоугольник со временем и обрезать его для создания GIF. клип = (VideoFileClip ( "my_video.mp4") .subclip ((1,10.1), (1,14.9)) .resize (0,5) .crop (x1 = 145, y1 = 110, Х2 = 400, у2 = 810) ) clip.write_gif ( «my_gif.gif») Как добавить фактор времени, так что координаты изменения со временем. Любые предложения приветствуются.
Amit
3

голосов
2

ответ
745

Просмотры

Почему кадры изменения Видеоклип, когда он записывается в видеофайл?

Я написал следующий код: от moviepy.editor импорта * из клипа PIL импорта изображения = VideoFileClip ( "video.mp4") видео = CompositeVideoClip ([клип]) video.write_videofile ( "video_new.mp4", FPS = clip.fps) затем, чтобы проверить, изменились ли кадры или нет, и если изменилась, что функция изменила их, я извлек первый кадр клипа «», «видео» и «video_new.mp4» и сравнили их: clip1 = VideoFileClip ( "video_new.mp4 «) img1 = clip.get_frame (0) img2 = video.get_frame (0) img3 = clip1.get_frame (0) а = img1 [0,0,0] Ь = img2 [0,0,0] с = img3 [ 0,0,0] Я обнаружил, что а = 24, B = 24, но с = 26 .... Infact на управлении массивом сравните цикл я обнаружил, что «img1» и «img2» были идентичными, но «img3» отличается , Я подозреваю, что функция video.write_videofile отвечает за изменения в массиве. Но я не знаю, почему ... Может кто-нибудь объяснить мне, а также предложить способ записи клипов без изменения их кадров? PS: я читал документы о «VideoFileClip», «FFMPEG_VideoWriter», «FFMPEG_VideoReader», но не смог найти что-нибудь полезное ... мне нужно прочитать точную кадр, как это было, прежде чем писать в коде я работаю. Пожалуйста, предложите мне путь.
Ruchir

Просмотр дополнительных вопросов