搭建HLS推流环境

Posted Zhang Jun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建HLS推流环境相关的知识,希望对你有一定的参考价值。

  1. 安装ffmpeg、nginx、nginx-rtmp-module和VLC播放器
  2. 启动nginx服务器,配置nginx以支持rtmp
  3. 配置FFmpeg
  4. 使用ffmpeg 将视频文件转换成rtmp流格式输出
  5. 使用VLC播放器进行拉流测试

具体操作流程如下:
1、cmd启动nginx服务器:
nginx.exe -c conf\\nginx-win-rtmp.conf

2、新开一个cmd (不要关闭之前的ngnix)

注:
a.FLV是由一个FLV Header和若干tag(Video Tag, Audio Tag, Script Tag三种,分别代表视频流,音频流和脚本流)组成的二进制文件。
b.rtmp通过flv格式推送音视频流(h264/aac)。
c.MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。
d.流化的本质就是按顺序提取音视频帧的过程,即计算每个数据帧在文件中的偏移量的问题。

然后输入一下指令:

1)rtmp直播

ffmpeg -re -i video.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/home

// ffmpeg -re -i video.mp4 -vcodec libx264 -r 25 -b:v 500k -s 640*480 -acodec aac -f flv rtmp://127.0.0.1:1935/live/home

电脑打开vlc播放器输入地址:rtmp://127.0.0.1:1935/live/home

然后先点击命令行回车 再点击播放

2)hls直播

ffmpeg -re -i video.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/hls/movie

电脑打开vlc播放器输入地址:http://localhost:8080/hls/movie.m3u8

然后先点击命令行回车 再点击播放

3)rtmp点播(文件预先存放在指定目录,nginx的rtmp点播协议支持flv格式,部分支持mp4)

电脑打开vlc播放器输入地址:rtmp://localhost:1935/vod/video.flv【http点播:http://localhost:8080/vod/video.mp4】

附nginx-win-rtmp.conf配置:

http 
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        off;

    server_names_hash_bucket_size 128;

## Start: Timeouts ##
    client_body_timeout   10;
    client_header_timeout 10;
    keepalive_timeout     30;
    send_timeout          10;
    keepalive_requests    10;
## End: Timeouts ##

    server 
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / 
            root html;
            index index.html;
        

        location /hls      
           #server hls fragments     
           types      
             application/vnd.apple.mpegurl m3u8;     
             video/mp2t ts;     
                
           alias D:/work/hls/temp;     
           expires -1;     
           #root D:/work/hls/temp;
           #add_header Cache-Control no-cache;
        

        location /vod 
            alias D:/work/video;
        

    



rtmp    
    server    
        listen 1935;   
        chunk_size 4096;
        
        application live 
            live on;   
           

        application hls 
             live on;     
             hls on;     
             hls_path D:/work/hls/temp;     
             hls_fragment 5s;     
            
   
       application vod 
           play D:/work/video;
       

       application vod_http 
          play http://127.0.0.1:8080/vod/;
       

    
    

以上是关于搭建HLS推流环境的主要内容,如果未能解决你的问题,请参考以下文章

mac搭建简单的hls推流服务器遇到的问题(待更新)

Centos7 搭建Nginx+rtmp+hls直播推流服务器

搭建Nginx+nginx-rtmp-module的hls流媒体服务器并用OBS进行推流

windows使用nginx+rtmp推流hls时候,无法生成m3u8,ts文件的解决办法

使用Nginx+FFMPEG搭建HLS直播转码服务器

Mac搭建Nginx流媒体服务器,进行推流,拉流