关于如何使用python的OpenCV库cv2
将数据从相机流到python shell中,有一个很好的例子。我想做一些实验,并希望使用以下YouTube视频源:https://www.youtube.com/watch?v=oCUqsPLvYBQ
。
我试着把这个例子改编成如下:
import numpy as np
import cv2
cap = cv2.VideoCapture('https://www.youtube.com/watch?v=oCUqsPLvYBQ')
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
从而产生错误:
WARNING: Couldn't read movie file https://www.youtube.com/watch?v=oCUqsPLvYBQ
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/opencv20160107-29960-t5glvv/opencv-2.4.12/modules/highgui/src/window.cpp, line 261
有没有一个简单的修复方法可以让我通过cv2
将这个视频提要流到python shell中?如果有其他库可以实现相同的目的,那么也不能完全致力于cv2
。
在pafy(https://pypi.python.org/pypi/pafy)中是可能的
@incBrain建议将youtube视频下载到本地mp4,这是一个不错的选择。下面是我在EC2上设置远程服务器环境的步骤,通过X11转发将输出管道传输到本地计算机:
ssh -X -i "<ssh_key.pem>" ubuntu@<IP-address>.compute-1.amazonaws.com
(注意-X
选项是这里的一个重要附加选项。我们使用它将输出从EC-2服务器传递到本地X11客户端)sudo pip install --upgrade youtube_dl
(我知道,sudo pip
不好。我责怪现场指示)youtube-dl https://www.youtube.com/watch?v=VUjF1fRw9sA -o motocross.mp4
X11转发可能很棘手。如果你在那里遇到任何问题,this post可能对你也有帮助。
你需要安装两件东西
安装完这两个包后,您可以使用youtube url播放youtube上的流媒体视频。 请参考下面的代码
相关问题 更多 >
编程相关推荐