Ich schuf teilweise eine aws Lambda-Funktion, die movepy verwenden, um Bilder und Videos in einer einzigen Videodatei zu verketten.Videos können nicht mit movepy auf aws Lambda geändert werden
Zum Beispiel habe ich "img1.jpeg", "img2.jpeg", "video1.mp4" und "video2.mp4". Nach der Verarbeitung der obigen Dateien wird der endgültige Clip ("mp4" -Datei) eine einzelne mp4-Datei sein von: "img1.jpeg + video1.mp4 + img2.jpeg + video2.mp4". Die Auflösung des frescted Clips beträgt 640x480.
Also verkleinere ich die Videos und die Bilder (moviepy.video.fx.all.resize - Größe der Bilder nach der Konvertierung in Videos) in dem Fall, dass sie größer als die oben genannte Auflösung sind. Wenn die Mediendateien in der obigen Größe sind, gehe ich zum Verkettungsprozess über.
Wenn die Mediendateien 640x480 sind, ist der gesamte Prozess in Ordnung. Das Problem ist, wenn die Medien sind größer als 640x480 ich einen Fehler:
[Errno 32] Broken pipe
MoviePy error: FFMPEG encountered the following error while writing file 1_img_transTEMP_MPY_wvf_snd.mp3:
1_img_transTEMP_MPY_wvf_snd.mp3: Permission denied
The audio export failed, possily because the bitrate you specified was two high or too low for the video codec.: IOError
Traceback (most recent call last):
File "/var/task/media_merge.py", line 70, in handler
s.do_merge()
File "/var/task/mediamerge/stitch_video_and_images.py", line 320, in do_merge
self.convert_crop_media()
File "/var/task/mediamerge/stitch_video_and_images.py", line 310, in convert_crop_media
res_path = resize.resize_media()
File "/var/task/mediamerge/stitch_video_and_images.py", line 229, in resize_media
self.final_media_file, verbose=False)
File "<decorator-gen-51>", line 2, in write_videofile
File "/var/task/moviepy/decorators.py", line 54, in requires_duration
return f(clip, *a, **k)
File "<decorator-gen-50>", line 2, in write_videofile
File "/var/task/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 "/var/task/moviepy/decorators.py", line 22, in convert_masks_to_RGB
return f(clip, *a, **k)
File "/var/task/moviepy/video/VideoClip.py", line 331, in write_videofile
verbose=verbose)
File "<decorator-gen-73>", line 2, in write_audiofile
File "/var/task/moviepy/decorators.py", line 54, in requires_duration
return f(clip, *a, **k)
File "/var/task/moviepy/audio/AudioClip.py", line 204, in write_audiofile
verbose=verbose, ffmpeg_params=ffmpeg_params)
File "<decorator-gen-70>", line 2, in ffmpeg_audiowrite
File "/var/task/moviepy/decorators.py", line 54, in requires_duration
return f(clip, *a, **k)
File "/var/task/moviepy/audio/io/ffmpeg_audiowriter.py", line 162, in ffmpeg_audiowrite
writer.write_frames(chunk)
File "/var/task/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 1_img_transTEMP_MPY_wvf_snd.mp3:
1_img_transTEMP_MPY_wvf_snd.mp3: Permission denied
The audio export failed, possily because the bitrate you specified was two high or too low for the video codec.
Die oben ist von aws Lambda-Protokolle. Das Lustige ist, dass es funktioniert, wenn ich es lokal leite.
Hat jemand schon einmal ein ähnliches Problem gesehen oder ist jemand in der Lage mir einige Hinweise zu geben, wie man dieses Problem angehen kann?
By the way, ignoriert die letzte Zeile hinzufügen. Es ist nur ein generischer Kommentar. – tburrows13