<p>从那以后我有了一些进步。代码如下:</p>
<pre><code>print ("Recording video...")
url='https://hddn01.skylinewebcams.com/02930601ENXS-1523680721427.ts'
r1 = requests.get(url, stream=True)
filename = "stream.avi"
num=0
if(r1.status_code == 200):
with open(filename,'wb') as f:
for chunk in r1.iter_content(chunk_size=1024):
num += 1
f.write(chunk)
if num>5000:
print('end')
break
else:
print("Received unexpected status code {}".format(r.status_code))
</code></pre>
<p>现在我可以在文件里写一些视频。我更改的是1)在open(文件名,'wb')中将'w'改为'wb'以写入二进制数据,但最重要的是2)更改了url。我在ChromeDevTools的“网络”中查看了浏览器发送的请求以获取实时流,并复制了最新的一个,它请求一些.ts文件。在</p>
<p>接下来,我了解了如何获取.ts视频文件的地址。可以这样使用m3u8模块(可由pip安装):</p>
^{pr2}$
<p>视频文件的播放列表将是这样的</p>
<pre><code>['https://hddn04.skylinewebcams.com/02930601ENXS-1523720836405.ts',
'https://hddn04.skylinewebcams.com/02930601ENXS-1523720844347.ts',
'https://hddn04.skylinewebcams.com/02930601ENXS-1523720852324.ts',
'https://hddn04.skylinewebcams.com/02930601ENXS-1523720860239.ts',
'https://hddn04.skylinewebcams.com/02930601ENXS-1523720868277.ts',
'https://hddn04.skylinewebcams.com/02930601ENXS-1523720876252.ts']
</code></pre>
<p>我可以从列表中下载每一个视频文件。在</p>
<p>剩下的唯一问题是,为了加载播放列表,我需要先在浏览器中打开网页。否则播放列表将是空的。打开网页可能会启动流式处理,这会在服务器上创建可以请求的m3u8文件。我仍然不知道如何从python初始化流媒体,而不在浏览器中打开页面。在</p>