2017-02-10 40 views
1

即时通讯尝试在ubuntu上使用Opencv3(安装在conda env中)在我的python脚本中读取mp4文件。但得到以下消息:Anaconda和Opencv不打开mp4

Unable to stop the stream: Inappropriate ioctl for device 

我发现Opencv不支持开箱即用的mp4。是否有可能在我的机器上安装额外的库以使视频工作而不重建Opencv?一些配置可能?

这里谈到的代码:

def workOnVideoFile(path) : 
    print('Reading the video from ' + path) 
    cap = cv2.VideoCapture(path) 

    print('Is video opened? ' + str(cap.isOpened())) 
    while(cap.isOpened()): 

     ret, frame = cap.read() 
     print('Frame has been read ' + str(ret)) 
     workOnFrame(frame) 
     if cv2.waitKey(1) & 0xFF == ord('q'): 
      break 

    print('Releasing the video' + str(cap)) 
    cap.release() 


#img = cv2.imread('car.jpg') 



if __name__ == "__main__": 
    if (os.path.isfile(videoFile)) : 
     workOnVideoFile(videoFile) 
    else : 
     print('File ' + videoFile + ' is not found') 


cv2.destroyAllWindows() 
+0

它是否像任何mp4文件中描述的那样工作?你能否分享一个小的mp4文件,为什么它会失败。 –

+0

任何文件,但由于@Mick提到的专利,Ubuntu有视频问题。 – Anton

回答

1

我认为它可能是Ubuntu的这是不支持MP4开箱 - 这是因为MP4有一些专利问题。

通常的做法是在一个标准的方式添加支持MP4到Ubuntu的安装是这样的:

命令和apt-get安装Ubuntu的限制,演员

这个名字也许看起来有点奇怪,但它或多或少标准做法 - 请参阅帮助文章在这里向您保证:

许多想要播放视频的人只需安装VideoLan即可完成所有这些操作,因此他们无需执行上述步骤。

+0

我做了stepabove它没有帮助 – Anton

+0

基本上这是我的问题,要安装和/或如何配置,以使opencv承认变化。通过may可以在Mac上正常工作 – Anton