第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將碎片 MP4 轉(zhuǎn)換為 MP4

將碎片 MP4 轉(zhuǎn)換為 MP4

呼喚遠(yuǎn)方 2023-07-27 16:19:23
我正在嘗試從 Trafficview.org 中抓取視頻幀,但似乎無(wú)法弄清楚如何解碼數(shù)據(jù)。我已經(jīng)監(jiān)控了通過(guò) Chrome 上的網(wǎng)絡(luò)選項(xiàng)卡傳入的消息,還深入研究了下面代碼的輸出,并且相當(dāng)確定數(shù)據(jù)正在以碎片 MP4 的形式流入。以下是前 100 個(gè)左右字節(jié)/消息: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'在整個(gè)輸出中,有很多 moof 和 mdat 對(duì)。假設(shè)我讓這段代碼運(yùn)行 30 秒,如何將這個(gè)原始字節(jié)字符串轉(zhuǎn)換為 mp4 文件?import jsonfrom websocket import create_connectionurl = '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 tunnelws.send('ping')# Here you will view the message return from the tunnelflag = 3000output = b''while flag > 0:? ? output += ws.recv()? ? flag -= 1
查看完整描述

1 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

ws = create_connection(url, headers=headers)

# Then send a message through the tunnel

ws.send('ping')


start = timeit.default_timer()

flag = True

output = []

while flag:

    output.append(ws.recv())

    if timeit.default_timer() - start > 90:

        flag = False


result = output[0][8:]


for msg in output[1:]:

    if msg[0] == 249:

        moofmdat = b''

        moof = b''

        continue


    if msg[0] == 252:

        vidbuf = msg[4:]


    if msg[0] == 251:

        moof += msg[4:]


    if msg[0] == 254:

        mdat = msg[4:]


    if msg[0] == 255:

        moofmdat += moof

        moofmdat += mdat

        moofmdat += vidbuf

        result += moofmdat


with open('test.mp4', 'wb') as file:

    file.write(result)

弄清楚了。MOOV 標(biāo)頭有 8 個(gè)字節(jié)的不必要信息,必須刪除。每個(gè)附加消息(除了 PBT_Begin 和 PBT_End)都有 4 個(gè)字節(jié)的玩家特定數(shù)據(jù)。只需清理每條消息并按正確的順序放置即可。然后將原始字節(jié)保存為 mp4,瞧,視頻在 vlc 中播放。


查看完整回答
反對(duì) 回復(fù) 2023-07-27
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)