rtmp学习记录(2) HLS

接下来是边测试边记录了

原始设置

rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application live {
             live on;
             hls on;
             hls_path /temp;
             hls_fragment 5s; 
        }
    }
}

1.hls有什么用,可以去掉吗

结论是,

1.1.直播流可以去掉。

改成rtmp学习记录(2) HLS_第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)

推流指令:ffmpeg -loglevel verbose -re -i a.mp4 -vcodec libx264 -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/live/a 

结果:rtmp学习记录(2) HLS_第2张图片

视频查看地址:http://127.0.0.1:9090/live/a.m3u8

rtmp学习记录(2) HLS_第3张图片

rtmp学习记录(2) HLS_第4张图片

视频文件在目录是在分区的根目录去了

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.修改文件路径到程序所在目录下:

rtmp学习记录(2) HLS_第5张图片rtmp学习记录(2) HLS_第6张图片

对应的server里面的配置也要改

rtmp学习记录(2) HLS_第7张图片

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还方便,这个就是个视频服务器了!

有子目录也没问题

你可能感兴趣的:(RTMP)