合肥程序員群:49313181。 合肥實名程序員群:128131462 (不願透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com
綜合:有這樣需求,將攝像頭視屏發布出去,並且需要在web網頁上通過Flash播放器播放。首先Flash被我所知道的所有瀏覽器所支持。如果是Activex控件。還需要被用戶額外安裝,而且一不小心還會出問題。但是Flash player默認是被安裝的。而且是比較穩定的。雖然開源的VLC播放器所提供的OCX相當不錯。可是個人還是覺得沒有Flash直接播放方便。flash支持的視頻格式有限,像mp4等格式都不會被flash player直接支持。所以就有了選擇RTMP協議的視頻流。支持點播和時間查詢播放。那么下面我們就在Windows下搭建一個RTMP視頻流發布程序。我選擇的都是開源代碼編譯出的程序去搭建。免費,可定制。:)ffmpeg+ CRtmpserver
一.准備:下載ffmpeg. 這個支持很多很多的格式視頻http://ffmpeg.org/download.html。進入下載,可以下載源碼和Windows 平台下的Release版。然后下載crtmpserver.http://www.rtmpd.com/ 這是官網。,但是官網不提供Windows下的編譯好的程序。http://www.rtmpd.com/resources/里面能看到源碼下載地址,
需要我們自己下載源代碼編譯。可以看到是SVN進行管理的。進入Wiki。可以看到詳細的說明文檔。它是在linux下編寫完成(很多好的開源代碼都是在linux下編寫完成,所以我們還是非常有必要學習學習linux)。我們只能搭建交叉編譯環境,編譯出Windows下可執行程序。我喜歡Ubuntu下編譯。交叉編譯環境如何搭建。直接百度。很多資料可以參考。這樣兩個重要的開源工具下載准備完成。當然我們需要一個好的flash播放器。當然流媒體發布服務器開源工具還有比較好的。比如Red5.這是java寫的,感興趣的可以進去看看。
二.開始發布視頻
首先我們可以直接將視頻文件發布到media目錄中
可以看到media目錄中我放入了幾個視頻文件:
這樣我們就可以以rtmp流的形式訪問視頻了;首先得啟動服務。直接用批處理啟動。run.bat.
這樣就實現了rtmp靜態視頻發布rtmp流給flash player播放。注意我們這里視頻放在media文件夾中這個是由crtmpserver的配置文件中配置的。它的配置文件是lua腳本寫的。
我的就是配置在media中的。
現在我通過ffmpeg將流發布給crtmpserver對外發布。
我寫了一個批處理直接運行。批處理內容是:
我將2.mp4視頻發布成編碼成H264以rtmp格式發布出去。
這樣這個2.mp4就被發布出去了。
后記:
雖然都是以視頻文件發布rtmp流發布的。但是這只是簡單的搭建實例。我們可以將他用到很多地方。我后面打算通過它直接將攝像頭的視頻流編碼成H264發布出去rtmp流供flash player播放。然后遠程查看。同時我打算利用Drectshow操作電腦攝像頭實現視頻即時一對一或者一對多聊天。並且存儲服務器視頻文件供歷史聊天視頻查詢。這也是我選擇開源代碼搭建的原因之一