實現簡單網頁rtmp直播:nginx+ckplayer+linux


一、安裝nginx

安裝帶有rtmp模塊的nginx服務器(其它支持rtmp協議的流媒體服務器像easydarwin、srs等+Apache等web服務器也可以),此處使用nginx服務器,簡單方便。

安裝請參考我的CSDN:nginx安裝,經過多次安裝實踐,此方法適用於rhel和centos系統,ubuntu可能會不適用,如果安裝過程中出現大量錯誤,請另行百度安裝方法。

不一定非要使用雲服務器,可以自己使用vmware虛擬一個linux系統,就可以在同一台電腦上實現整套流程,不過是局域網,和廣域網可能還有部分差異,但是大同小異,流程都是差不多的,簡單使用的話,用vmware的方式就夠了。注意需要關閉防火牆或者通行相關端口。

二、推流

推流在此我使用的是ffmpeg,ffmpeg雖然是一個開源軟件,但是功能很多也很強大(一般開源軟件都不注重效率,無法商用,只是讓你入門學習使用,但也有高效的開源軟件,像是偉大的linux,流媒體服務器srs等等),此處用它綽綽有余。ffmpeg官網有不用自己編譯的版本,也可以自己動手編譯下,鍛煉下自己動手的能力,此處就不放windows版本的了,之前自己動手編譯過一個linux版本的,不想自己動手的可以去這里CSND下載

windows版本推流命令:

while(1) { .\ffmpeg.exe -re -i F:\ChengTongPan\MangZhong.mp4 -vcodec copy -acodec copy -f flv rtmp://x.x.x.x:xxxx/live/room }

linux版本推流命令:

while true; do ./ffmpeg -re -i ./MangZhong.mp4 -vcodec copy -acodec copy -f flv rtmp://x.x.x.x:xxxx/live/room; done

ffmpeg自帶的循環推流在這里不能使用,只能使用一個簡陋的循環推流。

三、選擇播放方式

這里使用ckplayer的方式,此方式會依賴flash,過后我會嘗試尋找不依賴flash的方式,據了解,html5已經可以不依賴falsh實現rtmp協議視頻播放,待以后探索。。

編輯index.html:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>ckplayer</title>
        
        <style type="text/css">
            body {
                margin: 0;
                padding: 0px;
                font-family: "Microsoft YaHei", YaHei, "微軟雅黑", SimHei, "黑體";
                font-size: 18px;
            }
            p{
                padding-left: 2em;
            }
        </style>

    </head>

    <body>
        <div id="video" style="width: 100%; height: 400px;max-width: 600px;">
        </div>
        <script type="text/javascript" src="ckplayer/ckplayer.js" charset="UTF-8"></script>
        <script type="text/javascript">
            var videoObject = {
                container: '#video', //容器的ID或className
                variable: 'player', //播放函數名稱
                //loop: true, //播放結束是否循環播放
                autoplay: true,//是否自動播放
                poster: 'material/poster.jpg', //封面圖片
                preview: { //預覽圖片
                    file: ['material/mydream_en1800_1010_01.png', 'material/mydream_en1800_1010_02.png'],
                    scale: 2
                },
                //flashplayer:true,
                //live:true,
                //debug:true,
                //video:'rtmp://58.200.131.2:1935/livetv/hunantv' 此鏈接是網絡流,可以測試使用,可以替換為你自己的rtmp流地址
                video:'rtmp://ip+port/live/room'
            };
            var player = new ckplayer(videoObject);
        </script>
    </body>

</html>

下載ckplayer,百度一大堆,好像沒找到上傳附件的方式,此處就先不放了。。。

下載解壓ckplayer到nginx的根目錄下,應該是在/usr/local/nginx/html下面,不是在這里的自己找一下自己的根目錄在哪就好了。

四、播放測試:

找到一個帶有flash插件的瀏覽器,打開nginx下的html文件即可播放,我的是http://x.x.x.x/ckplayer,打開后如下:

 

 至此,rtmp協議的簡單直播服務就搭建完成了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM