我在讀一本動態地生成的M3U8的HLS播放列表從FFmpeg的Outputing HLS M3U8 TS段PHP-FPM Nginx的
基本文件看起來像
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:3
#EXTINF:11.000000,
2_3.ts
#EXTINF:8.000000,
2_4.ts
#EXTINF:11.000000,
2_5.ts
#EXTINF:11.000000,
2_6.ts
#EXTINF:8.000000,
2_7.ts
#EXTINF:11.000000,
2_8.ts
我試圖找到一種方式來限制連接到單個連接。 我有一個叫做連接表:它保存流ID +用戶ID + DATE_START & DATE_END &狀態
一旦用戶開始看它添加新的數據流:實例
(StreamID : (2) , userID : (3) , Date_Start : Now() , Date_end : Null , status : ON)
一旦他關閉連接我想和現在()&狀態爲OFF
環境公司更新DATE_END: Nginx的,PHP-FPM & FFmpeg的
我使用the register_shutdown_function('shutdown')
到然而,問題是一旦播放列表播放給M3U8包含6段執行關機多次朵,每幾秒鐘執行關機多次寫一遍,最後更新
(更新了塊列表),而我沒有關閉連接。
我正在尋找一種方法來處理該播放列表作爲一個連接被依然古色古香,所以當客戶端中止連接,而不是同時播放列表被重新加載
問候
Salut aergistral,實際上我保持用戶ID保持用戶統計時結束和雙連接,我不明白你的意思是什麼:「如果一個播放列表不重新加載T時間認爲這是一個新的視圖會話。」我無法找到一個好辦法來解決這個 – Krasic
這裏是一個輸出的例子(Type + PID + Time + Segment),http://pastebin.com/9mkuNjDz – Krasic
如果你有多個同時請求相同播放列表的用戶時間你怎麼知道哪一個是哪個?您需要一種方法來跟蹤每個請求/用戶。如果播放列表停止以大於「TARGETDURATION」的時間方式被請求,則可以假定會話結束,並且用最後一次請求的時間更新Date_end。 – aergistal