nginx+rtmp推流拉流

  1. 上一篇文章末尾的推流拉流,没有牵涉到web的工作,是用vlc显示的。推流端是rtmp+flv,拉流端是rtmp+flv。
    推流: ffmpeg -re -stream_loop -1 -i src_h264.mp4 -vcodec copy -f flv rtmp://localhost/test01
    拉流: 用vlc打开 rtmp://x.x.x.x/test01

  2. 第二种形式,推流端是rtmp+flv,拉流端是rtmp+flv。在pc上用chrome观看,需要用到video.js,并且打开chrome的flash支持。
    需要开发web,这里简单修改index.html。
    参考 https://www.cnblogs.com/chen1994li/p/9496113.html
    先下载如下内容到index.html同级目录下:
    http://vjs.zencdn.net/5.19/video-js.min.css
    http://vjs.zencdn.net/5.19/video.min.js
    https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js
    https://vjs.zencdn.net/v/oceans.png
    https://cdn.bootcss.com/videojs-swf/5.4.1/video-js.swf
    再修改index.html




  
  h5 rtmp
  
  
  










推流: ffmpeg -re -stream_loop -1 -i src_h264.mp4 -vcodec copy -f flv rtmp://localhost/test01
拉流: 用chrome打开 http://x.x.x.x/
(注意把web里的x.x.x.x和这里的x.x.x.x换成真实的服务器端ip地址,把width,height换成真实的宽高)
(另外还有注意不要遗漏src='rtmp://x.x.x.x/test01/'中最后那个'/',如果遗漏了,chrome会报FLASH: rtmpconnectfailure)

  1. 第三种形式,推流端是rtmp+flv,拉流端是hls+mpegts。没有web的工作,只需要配置nginx.conf即可。
    在之前对nginx.conf修改的基础上,在rtmp/server节点里新增如下内容:
        application hls {
            live on;
            hls on;
            hls_path /tmp/hls;
            hls_fragment 5s;
        }

在http/server节点里新增如下内容:

        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /tmp;
            add_header Cache-Control no-cache;
        }

hls_path /tmp/hls;
location /hls
root /tmp;
三者指示了分片文件所在的物理路径,以及与rtmp://x.x.x.x/hls/y.m3u8这种形式的对应关系。

推流: ffmpeg -re -stream_loop -1 -i src_h264.mp4 -vcodec copy -f flv rtmp://localhost/hls/test02
拉流: 用vlc打开 http://x.x.x.x/hls/test02.m3u8
(pc端用chrome无法观看,在手机上用浏览器可以直接打开观看,应该是ios,android原生支持hls)

  1. 第四种形式,不涉及rtmp,hls等协议,html5 video原生支持mp4播放,通过http下载文件播放。
    需要开发web,这里简单修改index.html。
    先把src_h264.mp4放到index.html同级目录下。
    再修改index.html






无需主动推流
拉流: 用chrome打开 http://x.x.x.x/

你可能感兴趣的:(nginx+rtmp推流拉流)