多路音視頻上傳觀看議案

tags:    時間:2014-03-23 13:52:11
多路音視頻上傳觀看方案

原文出自:http://blog.csdn.net/xiaoliouc/article/details/8600244

 

過年後繼續工作,在去年已經實現h263、h264、amr硬編碼rtp打包發送到伺服器,伺服器是自己用java語言簡單實現的rtsp server,VLC通過rtsp請求伺服器得到實時音視頻流。代碼參考spydroid實現,缺點是只能一路上傳,一路播放,擴展性很差。

         現在考慮多部android手機錄製上傳,客戶端多路觀看。用以前寫的代碼很多技術難點不好實現,於是決定改變思路,採用rtmp協議來實現手機直播系統。

流程:

        1、android錄製編碼,打算移植ffmpeg編碼庫到android上,通過編譯ffmpeg得到so文件,jni調用來實現音視頻編碼。暫時視頻編碼定為h264,採用ffmpeg的x264庫,音頻編碼定為aac,採用ffmpeg的faac庫。

        2、把得到的h264,aac通過rtmp協議規範打包封裝,發布rtmp流到流媒體伺服器上。android客戶端連接流媒體伺服器暫時用破解的juv-rtmp-client測試,以後用ffmpeg的librtmp庫或者rtmpdump庫。

        3、流媒體伺服器,暫定為Red5,免費開源,java語言開發,使用自帶的OflaDemo測試。流媒體伺服器實現直播和點播功能,直播就是所謂的live模式了,點播即為record模式。且直播流會以flv文件保存到伺服器端,方便以後查看歷史視頻。以後可以用nginx+red5模式,red5的併發量太小,用nginx反向代理,提高系統併發量。

        4、web伺服器,暫定為tomcat,與Red5結合,部署web項目,項目採用java中主流的S2SH框架。因為是多路音視頻上傳,實現用戶管理,許可權控制等功能。

        5、資料庫伺服器,暫定為mysql,保存用戶信息、視頻信息等。以後考慮mysql cluster集群模式

        6、接收端,瀏覽器端採用jw player播放flash視頻,android通過嵌入flash player播放,而iphone採用ffplayer播放

        大概流程是這樣,慢慢做吧。

推薦閱讀文章

Bookmark the permalink ,來源:互聯網