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会不断更新playlist.m3u8 ,VLC将在切片结束后重新请求更新playlist.m3u8获得新的切片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值