FFmpeg+Nginx搭建HLS直播服务

    HLS是基于HTTP上的视频点播和直播传输协议,在目前OTT和IPTV点直播系统中被大面积应用。

    在这个过程中为了调试和Demo方便常常需要搭建一个HLS服务,下面研究了一个基于FFmpeg+Nginx的直播HLS方案,核心思想是:

    1. FFmpeg作为转码,HLS切片,m3u8更新工具。

    2. Nginx负责HTTP服务。

 

运行FFmpeg服务:

ffmpeg -re -i 1.ts  -map 0 -f ssegment -segment_format mpegts -segment_list playlist.m3u8 -segment_list_flags +live -segment_list_size 2 -segment_time 10 out%03d.ts

 

 -re参数代表生成过程按照输入视频的实际fps,保证直播。

 -segment_format mpegts 切片采用ts流,

 -segment_list playlist.m3u8 生成m3u8文件,

 -segment_list_flags +live表明是直播流,

 -segment_list_size 2 表示playlist m3u8中包含2个切片,设置较少的数是保证客户端直播的实时性。

 -segment_time 10 表示单个切片10s的时间

 最后生成的切片以out***.ts的方式保存在目录中

 

运行Nginx服务:

配置Nginx:

server {
        listen 8080 default_server;
        listen [::]:8080 default_server;

        root /home/lyh/ffmpeg_sources/FFmpeg/hls_test;

以下省略

将Ngnix server的root指定到FFmpeg生成HLS切片的路径。

sudo nginx启动服务。因此有测试地址http://localhost:8080/playlist.m3u8

 

VLC测试

 

FFmpeg+Nginx搭建HLS直播服务_第1张图片

FFmpeg+Nginx搭建HLS直播服务_第2张图片

播放过程FFmpeg会不断更新playlist.m3u8 ,VLC将在切片结束后重新请求更新playlist.m3u8获得新的切片。

你可能感兴趣的:(音视频)