1
我试图从我的树莓pi使用烧瓶API在Python中流视频。这样我可以在我的工作站上处理各个帧。就数据传输而言,它工作得很好。然而,在客户端,读取帧的过程引入了滞后1-3秒,这在实时应用中是不希望的。我可以在我的网页浏览器中查看视频播放,没有任何延迟,这证明我的覆盆子pi和网络是无辜的。问题在于的方法从字节流中读取单个帧。有关消除这种应用程序中的延迟的任何想法。以下是我的客户端应用程序代码。完整的源代码的示例应用程序可以在这里找到:https://github.com/shehzi-khan/video-streaming加速使用摄像头或IP摄像头联网设备的视频播放
import cv2
import urllib
import numpy as np
stream = urllib.urlopen('http://192.168.100.128:5000/video_feed')
bytes = ''
while True:
bytes += stream.read(1024)
a = bytes.find(b'\xff\xd8')
b = bytes.find(b'\xff\xd9')
if a != -1 and b != -1:
jpg = bytes[a:b+2]
bytes = bytes[b+2:]
img = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
cv2.imshow('Video', img)
if cv2.waitKey(1) == 27:
exit(0)
让我试试这个。 –
嘿,我已经转移到项目的其他部分,现在我的对象检测和电机驱动部分完成了我回到视频流部分。那么我试图增加或减少缓冲区大小,但没有任何工作。在另一侧视频流从浏览器平稳播放。 –