moviepy: write out not working

This is my code:

# Import everything needed to edit/save/watch video clips
from moviepy.editor import VideoFileClip
from IPython.display import HTML

new_clip_output = 'test_output.mp4'
test_clip = VideoFileClip("test.mp4")
new_clip = test_clip.fl_image(lambda x: cv2.cvtColor(x, cv2.COLOR_RGB2YUV)) #NOTE: this function expects color images!!
new_clip.write_videofile(new_clip_output, audio=False)

Error
OSError: [Errno 32] Broken pipe

MoviePy error: FFMPEG encountered the following error while writing file test_output.mp4:

 b"Unrecognized option 'preset'.\nError splitting the argument list: Option not found\n"


Full error details are here:
`[MoviePy] >>>> Building video test_output.mp4
[MoviePy] Writing video test_output.mp4
  0%|          | 0/251 [00:00<?, ?it/s]
---------------------------------------------------------------------------
BrokenPipeError                           Traceback (most recent call last)
~/Documents/python3/lib/python3.6/site-packages/moviepy/video/io/ffmpeg_writer.py in write_frame(self, img_array)
    133             if PY3:
--> 134                self.proc.stdin.write(img_array.tobytes())
    135             else:

BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

OSError                                   Traceback (most recent call last)
<ipython-input-30-7a601a4eaaf5> in <module>()
----> 1 new_clip.write_videofile(new_clip_output, audio=False)

<decorator-gen-175> in write_videofile(self, filename, fps, codec, bitrate, audio, audio_fps, preset, audio_nbytes, audio_codec, audio_bitrate, audio_bufsize, temp_audiofile, rewrite_audio, remove_temp, write_logfile, verbose, threads, ffmpeg_params, progress_bar)

~/Documents/python3/lib/python3.6/site-packages/moviepy/decorators.py in requires_duration(f, clip, *a, **k)
     52         raise ValueError("Attribute 'duration' not set")
     53     else:
---> 54         return f(clip, *a, **k)
     55 
     56 

<decorator-gen-174> in write_videofile(self, filename, fps, codec, bitrate, audio, audio_fps, preset, audio_nbytes, audio_codec, audio_bitrate, audio_bufsize, temp_audiofile, rewrite_audio, remove_temp, write_logfile, verbose, threads, ffmpeg_params, progress_bar)

~/Documents/python3/lib/python3.6/site-packages/moviepy/decorators.py in use_clip_fps_by_default(f, clip, *a, **k)
    135              for (k,v) in k.items()}
    136 
--> 137     return f(clip, *new_a, **new_kw)

<decorator-gen-173> in write_videofile(self, filename, fps, codec, bitrate, audio, audio_fps, preset, audio_nbytes, audio_codec, audio_bitrate, audio_bufsize, temp_audiofile, rewrite_audio, remove_temp, write_logfile, verbose, threads, ffmpeg_params, progress_bar)

~/Documents/python3/lib/python3.6/site-packages/moviepy/decorators.py in convert_masks_to_RGB(f, clip, *a, **k)
     20     if clip.ismask:
     21         clip = clip.to_RGB()
---> 22     return f(clip, *a, **k)
     23 
     24 @decorator.decorator

~/Documents/python3/lib/python3.6/site-packages/moviepy/video/VideoClip.py in write_videofile(self, filename, fps, codec, bitrate, audio, audio_fps, preset, audio_nbytes, audio_codec, audio_bitrate, audio_bufsize, temp_audiofile, rewrite_audio, remove_temp, write_logfile, verbose, threads, ffmpeg_params, progress_bar)
    347                            verbose=verbose, threads=threads,
    348                            ffmpeg_params=ffmpeg_params,
--> 349                            progress_bar=progress_bar)
    350 
    351         if remove_temp and make_audio:

~/Documents/python3/lib/python3.6/site-packages/moviepy/video/io/ffmpeg_writer.py in ffmpeg_write_video(clip, filename, fps, codec, bitrate, preset, withmask, write_logfile, audiofile, verbose, threads, ffmpeg_params, progress_bar)
    214             frame = np.dstack([frame,mask])
    215 
--> 216         writer.write_frame(frame)
    217 
    218     writer.close()

~/Documents/python3/lib/python3.6/site-packages/moviepy/video/io/ffmpeg_writer.py in write_frame(self, img_array)
    176 
    177 
--> 178             raise IOError(error)
    179 
    180     def close(self):

OSError: [Errno 32] Broken pipe

MoviePy error: FFMPEG encountered the following error while writing file test_output.mp4:

 b"Unrecognized option 'preset'.\nError splitting the argument list: Option not found\n"

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 15

Most upvoted comments

Hi, I had the same problem. I resolved the problem by installing python package ffmpeg. conda install -c conda-forge ffmpeg Hope this would help 😃

I get this bug with ffmpeg 4.3 but not ffmpeg 4.2.2, so it seems that with the latest version of ffmpeg, this bug has reappeared.