zoukankan      html  css  js  c++  java
  • windows下nginx配合ffmpeg推送视频流

    软件准备:

    设置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即可启动服务

    ffmpeg推送视频流

    推送视频文件流

    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
    

    这样,播放器会一直播放视频,不会停止,类似直播

    推送实时视频流

    以电脑摄像头为例,通过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服务地址,即可播放)

  • 相关阅读:
    继承LIst 的类JSON序列化,无法序列化属性的问题
    C#深入学习:泛型修饰符in,out、逆变委托类型和协变委托类型
    12.Java web--过滤器与监听器
    11.Java web—servlet
    10.Java web—JavaBean
    9.Java web—JSP内置对象
    8.Java web—JSP基本语法
    Ubuntu 插入鼠标自动禁用触控板
    Ubuntu安装VLC播放器
    Ubuntu快捷键
  • 原文地址:https://www.cnblogs.com/Mr-Kahn/p/11011180.html
Copyright © 2011-2022 走看看