如何点播历史直播视频?

最近更新时间:2018-09-03 10:55:42

七牛直播云会自动为每一条直播流落存储,保存在直播空间所对应的存储空间(bucket),保存形式为 ts 切片文件。默认这些 ts 文件会在存储过期时间后被删除。
如果希望进行点播回看,需要录制下来,生成一个视频文件来进行播放。

录制方法

1.控制台界面操作

https://portal.qiniu.com 控制台进行点播录制,生成视频文件。


2.使用接口录制

七牛直播云封装了各种语言的 sdk ,对应的 sdk 版本中都有 saveas() 方法
七牛直播云sdk

# python 举例
# 参数
# name      : required, string
# start     : required, int64, in second, unix timestamp
# end       : required, int64, in second, unix timestamp
# format    : optional, string, see http://developer.qiniu.com/docs/v6/api/reference/fop/av/avthumb.html
# notifyUrl : optional, string
# pipeline  : optional, string
res = stream.save_as(name="videoName.mp4", format="mp4", start=1440282134, end=1440437833, notifyUrl=None)
print res
# 返回数据示例
# {
#     "url": "http://ey636h.vod1.z1.pili.qiniucdn.com/recordings/z1.test-hub.55d81a72e3ba5723280000ec/videoName.m3u8",
#     "targetUrl": "http://ey636h.vod1.z1.pili.qiniucdn.com/recordings/z1.test-hub.55d81a72e3ba5723280000ec/videoName.mp4",
#     "persistentId": "z1.55d81c6c7823de5a49ad77b3"
# }


FAQ

1.为什么 saveas() 的时候报错 619 ?

619 {"error": "no data" // 没有直播数据}
619 状态码是直播数据不存在,一般出现这样的问题,是 saveas() 方法中有 start 和 end 参数,在这两个参数段内如果无直播,或者超出 segment() 方法包含的范围,就会报错 619。
解决方式:先使用 segment() 方法,获取直播所有的历史时间段,然后将 start 和 end 传入 saveas() 方法。如果依然报错,请检查是否直播数据过了存储过期时间,或者被人为删除过 ts 切片文件。

2.为什么 saveas() 的时候报错 612 ?

612 {"error": "stream not found"}
检查一下 getstream() 方法是否获取到了正确的流ID,流ID 的组成方式为 z1.<hub>.<title>

3.为什么 saveas() 出来的 mp4 文件会卡住,快进,或者进度条无法拖动?

saveas 接口那边的转码参数是写死的,可能不能够很好的对特殊视频进行转码,建议 format 为空先生成m3u8,然后调用存储的avthumb接口: http://developer.qiniu.com/code/v6/api/dora-api/av/avthumb.html ,自己指定转码参数进行转码

4.saveas() 转存一小时的视频大概需要多久?

首先在 saveas() 的时候指定一下私有队列,添加 pipeline 参数
m3u8 是立即生成,mp4 是异步转码,mp4 一般1小时的视频可以在3-5分钟转完,具体看服务端的负载情况。

5.saveas() 默认保存为永久的,我不想保存为永久,想指定一个生命周期怎么做?

七牛直播录制支持指定存储的生命周期,详细参考saveas 调用保存并设置m3u8的ts存储过期时间

6.saveas() 返回的域名是直播的 TS 切片域名,如何换成点播 CDN 域名?如何配置 https?

可以自助修改,申请 https 免费证书参考七牛免费https证书使用
自助修改 saveas() 方法返回的域名参考给直播空间设置点播域名加速

以上内容是否对您有帮助?
  • Icon free helper
    Close