<h2>尝试穿线</h2>
<p>我尝试了<a href="https://stackoverflow.com/users/11162165/nathancy">nathancy</a>的<a href="https://stackoverflow.com/questions/55828451/video-streaming-from-ip-camera-in-python-using-opencv-cv2-videocapture">this</a>解决方案,但收效甚微。在</p>
<p>它包括:</p>
<ul>
<li>从源创建用于图像捕获的单独线程</li>
<li>只将主线程用于显示。在</li>
</ul>
<h2>代码:</h2>
<pre class="lang-py prettyprint-override"><code>import cv2
from threading import Thread
class ThreadedCamera(object):
def __init__(self, source = 0):
self.capture = cv2.VideoCapture(source)
self.thread = Thread(target = self.update, args = ())
self.thread.daemon = True
self.thread.start()
self.status = False
self.frame = None
def update(self):
while True:
if self.capture.isOpened():
(self.status, self.frame) = self.capture.read()
def grab_frame(self):
if self.status:
return self.frame
return None
</code></pre>
^{pr2}$
<h2>紧张,但实时结果</h2>
<p><img src="https://media.giphy.com/media/TFCbK339j9Iqs89z3K/giphy.gif" alt=""/>。在</p>
<p>流媒体是有效的。它保持实时性。然而,就好像所有的帧都聚集在一起,突然出现在视频中。我想找个人解释一下。在</p>
<h2>有待改进的地方</h2>
<p>实时流可以在这里找到。在</p>
<p><a href="https://www.earthcam.com/usa/newyork/timessquare/?cam=tsstreet" rel="nofollow noreferrer">https://www.earthcam.com/usa/newyork/timessquare/?cam=tsstreet</a></p>
<p>此站点是使用python的<code>streamlink</code>流刮板为<code>m3u8</code>而创建的。在</p>
<pre class="lang-py prettyprint-override"><code>
import streamlink
streams = streamlink.streams("https://www.earthcam.com/usa/newyork/timessquare/?cam=tsstreet")
print(streams)
</code></pre>
<p>哪些是:</p>
<pre><code>OrderedDict([
('720p',<HLSStream('https://videos3.earthcam.com/fecnetwork/9974.flv/chunklist_w202109066.m3u8')>),
('live', <RTMPStream({'rtmp': 'rtmp://videos3.earthcam.com/fecnetwork/', 'playpath': '9974.flv', 'pageUrl': 'https://www.earthcam.com/usa/newyork/timessquare/?cam=tsstreet','swfUrl': 'http://static.earthcam.com/swf/streaming/stream_viewer_v3.swf', 'live': 'true'}, redirect=False>),
('worst', <HLSStream('https://videos3.earthcam.com/fecnetwork/9974.flv/chunklist_w202109066.m3u8')>),
('best', <RTMPStream({'rtmp': 'rtmp://videos3.earthcam.com/fecnetwork/', 'playpath': '9974.flv', 'pageUrl': 'https://www.earthcam.com/usa/newyork/timessquare/?cam=tsstreet', 'swfUrl': 'http://static.earthcam.com/swf/streaming/stream_viewer_v3.swf', 'live': 'true'}, redirect=False>)
])
</code></pre>
<p>流被读错的可能性。在</p>