python、vlc、rtsp。截图不行

问题描述 投票:0回答:1

我运行这个:

import vlc
import time

player = vlc.MediaPlayer('rtsp://NNNNNNNNNNNNNN')
player.play() 

period = 2  # Every 2 seconds I got new screenshot from camera

while True:
    time.sleep(period)
    player.video_take_snapshot(0, 'screenshot-tmp.png', 0, 0)

一旦我删除

player.play()
- 它就不再起作用了。没有截图。

什么问题?

我不需要打开VLC播放器,只需要截取屏幕并使用它们

python vlc rtsp
1个回答
0
投票

通过从播放器对象调用播放,流开始。 video_take_snapshot 方法需要媒体播放器实例才能拍摄屏幕截图[1]。

使用 OpenCV 等其他第三方库,您可以使用播放器的 VideoCapture 等功能,而无需播放器启动:https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html

import vlc
import cv2

url = 'rtsp://NNNNNNNNNNNNNN'

instance = vlc.Instance()

media = instance.media_new(url)

player = vlc.MediaPlayer(media)

cap = cv2.VideoCapture(player) 

period = 2

while True:
  ret, frame = cap.read()
  if ret:
    cv2.imwrite('screenshot-tmp.png', frame)
    print("Screenshot captured!")  
  else:
    print("Error capturing frame")
  time.sleep(period)

[1] https://www.olivieraubert.net/vlc/python-ctypes/doc/index.html

© www.soinside.com 2019 - 2024. All rights reserved.