Moviepy无法读取文件的持续时间

时间:2017-02-08 19:01:51

标签: python video moviepy

我一直在使用Moviepy将几个较短的视频文件合并为一小时的文件。一些小文件被“破坏”,它们包含视频但未正确完成(即它们与VLC一起播放,但没有持续时间,您无法在视频中跳过)。

当我尝试使用VideoFileClip(file)函数创建剪辑时,我注意到了这个问题。出现的错误是:

  

MoviePy错误:无法读取文件的持续时间

有没有办法继续从这个视频文件中读取“好”的帧,然后将它们添加到更长的视频中?

更新

为了澄清,我的问题特别是以下函数调用:

clip = mp.VideoFileClip("/home/test/"+file)

ffmpeg_reader.py 中检查文件的持续时间时,单步执行代码似乎是一个问题,它会在视频文件中查找duration参数。但是,由于文件从未正确完成录制,因此缺少此信息。我对视频文件的结构方式不太熟悉,所以我不确定如何从这里开始。

3 个答案:

答案 0 :(得分:-1)

CLIP1 = VideoFileClip( '路径')

C = clip1.duration

print(c)

答案 1 :(得分:-1)

你是对的。当文件中缺少视频持续时间信息时,通常会出现此问题。 以下是该问题的主题:GitHub moviepy issue 116

一位用户提出了使用MP4Box转换视频的解决方案:RASPIVID tutorial

对我有用的最终解决方案涉及指定ImageMagick的二进制文件的路径,如本文中提到的WDBell。

我在环境变量中设置了正确的路径,但直到我在config_defaults.py中特定地定义它才开始工作: Solution from GitHub discussion

答案 2 :(得分:-1)

我以一种更简单的方式解决了该问题,借助VLC,我将该文件转换为格式MPEG4 xxx电视/设备, 现在您可以将新文件与python一起使用了

xxx = 720p或 xxx = 1080p

一切取决于您对输出格式的选择

我已经在博客上回答了这个问题:https://github.com/Zulko/moviepy/issues/116