PLMediaStreamingKit 提供两个层次的 API
PLStreamingKit 提供包括音视频编码,封包以及网络发送功能,PLCameraStreamingKit 除了提供 PLStreamingKit 的功能以外还提供了内置的采集,音视频处理以及一些系统打断事件的处理等。我们强烈推荐对音视频没有太多了解的开发者使用 PLCameraStreamingKit 提供的 API 进行开发,如果您对音视频数据的采集和处理有更多的需求,那么需要使用 PLStreamingKit 提供的 API 进行开发,不过在进行开发之前请确保您已经掌握了包括音视频采集,编码以及处理等相关的基础支持。
-----------------------------------
七牛云:
推流端: push url (null)
是从你自己的服务器,测试阶段,你也可以自己在本机上跑服务端SDK
客户端请求推流 ——》 客户端请求你服务器 ——》 你服务器请求七牛获取StreamJson ——》 你服务器返回StreamJson给客户端 ——》 客户端使用StreamJson进行推流
token 可以是业务服务器 直接调用七牛的 sdk 进行生成
key 是保存在七牛的文件名
很多信息都封装在一个叫上传策略的json串里面,对这个串进行一系列的运算,得到一个token
根据设置的策略生成 上传的token
有了上传 token 之后,客户端就不用关心 上传策略这个字符串了
token是根据一个json经过一系列的运算生成):这个token里面有几个必传的参数(七牛要求)。同时服务器也要根据需要填一些参数进去
在这个过程中,服务器要做两个事情:
1.一个服务器接口,获取两个东西:一个key(文件名字)和一个token。
2.一个回调的URL地址,实现这个URL地址,当七牛那边上传成功后回调这个URL地址。
这里的核心是这个token(token是根据一个json经过一系列的运算生成):这个token里面有几个必传的参数(七牛要求)。同时服务器也要根据需要填一些参数进去,如:
1.回调的url地址,比如:http://xxx.xxx.xx
2.回调你这个url地址的参数,这个参数有个参数肯定是有用户ID的
当你接受到这个这个回调后,从回调的参数里面取到uin,文件大小,key(文件名)等信息。然后把这些信息写到服务器的数据库里面。
"token":"46v9SB3M9vnwwJeRduBT61C2DIYsthd1Qp-OCFOB:kzU2xPmv7LOAj_uFAuAIt-LbdHc=:eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9mZW5nbml1LmYzMzIyLm5ldDo4MDYwL1FpTml1QXBwL2NvcmUvdmlkZW8uY2IuZG8_Iiwic2NvcGUiOiJxaW5pdXZpZGVvOjE1MzU4NDIzNDY0MzA2Mjc4NDAiLCJjYWxsYmFja0JvZHkiOiJoZWFkZXIudmVyc2lvblx1MDAzZDFcdTAwMjZoZWFkZXIuaW1laVx1MDAzZFx1MDAyNmhlYWRlci5zaWRcdTAwM2RcdTAwMjZoZWFkZXIub3NcdTAwM2RxaW5pdVx1MDAyNnNlY3VyaXR5Q29kZVx1MDAzZDRDQkRFNTAzQzE2Q0M4QTQzRUI2RjM0OTFDMjk1NjJDXHUwMDI2aGVhZGVyLnVpblx1MDAzZDBcdTAwMjZwYXJhbS5sbGlkXHUwMDNkMTUzNTg0MjM0NjQzMDYyNzg0MCIsImRlYWRsaW5lIjoxNDcxOTI1MjQ5fQ=="
直播
服务端有个stream.segment方法,你可以通过这个方法,获取每次直播的上下线时间,然后从中选取需要转存的部分,指定该部分的start和end传入saveas对应的参数中。调用服务端的saveas接口转存回放,转存后才是永久保存的,否则会在后台设置的过期时间后删除。m3u8是立即生成,mp4是异步转码,mp4一般1小时的视频可以在3-5分钟转完,具体看服务端的负载情况。
你可以指定下pipeline参数,这个是转码队列,可以先去七牛后台的多媒体处理建一个转码队列,然后把这个转码队列的名字填在pipeline这个地方。指定pipeline是私有队列,相应的转码速度也会快点,不过会产生转码费用,可以看官网的计费介绍。不指定默认就是公有队列,转码速度比较慢且不可控。
调saveas时format指定null就是只生成m3u8,指定为mp4就是mp4
同一个流 中断在推流 其实还是一个流
中断 再推 本身不会产生新的流
流端 时间超过重新连时间 流就为断流
推流端,动态或者静态的鉴权