我正在尝试从 Trafficview.org 中抓取视频帧,但似乎无法弄清楚如何解码数据。
我已经监控了通过 Chrome 上的网络选项卡传入的消息,还深入研究了下面代码的输出,并且相当确定数据正在以碎片 MP4 的形式流入。以下是前 100 个左右字节/消息:
b'\xfa\x00\x02\x86\xf1B\xc0\x1e\x00\x00\x00\x18ftypiso5\x00\x00\x02\x00iso6mp41\x00\x00\x02jmoov\x00\x00\x00lmvhd\x00\x00\x00 \x00\xdb\x7f\xeb\xb2\xdb\x7f\xeb\xb2\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
在整个输出中,有很多 moof 和 mdat 对。假设我让这段代码运行 30 秒,如何将这个原始字节字符串转换为 mp4 文件?
import json
from websocket import create_connection
url = 'wss://cctv.trafficview.org:8420/DDOT_CAPTOP_13.vod?progressive'
headers = json.dumps({
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.9',
'Cache-Control': 'no-cache',
'Connection': 'Upgrade',
'Host': 'cctv.trafficview.org:8420',
'Origin': 'https://trafficview.org',
'Pragma': 'no-cache',
'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits',
'Sec-WebSocket-Key': 'FzWbrsoHFsJWzvWGJ04ffw==',
'Sec-WebSocket-Version': '13',
'Upgrade': 'websocket',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
})
ws = create_connection(url, headers=headers)
# Then send a message through the tunnel
ws.send('ping')
# Here you will view the message return from the tunnel
flag = 3000
output = b''
while flag > 0:
output += ws.recv()
flag -= 1
慕妹3242003
相关分类