我试图在我的python脚本中使用Opencv3(安装在conda
env中)在ubuntu上读取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 :(得分:1)
我认为可能ubuntu不支持开箱即用的MP4 - 这是因为MP4有一些专利问题。
通常的方法是以标准的方式为这样的Ubuntu安装添加对MP4的支持:
sudo apt-get install ubuntu-restricted-extras
这个名字可能看起来有些奇怪,但它的标准做法或多或少 - 请参阅此处的帮助文章以向您保证:
许多想要播放视频的人只需安装VideoLan即可完成所有这些工作,因此他们无需执行上述步骤。