Mac下如何切片HLS流

来源:互联网 发布:淘宝店铺品牌授权书 编辑:程序博客网 时间:2024/05/17 03:43

       HLS(Http Live Streaming)是苹果推出的一个播放协议,它仅要求服务器开启http服务即可使用,用户可以通过URL访问视频流。

      我在项目中遇到需要分享视频流的需求,详细分析后觉得HLS服务是很不错的解决方案,对于前台/后台都是蛮不错的选择。但是这个服务需要切片,无论是文件还是实时流,都需要用工具切片,生成一系列的ts文件和m3u8文件。

      苹果对于自身的产品还是有一系列的服务的,所以Mac下自带了切片工具,如果不是Mac下那就需要找找第三方的切片工具了。mediafilesegmenter这个工具用来给文件切片;mediastreamsegmenter这个工具用来给实时流切片,另外还有检查index文件,segment文件看是否符合标准的mediastreamvalidator工具等几个工具。我们主要使用mediafilesegmenter和mediastreamsegmenter这两个工具。

      1. 文件切片

      这个比较简单,因为文件肯定在你本地已经准备好了,你需要的就是正确使用命令,这可以使用google来搜索,也可以用--help命令或者man命令来查看文档。

      mediafilesegmenter -B NKU -i test_nku.m3u8 -t 10 -f ./test ./test.mp4
      这里简单说一下几个参数:

      -B是指定basename,就是生成的ts的文件名,我这里就是生成NKU0.ts~NKUn.ts等一系列文件

      -i是指定M3u8文件的名字

      -t是指定每个ts文件的时间,一般是10s

      -f是指定path,就是切片出来的ts文件存放的位置

      最后的那个./test.mp4是实际切片的文件

      运行之后就可以看见一系列的ts文件在生成,最后到指定的路径一看,一切都自动实现了。


      2. 实时流切片

      这个相应复杂一些,因为要搭建一个实际环境比较麻烦。但是我用了一个变通的方法,就是用VLC来生成流,往本机的某个端口去写,这样我们就模拟出了接收到实时流的情况,就可以正常使用mediastreamsegmenter这个工具了。

      先看一下如何用VLC来生成流吧:

      使用Advanced Open File命令,如下图所示

      

      选取要切片的文件

      

      配置参数

      

      这里参数配置好之后,按下OK按钮,但不要按下Open那个按钮,因为否则立刻开始播放文件,把流传输过来了。我们要先输入命令,准备好开始接收之后在播放文件。

      这里我们使用的命令是:

      mediastreamsegmenter -s 60 -f /Applications/XAMPP/htdocs/httpstream/fileSequence 127.0.0.1:2222

      简单解释一下参数:

      -s 60是指定m3u8文件里面存放60个ts文件,这样当超过60个ts文件的时候,新的ts加入,旧的ts移除

      -f这个是指定路径

      127.0.0.1:2222是流来的地址和端口,对应VLC里面的配置即可。

       我们先运行这个命令,然后让VLC开始播放文件。这样文件一面播放,一面生成实时的ts文件,模拟实时流的工作就完成了。

      

      


0 0
原创粉丝点击