大家好,我希望你能幫助我解決這個問題。在Android上解碼RTP流(MPEG4)
問題: 我有一個RTP流,我在我的專用網絡(WiFi)上進行組播。我想使用一些Android平板電腦來顯示流。平板電腦的數量不能受到限制,質量不應隨着客戶數量的增加而降低。這解釋了爲什麼我需要多播而不是單播。
的方法: 理論上通過創建服務器端的RTSP或HTTP流我應該能夠對影片給我的客戶。然而,我的理解是,當有太多的客戶端同時連接時,服務器會受到性能影響,這是我需要避免的。理想情況下,我希望所有客戶都只是在監聽相同的多播。這樣,客戶端數量就不會對服務器性能產生影響。 [注:IP是本地和TTL設置爲0/1所以沒有堵塞任何東西比我自己的網絡與多播數據包的危險。]
實施 爲了實現上面的方法我認爲在Android中編寫一個多播客戶端,它接收RTP數據包並將這些數據流縫合在一起。我試圖用JPEG有效載荷,它工作得很好。然而,JPEG的問題是調用來解碼每幀的代價是非常昂貴的(幾乎100ms!),這大大限制了幀速率。由於JPEG不是一個好的視頻流協議,因此網絡上的負載也很高。
我想要做的是爲視頻做什麼,我已經爲圖片做了什麼,即將來自RTP數據包的有效載荷流(例如MPEG4)拼接在一起並將其饋送到「某物」。最初我以爲VideoView可以處理原始輸入流,但我錯了,VV似乎只能使用rtsp或http url(正確?)。
解決方案? 現在,我有什麼選擇?我想避免從原始RTP流設置RTSP服務器,並出於上述原因爲所有平板電腦提供服務。我查了兩天,檢查了在網上和網上提出的所有解決方案,但似乎沒有什麼適用於我的問題(在大多數情況下,RTSP url或單播是解決方案,但我認爲我不能使用它),所以我認爲是時候問這個問題了。
任何幫助非常感謝!
歡呼
非常感謝,我會給它更多的想法 – Lele 2012-05-25 12:44:29