2016-05-31 14 views
5

This link senin piton kabuk içine bir kameradan veri akışı için Python'un OpenCV kütüphanesi, cv2 nasıl kullanılacağına ilişkin derli toplu bir küçük örnek vardır. Bazı denemeler yapmak istiyorum ve şu YouTube video akışını kullanmak istiyorum: https://www.youtube.com/watch?v=oCUqsPLvYBQ. aşağıdaki gibiVideoyu https: // (ör. YouTube) OpenCV ile python'a yayınlamak mümkün mü?

Ben örnek adapte denedim:

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 

bana piton içine bu video beslemesini akışı sağlayacak basit bir düzeltme var mı: hata üretir

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 

cv2 aracılığıyla kabuk? Aynı amacı yerine getirecek başka kütüphaneler varsa, cv2'a kesinlikle taahhüt edilmez.

+2

Ben 'Böyle VideoCapture' açmak mümkün olduğunu sanmıyorum. [Videocapture] ile ilgili openCV belgelerinde (http://docs.opencv.org/3.1.0/d8/dfe/classcv_1_1VideoCapture.html#a949d90b766ba42a6a93fe23a67785951) argümanın bir dosya olması gerektiği yazılıdır. Ancak [youtube-dl] 'yi (https://rg3.github.io/youtube-dl/) arasında kullanabilirsiniz. – incBrain

+0

@incBrain: Bu umut verici görünüyor, teşekkürler. ASAP kontrol edecek ve size bildirir. – Aaron

+1

@incBrain: "youtube-dl" gitmenin yoluydu. Bahşiş için teşekkürler! – Aaron

cevap

2

@ incBrain'in youtube videosunu yerel mp4'e indirme önerisi buraya gitmenin yoluydu. çıkış X11 yönlendirme yoluyla yerel bilgisayarıma yöneltilen ile Burada, EC2 bir uzak sunucu ortamını kurmak için kullanılan adımlar vardı.

  • ssh -X -i "<ssh_key.pem>" [email protected]<IP-address>.compute-1.amazonaws.com (-X seçenek burada önemli ektir Not Kullandığımız ne , sudo pip kötü (biliyorum) yerel bir X11 müşteriye
  • sudo pip install --upgrade youtube_dl EC-2 sunucudan çıktı geçmesine Ben yerel dosyaya sitesi talimatları)
  • İndir youtube video suçlarlar. youtube-dl https://www.youtube.com/watch?v=VUjF1fRw9sA -o motocross.mp4
  • python demo_cv.py

X11 yönlendirmesi yanıltıcı olabilir. Herhangi bir asistana girerseniz, this post da size yardımcı olabilir.

0

o pafy (https://pypi.python.org/pypi/pafy) ile mümkündür

import cv2, pafy 

url = "https://www.youtube.com/watch?v=aKX8uaoy9c8" 
videoPafy = pafy.new(url) 
best = videoPafy.getbest(preftype="webm") 

video=cv2.VideoCapture(best.url) 
+0

Bu işe yaramıyor (en azından OpenCV 3.4.0 ile). video.read() her zaman döner (Yanlış, Hiçbiri). URL geçerli, ör. wget videoyu indirirdi. – burny

İlgili konular