1. 程式人生 > >live555實現Rtp碼流讀到一幀資料怎麼傳遞客戶端

live555實現Rtp碼流讀到一幀資料怎麼傳遞客戶端

1)實現一個sink讀取Live555的一幀資料後,測試發現有的碼流sps,pps,I幀是單獨的資料包傳遞過來的,這樣的話,在sink裡面需要對這些資料進行組幀,live555有沒有功能可以自己將這些資料包組成一幀資料,並且自動新增00 00 00 01這樣的頭資訊呢,如果有,就不要自己去組幀了,組幀還多一次拷貝;

2)獲取到幀Buff後,有2種方法可以將Buff返回給客戶端進行解碼顯示;一種方法是通過回撥的方式將Buff傳遞給客戶端;另外一種方式是客戶端主動讀Buff;因為live555主要是通過回撥實現的,所以我們採用回撥的方式傳遞出去比較自然;

3)在對live555碼流獲取封裝時,需要使用一個緩衝區佇列儲存影象幀;

4)客戶端調FFMPEG進行解碼和呼叫ddraw進行顯示;

5)所有的FFMPEG編解碼和Live555都在原來的基礎上在進行一次封裝;

6)需要考慮不能讓I幀的Buff被覆蓋,不然後面的幀解碼會有馬賽克的;

7)斷線重連通過客戶端往裝置端定時傳送opinion來判斷是否網路斷了,斷了就釋放客戶端的資源,然後在重新建立Rtsp連線,重連;