windows10下利用nginx和ffmpeg搭建视频流服务器,将电脑摄像头捕捉影像制作成视频流

功能实现:
将电脑摄像头捕捉到的视频制作成视频流,(主要用于测试)

准备ffmpeg
nginx+ nginx-rtmp-module

下载安装:
参考: https://blog.csdn.net/xiaoxueyaoxuexi/article/details/110451006
直接点击https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
设置环境变量:
用户变量就行: 在这里插入图片描述
然后在cmd 窗口命令下 输入
ffmpeg –version 出现下图即可
在这里插入图片描述

查看摄像头名称: ffmpeg -list_devices true -f dshow -i dummy
红框里面就是摄像头名称
在这里插入图片描述
打开摄像头可以使用 ffplay -f dshow -i video="HP HD Camera"

到现在 我们这个功能完成了一半
下面是nginx 就是参考这个: https://blog.csdn.net/little__SuperMan/article/details/89071764
① 下载nginx
(不是不用原生的 nginx-rtmp-module 是源码需要编译,用这个不用编译)
下载链接: http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip
下载后解压
② 下载nginx-rtmp-module模块 可以进入nginx目录中 直接使用git指令 git clone https://github.com/arut/nginx-rtmp-module/
③配置config文件: conf\nginx-win-rtmp.conf 内容如下:

                                                                   
worker_processes  2;
                                                                      
 
events {
    
    
    worker_connections  8192;                                                                           
}
 
rtmp {
    
    
    server {
    
    
        listen 1935;
        chunk_size 4000;
        application live {
    
    
             live on;                                                              
             record all;
             record_path /tmp/av;
             record_max_size 1K;
                                                                                 
             record_unique on;                                                               
             allow publish 127.0.0.1;
             deny publish all;                                                                    
        }
    }
}
 
http {
    
    
                                                                                 
    include       mime.types;
    default_type  application/octet-stream;                                                         
    sendfile        off;                                                         
    server_names_hash_bucket_size 128;                                                                  
    client_body_timeout   10;
    client_header_timeout 10;
    keepalive_timeout     30;
    send_timeout          10;
    keepalive_requests    10;                                                                     
    server {
    
    
        listen       80;
        server_name  localhost;
        location /stat {
    
    
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
    
    
            root nginx-rtmp-module/;
        }
        location /control {
    
    
            rtmp_control all;
        }
                                                                                 
        location / {
    
    
                                                                   
            root   html;
            index  index.html index.htm;
        }                                                                   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }                                                                                                                                          
    }                                                                                                          
}

④启动nginx:
在nginx安装目录下执行
nginx.exe -c conf\nginx-win-rtmp.conf
在这里插入图片描述

浏览器输入http://localhost 出现 Welcome to nginx! 及成功

最后我们要将摄像头的影像推到nginx上
cmd 执行

ffmpeg -f dshow -i video="HP HD Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost:1935/live/test

rtmp://localhost:1935/live/test 就是流地址
虽然报错了 但它能用
在这里插入图片描述最后在 flv中播放 rtmp://localhost:1935/live/test 即可
本机测试 延迟5秒左右

猜你喜欢

转载自blog.csdn.net/xy3233/article/details/120066077