接下来是边测试边记录了
原始设置
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
hls on;
hls_path /temp;
hls_fragment 5s;
}
}
}
1.hls有什么用,可以去掉吗
结论是,
1.1.直播流可以去掉。
改成后,restart-rtmp.bat,运行推流,没问题。
1.2.hls使用
参考:
HLS,RTSP,RTMP的区别(https://www.jianshu.com/p/70c9a2fd918b)
Nginx支持HLS配置(https://blog.csdn.net/zongyue_wang/article/details/82698281)
视频文件在目录是在分区的根目录去了
1.发现这个视频的效果比实时流好。
2.播放一次后就不能播放了,不然这个不是可以做回放用吗?
发现不是播放后就没有文件里,而是,过段时间就没有,不知道是哪个配置项
要添加配置项
hls_cleanup off;
application live {
live on;
hls on;
hls_path /temp;
hls_fragment 5s;
hls_cleanup off;
}
参考:m3u8 and ts files are deleted after a while(https://askubuntu.com/questions/920536/m3u8-and-ts-files-are-deleted-after-a-while)
但是这样的话,同名视频生成多次的话ts文件会越来越多。
另外这里学到ffmpeg可以直接生成hls文件:
ffmpeg -i /var/mp4s/gua.mp4 -strict -2 -f hls /mnt/hls/index.m3u8
改一下 就是
ffmpeg -i a.mp4 -strict -2 -f hls hls/a.m3u8
注意这里的hls文件夹要手动创建,该命令没有创建文件夹的功能
3.手机浏览器(Androd手机、华为或者小米)的视频缓存虽然没有.ts文件,但是是也有个文件夹有一些数字文件和一个index.m3u8文件,外面有个.vdat文件,估计和这个是相关的。hls流文件存到本地吧。
4.修改文件路径到程序所在目录下:
对应的server里面的配置也要改
5.m3u8文件
a.m3u8的内容
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:6
#EXT-X-DISCONTINUITY
#EXTINF:6.267,
a-0.ts
#EXTINF:6.200,
a-1.ts
#EXTINF:5.966,
a-2.ts
#EXTINF:2.134,
a-3.ts
参考:HLS 直播协议m3u8详解(https://blog.csdn.net/aoshilang2249/article/details/82012187)
6.html播放hls
IE11里面播放正常,Chrome和FireFox里面只是一个图片,先不管了。我重心是unity。
7.unity播放
Unity自身的VideoPlayer不行,参考(https://docs.google.com/document/d/1s1ISPgLIM70IVuH2W1lbst6HPiHXSoRct64SJmn7-cg/edit)。
用之前的项目的UniversalMediaPlayer,改一下播放地址,弹出错误,直接unity崩溃了。
明明它的例子的后缀名就是m3u8。
发现项目中的UniversalMediaPlayer版本是1.1,而最新的版本是2.0,找了一圈没找到下载的,上淘宝买了个,5块钱。
可以用。
8.发现直接往temp/hls_temp文件夹中放mp4视频,也是能够用vlc访问到的,而且,进度条还能滑动,比m3u8还方便,这个就是个视频服务器了!
有子目录也没问题