windows下nginx配合ffmpeg推送視頻流


1. 軟件准備:

  nginx with rtmp_module(可通過nginx源碼編譯安裝nginx_rtmp_module模塊,也可直接使用已編譯好的exe:https://github.com/illuspas/nginx-rtmp-win32

  ffmpeg:http://ffmpeg.org/

2. 設置nginx配置文件:nginx.conf,其初始設置為:

worker_processes  1;

error_log  logs/error.log info;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;

        application live {
            live on;    
        }
		
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}

http {
    server {
        listen      8080;
		
        location / {
            root html;
        }
		
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root html;
        }
		
        location /hls {  
            #server hls fragments  
            types{  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            alias temp/hls;  
            expires -1;  
        }  
    }
}

其默認監聽1935端口,在cmd中運行nginx.exe即可啟動服務

3. ffmpeg推送視頻流

  3.1. 推送視頻文件流

ffmpeg.exe -re -i your_video.mp4 -f flv rtmp://127.0.0.1:1935/live

  -re參數會降低ffmpeg對視頻文件的推送速率,避免ffmpeg讀取文件過快,-i表示輸入源,后跟你的視頻文件地址,-f強制限制格式為flv,最后添加推送流的服務地址,即nginx中配置的rtmp服務地址

  視頻文件有個特點,ffmpeg推送完整個文件后,程序會自動退出,建議設置循環推流:

ffmpeg.exe -re -stream_loop -1 -i your_video.mp4 -f flv rtmp://127.0.0.1:1935/live

  但這樣,播放器會一直播放視頻,不會停止

 

  3.2. 推送實時視頻流

  以電腦攝像頭為例,通過ffmpeg捕獲設備實時視頻,推送到ngixn的rtmp服務即可

ffmpeg.exe -f dshow -i video="Integrated Webcam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live

  -f dshow表示從windows DirectShow input device設備采集多媒體流,-i表示輸入,video表示視頻采集源,設為電腦的攝像頭名稱(可在設備管理器中查看),-vcodec 調用編解碼器,設置編碼格式,此處設置為libx264,輸出的視頻流解碼格式為H264,其他參數暫時也不懂,最后推送到rtmp服務地址即可

  使用VLC,輸入網絡串流地址(即rtmp服務地址,即可播放)

 

 

  


免責聲明!

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



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