3

write_videofile尝试使用moviepy 库将 m4a (aac) 音频文件写入视频时,我偶尔会收到以下错误。我无法确定究竟是什么导致了这个错误,因为它很少发生。我尝试指定不同的音频比特率,但它仍然引发异常。

video = video.set_audio(AudioFileClip("asdf.m4a"))
video.write_videofile("video.mp4", fps=FPS, codec='libx264', audio_codec="aac", temp_audiofile='temp-audio.m4a', remove_temp=True, audio_bitrate="256k")

[Errno 32] Broken pipe MoviePy 错误:FFMPEG 在写入文件 temp-audio.m4a 时遇到以下错误:

temp-audio.m4a:权限被拒绝

音频导出失败,可能是因为您指定的比特率对于视频编解码器来说太高或太低。:IOError Traceback(最近一次调用最后一次):

video.write_videofile("video.mp4", fps=FPS, codec='libx264', audio_codec="aac", temp_audiofile='temp-audio.m4a', remove_temp=True, audio_bitrate="256k")

文件“”,第 2 行,在 write_videofile 文件“/var/task/moviepy/decorators.py”,第 54 行,在 requires_duration return f(clip, *a, **k)

文件“”,第 2 行,在 write_videofile 文件“/var/task/moviepy/decorators.py”,第 137 行,在 use_clip_fps_by_default 中 return f(clip, *new_a, **new_kw) 文件“”,第 2 行,在 write_videofile 文件中“/var/task/moviepy/decorators.py”,第 22 行,在 convert_masks_to_RGB 中返回 f(clip, *a, **k)

文件“/var/task/moviepy/video/VideoClip.py”,第 331 行,在 write_videofile verbose=verbose 文件“”,第 2 行,在 write_audiofile 文件“/var/task/moviepy/decorators.py”,第 54 行, 在 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 "", line 2 ,在 ffmpeg_audiowrite 文件“/var/task/moviepy/decorators.py”,第 54 行,在 requires_duration 返回 f(clip, *a, **k) 文件“/var/task/moviepy/audio/io/ffmpeg_audiowriter.py ",第 162 行,在 ffmpeg_audiowrite writer.write_frames(chunk) 文件中 "/var/task/moviepy/audio/io/ffmpeg_audiowriter.py",第 122 行,在 write_frames 中引发 IOError(error)

IOError: [Errno 32] Broken pipe MoviePy error: FFMPEG 在写入文件 temp-audio.m4a 时遇到以下错误: temp-audio.m4a: Permission denied 音频导出失败,可能是因为您指定的比特率是两个高或过低用于视频编解码器。

4

2 回答 2

0

问题是我在 AWS Lambda 实例上运行此脚本。/tmp我的所有文件都应该按照 AWS Lambda 文档的说明进行写入。一旦我所有的临时文件都被写入指定的目录;FFMpeg 不再引发异常。

于 2016-03-12T17:27:16.753 回答
0

举个例子,这看起来像:

vid_path = "/tmp/outputvideofile.mp4"
audio_path = "/tmp/myaudiofile.mp3"
finalclip.write_videofile(vid_path,fps=15, temp_audiofile=audio_path, remove_temp=True)
于 2016-04-13T17:40:17.463 回答