使用moviepy和ffmpeg写入视频文件时出错

Div*_*rma 4 python ffmpeg moviepy

我第一次使用 moviepy 库。我有一个大约 7 小时长的视频片段,我想将其剪辑成小片段。我有一个开始和结束时间的列表。

video = VideoFileClip("videoFile.mp4")
clips = []
for cut in cuts:
   clip = video.subclip(cut[0], cut[1])
   clips.append(clip)
clips
clip = video.subclip("7:32:18", "7:38:38")
clips.append(clip)
for clip, title in zip(clips, title_list):
 clip.write_videofile(title + '.mp4', threads=8, fps=24, audio=True, codec='libx264',preset=compression)
video.close()
Run Code Online (Sandbox Code Playgroud)

Clips[] 包含剪辑的开始和结束时间。我也有一个从 YouTube 上抓取的标题列表。我没有在这里列出这两个列表,但一个小例子可能是:

cuts = [('0:00', '2:26'),
 ('2:26', '5:00'),
 ('5:00', '7:15'),
 ('7:15', '10:57'),
 ('10:57', '18:00'),
 ('18:00', '18:22'),
 ('18:22', '19:57'),
 ('19:57', '20:37'),
 ('20:37', '28:27'),
 ('28:27', '40:32'),
 ('40:32', '49:57'),...
title_list = ['Introduction (What is Todoist?), tech stack talk', 'Showing the final application (with dark mode!)', 'Installing create react app', "Clearing out what we don't need from create react app", "Let's get building our components!", 'Installing packages using Yarn', 'Building the Header component', 'Building the Content component',...
Run Code Online (Sandbox Code Playgroud)
OSError: [Errno 32] Broken pipe

MoviePy error: FFMPEG encountered the following error while writing file Introduction(WhatisTodoist?),techstacktalkTEMP_MPY_wvf_snd.mp3:

b'Introduction(WhatisTodoist?),techstacktalkTEMP_MPY_wvf_snd.mp3: Invalid argument\r\n'

In case it helps, make sure you are using a recent version of FFMPEG (the versions in the Ubuntu/Debian repos are deprecated).
Run Code Online (Sandbox Code Playgroud)

以上是运行 write_videofile() 后出现的错误。我查看了 github 上的文档和问题,我也尝试通过 pip 更新 ffmpeg。我不知道为什么它无法写入音频文件。

Mar*_*eda 5

原因可能是文件名中的特殊字符。至少在 Windows 上你不能有“?” 在文件名中。您可以尝试其他名称来检查是否是这个问题。