搭建dash直播, ffmpeg開啟dash demutex

搭建dash直播

搭建dash直播和hls直播差不多, 都是用nginxnginx-rtmp-module, 下面提供路徑.

編譯安裝

nginx有一些依賴, 所以configure之前需要先確認下這些依賴是否已經(jīng)安裝

// openssl
sudo apt-get install openssl
sudo apt-get libssl-dev

// prce
sudo apt-get install libpcre3 
sudo apt-get install libpcre3-dev
// zlib
sudo apt-get install zlib1g-dev

開始編譯

./configure --prefix=安裝路徑 ----add-module=rtmp模塊路徑
make 
make install

修改nginx.conf配置


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        
        application dash {
            live on;
            dash on;
            dash_path /home/movie/rtmp/dash;
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /home/project/nginx-rtmp-module/;
        }

       location /dash {
            # Serve DASH fragments
            root /home/movie/rtmp/;
            add_header Cache-Control no-cache;
        }

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

啟動測試

找一個推流工具, 我用的是ffmpeg直接讀取mp4文件推流給nginx

./ffmpeg -re -i 視頻文件路徑 -vcodec copy -acodec copy -f flv rtmp://localhost/dash/test

可以在瀏覽器通過http://localhost/stat查看是否有推流

截圖_2018-07-28_21-30-25.png

然后我們找一個支持dash的播放器測試下能不能播放, VLC(3.0.2版本)是支持dash的.
截圖_2018-07-28_21-36-01.png

截圖_2018-07-28_21-36-15.png

注意請求路徑, 如果請求不到,報404, 可能通過查看nginx安裝目錄下的log文件去定位錯誤

到這里, dash直播就搭建完了, 下面記錄一下如何ffmpeg支持dash協(xié)議

ffmpeg開啟dash demutex

ffmpeg是從3.4.2版本開始支持dash的, 老版本不行.

安裝依賴

ffmpeg是通過libxml2去解析mpd文件的, 所以在configure之前需要先安裝libxml2

sudo apt-get install libxml2 
sudo apt-get install libxml2-dev

安裝之后, 在configure的時候, 加上--enable-libxml2,在configure完成之后,查看config.h文件, 檢查CONFIG_DASH_DEMUXER宏是否為1.
然后make & make install.
最后用編譯完成的ffplay測試下上面搭建的dash直播

截圖_2018-07-28_21-59-02.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子塘淑,更是在濱河造成了極大的恐慌适袜,老刑警劉巖簸淀,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孽锥,死亡現(xiàn)場離奇詭異逮光,居然都是意外死亡卒落,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門嫩与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寝姿,“玉大人,你說我怎么就攤上這事划滋』嵊停” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵古毛,是天一觀的道長翻翩。 經(jīng)常有香客問我都许,道長,這世上最難降的妖魔是什么嫂冻? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任胶征,我火速辦了婚禮,結(jié)果婚禮上桨仿,老公的妹妹穿的比我還像新娘睛低。我一直安慰自己,他們只是感情好服傍,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布钱雷。 她就那樣靜靜地躺著,像睡著了一般吹零。 火紅的嫁衣襯著肌膚如雪罩抗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天灿椅,我揣著相機與錄音套蒂,去河邊找鬼。 笑死茫蛹,一個胖子當(dāng)著我的面吹牛操刀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婴洼,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼骨坑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柬采?” 一聲冷哼從身側(cè)響起欢唾,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎警没,沒想到半個月后匈辱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體振湾,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡杀迹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了押搪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片树酪。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖大州,靈堂內(nèi)的尸體忽然破棺而出续语,到底是詐尸還是另有隱情,我是刑警寧澤厦画,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布疮茄,位于F島的核電站滥朱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏力试。R本人自食惡果不足惜徙邻,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畸裳。 院中可真熱鬧缰犁,春花似錦、人聲如沸怖糊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伍伤。三九已至并徘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嚷缭,已是汗流浹背饮亏。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留阅爽,地道東北人路幸。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像付翁,于是被迫代替她去往敵國和親简肴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 近年互聯(lián)網(wǎng)直播業(yè)務(wù)非嘲俨啵火熱砰识。我也研究了下,發(fā)現(xiàn)nginx上配置視頻直播點播也很容易實現(xiàn)佣渴,特分享一下辫狼。一、ubunt...
    美虎轆轆閱讀 3,022評論 0 2
  • 近年互聯(lián)網(wǎng)直播業(yè)務(wù)非承寥螅火熱膨处。我也研究了下,發(fā)現(xiàn)nginx上配置視頻直播點播也很容易實現(xiàn)砂竖,特分享一下真椿。 一、ubun...
    dagailv閱讀 1,308評論 0 2
  • 下列說明完全摘自網(wǎng)絡(luò)乎澄,后期會整理后修改突硝。 RTMP是Real Time Messaging Protocol(實時...
    muction閱讀 4,039評論 0 6
  • 5月21日 1.感恩身體如約而至地醒來,忙碌為忙碌的事情置济。感恩身體昨天工作18個多小時解恰,一直保持高能量狀態(tài)锋八,在多種...
    eagle_d319閱讀 168評論 0 0
  • 弱肉強食不僅僅會出現(xiàn)在動物世界里,我們現(xiàn)實社會也一樣护盈,當(dāng)你足夠強大的時候查库,就可以選擇你的獵物,但是如果你很弱小黄琼,那...
    嘉佳寶兒929閱讀 171評論 0 0