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