美文网首页
Windows系统下ffmpeg+nginx搭建HLS服务器

Windows系统下ffmpeg+nginx搭建HLS服务器

作者: 李莫予 | 来源:发表于2018-08-07 10:10 被阅读0次

    1. 准备软件

    nginx下载
    ffmpeg下载
    解压ffmpeg软件后,打开cmd,进入ffmpeg的bin文件目录,用ffmpeg -version测试是否正确安装。

    2. 服务器搭建

    2.1. 使用ffmpeg对MP4文件进行点播切片

    ffmpeg -i source.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list playlist.m3u8 -segment_time 10 out%03d.ts

    上述指令用的ffmpeg的segment模块来进行对source.mp4文件进行切片,segment_format用来指定输出格式为mpegts,segment_list用来配置输出的列表文件名,segment_time则是切片的时长,更多的参数请参考ffmpeg的官方使用文档,或查看libavformat/segment.c源文件。切片完成后,可以看到N个的outXXX.ts(其中XXX为数字,根据视频的大小,会有不同的数量),ffmpeg会根据out%03d,自动计算生成的文件名称格式。

    2.2. 使用ffmpeg对MP4文件进行直播切片

    ffmpeg -re -i source.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list playlist.m3u8 -segment_list_flags +live -segment_list_size 6 -segment_time 10 out%03d.ts

    与点播的区别就是加了-segment_list_flags +live以示直播,并且加上了-re参数(该参数表示ffmpeg将会按照source.mp4的播放速率进行转码)。segment_list_size参数将列表数量控制在6个。ssegment模块有个缺点,虽然可以通过以上方式达到直播,但是生成的TS文件并不会循环,会一直被保留(当然如果要顺带将内容录制下来,这反倒是一个优点,只能说其实现的还是切片的功能,并非纯粹的直播)。使用HLS模块就可以更好的胜任直播功能,HLS模块实现于libavformat/hlsenc.c libavformat/hls.c 以及 libavformat/hlsproto.c。使用HLS模块进行视频文件切片的指令如下:

    ffmpeg -re -i source.mp4 -codec:v libx264 -codec:a libfaac -map 0 -f hls -hls_list_size 6 -hls_wrap 10 -hls_time 10 playlist.m3u8

    hls_list_size即为HLS播放的列表,hls_wrap则表示为最大的TS循环数,也就是每10个一个循环,比如现在是生成playlist0.ts ~ playlist9.ts,10个文件,之后又会从playlist0.ts重新生成。

    2.3. 搭建nginx服务器
    解压nginx软件后,双击nginx.exe,注意路径中不能有中文,80端口不被占用。将ffmpeg生成的ts片段和playlist.m3u8文件放在html目录下。进入html目录点击index.html文件打开nginx服务,浏览器中显示如下信息,则表示nginx服务器启动成功。

    图 2.3

    3. 测试

    搭建好nginx服务器后,可以使用VLC进行播放验证。
    3.1. 打开VLC软件,选择 “媒体 - 打开网络串流” 选项

    图 3.1
    3.2. 填入串流地址,点击 “播放” 按钮
    输入http://your_ip:your_port/your_playlistname.m3u8,如下图所示,ip地址为192.168.98.61,端口号为80,播放列表为playlist.m3u8,则串流地址为http://192.168.98.61:80/playlist.m3u8
    图 3.2

    参考链接
    使用FFmpeg生成HLS
    Windows系统下ffmpeg+nginx+Vitamio搭建HLS服务器+Android客户端方法

    相关文章

      网友评论

          本文标题:Windows系统下ffmpeg+nginx搭建HLS服务器

          本文链接:https://www.haomeiwen.com/subject/qtcgvftx.html