音视频切片

描述

音视频切片是七牛云存储提供的云处理功能,用于支持HTTP Live Streaming播放。

HTTP Live Streaming是由Apple提出的基于HTTP的流媒体传输协议。

它将一整个音视频流切割成可由HTTP下载的一个个小的音视频流,并生成一个播放列表(M3U8),客户端只需要获取资源的 M3U8 播放列表即可播放音视频。

以下用 HLS 代指 HTTP Live Streaming 。

使用

命令可以使用自己选择需要的参数,如:

自定义:avthumb/m3u8/vb/500k/t/10

命令的调用可以使用上传时指定persistentOps或者调用pfop命令

音视频切片接口规格

avthumb/m3u8/segtime/

/ab/

/aq/

/ar/

/r/

/vb/

/vcodec/

/acodec/

/ss/

/t/

/s/

/stripmeta/

/rotate/

/noDomain/

/hlsKey/

/hlsKeyType/

/hlsKeyUrl/

/pattern/

参数名称

类别

必填

说明

/segtime/

A/V

用于自定义每一小段音/视频流的播放时长,单位:秒,取值范围5-120秒,默认值为10秒。

/ab/

A

静态码率(CBR),单位:比特每秒(bit/s),常用码率:64k,128k,192k,256k,320k等。

/aq/

A

动态码率(VBR),取值范围为0-9,值越小码率越高。不能与上述静态码率参数共用。

/ar/

A

音频采样频率,单位:赫兹(Hz),常用采样频率:8000,12050,22050,44100等。

/r/

V

视频帧率,每秒显示的帧数,单位:赫兹(Hz),常用帧率:24,25,30等,一般用默认值。

/vb/

V

视频比特率,单位:比特每秒(bit/s),常用视频比特率:128k,1.25m,5m等。

/vcodec/

V

视频编码方案,支持方案:libx264,libvpx,libtheora,libxvid等。

/acodec/

A

音频编码方案,支持方案:libmp3lame,libfaac,libvorbis等。

/scodec/

V

字幕的编码方案,支持方案:mov_text, srt, ass等。该参数仅用于修改带字幕视频的字幕编码。

/ss/

V

指定视频截取的开始时间,单位:秒。用于视频截取,从一段视频中截取一段视频。

/t/

V

指定视频截取的长度,单位:秒。用于视频截取,从一段视频中截取一段视频。

/s/

V

指定视频分辨率,格式为x或者预定义值。

/stripmeta/

A/V

是否清除文件的metadata,1为清除,0为保留。

/rotate/

V

指定顺时针旋转的度数,可取值为90、180、270、auto,默认为不旋转。

/noDomain/

A/V

取值为0或者1,不设置的情况下为0。表示切片索引中的切片列表,是否使用相对地址,设置为1则使用相对地址,设置为0则使用绝对地址。

/hlsKey/

A/V

AES128加密视频的秘钥,必须是16个字节

/hlsKeyType/

A/V

秘钥传递给我们的方式,0或不填:, 1.x(1.0, 1.1, …): 见下面详细解释

/hlsKeyUrl/

A/V

秘钥的访问url

/pattern/

A/V

为各音视频流ts文件自定义命名。

因为一整个音视频流音视频切片后会生成一个M3U8播放列表和多个默认命名的音视频流ts文件。

示例:avthumb/m3u8/pattern/eGlhb3hpYW8kKGNvdW50KQ==,其中eGlhb3hpYW8kKGNvdW50KQ==是自定义ts文件名如qiniu$(count)的URL安全的Base64编码,其中$(count)是必须存在的六位占位符数字串,qiniu可以自己定义。最后得到类似qiniu000000qiniu000001……qiniu000006命名的ts文件。

示例

以预转持久化形式,将mp4视频按video_240k预设规格切片(15秒一片):

{

"scope": "qiniu-ts-demo:sample.mp4",

"deadline": 1390528576,

"persistentOps": "avthumb/m3u8/segtime/15/video_240k",

"persistentNotifyUrl": "http://fake.com/qiniu/notify"

}

以触发持久化处理形式,将mp4视频切片,静态码率为320K,帧率为24fps:

POST /pfop/ HTTP/1.1

Host: api.qiniu.com

Content-Type: application/x-www-form-urlencoded

Authorization: QBox

bucket=qiniu-ts-demo

&key=sample.mp4

&fops=avthumb%2Fm3u8%2Fab%2F320k%2Fr%2F24

&notifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify

注意:要在Authorization头部的前添加QBox和半角空格。

以上示例的处理结果通知方式请参考持久化处理结果通知。

hls加密

hls加密是利用AES-128位对每个ts文件进行加密,播放器在取得PlayList文件的时候,会根据里面的#EXT-X-KEY标签请求获得解密的URL,再请求解密秘钥,之后会用秘钥对获取的ts文件解密。用户可以对秘钥的URL做cookie验证等方法来对用户做认证。

例子:PlayList文件 (复制链接,查看文件内容或直接用vlc播放器播放)

参数解释:

hlsKey base64_urlsafe编码或加密过后的秘钥

hlsKeyUrl 指定了秘钥放置的url,经过base64_urlsafe编码,这是生成m3u8 PlayList会使用到的

hlsKeyType 指定了传送秘钥的方式

不指定或者指定为0,则仅仅是以base64_urlsafe编码的方式传送

指定为1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以编码传送秘钥,x表示秘钥的版本

公钥:1.0

如何加密RSA:

可以编程的方法,或者使用openssl,下面提供openssl的版本:

$ echo -n [AES128KEY] | openssl rsautl -encrypt -oaep -inkey [QINIU_PUB_KEY_FILE] -pubin | openssl base64 -A | tr "+/" "-_"

例子:

不使用rsa加密: avthumb/m3u8/vb/640k/hlsKey/ZXhhbXBsZWtleTEyMzQ1Ng==/hlsKeyUrl/aHR0cDovL3p0ZXN0LnFpbml1ZG4uY29tL2NyeXB0MC5rZXk=

使用rsa加密: avthumb/m3u8/vb/640k/hlsKey/SyyishA7ompSehjBHsq9EkBpbw6RfPnl49FOyMPoQZa4uxFlyHUCLxmXQ56F5WIteknZWahbqcdNx06pGBNk1zVBm5K6czZ_nCdy7y6PBon7NSUamoUPIGGBuevXOcyuc-4IpkmkcG3MWz7_Lop8zk98k8IVmKYCD_LMv-C_8D0=/hlsKeyType/1.0/hlsKeyUrl/aHR0cDovL3p0ZXN0LnFpbml1ZG4uY29tL2NyeXB0MC5rZXk=

内部参考资源

七牛切片视频php,音视频切片相关推荐

  1. php 七牛 视频切片,七牛云试用指南-音视频切片与播放授权

    对于大型音视频而言,完整下载后再播放会导致延时很大.针对这种应用场景,七牛云还提供对音视频进行切片存储的功能,目前已支持HLS(HTTP Live Streaming,Apple提出的基于HTTP的流 ...

  2. 音视频开发---音视频同步算法

    目录 ffplay简介 为什么要做音视频同步 音视频同步算法 参考 本文是对音视频同步算法的总结,以阅读ffplay.c源码为基础,结合各位博主的分析, 逐渐深入理解同步算法原理, 并根据自身理解, ...

  3. javacv+远程视频直播+音视频录制+视频抓取

    远程视频直播+音视频录制+视频抓取 请首先阅读注意事项文末有github地址 远程直播展示 音视频录制 运行会有延迟,视频为mp4格式存储在D盘. 视频抓取 注意事项 远程直播需要下载一个软件:VLC ...

  4. Android OpenGL添加水印并录制视频--抖音视频录制原理

    Android OpenGL添加水印并录制视频–抖音视频录制原理 简单的视频录制,我们可以使用MediaRecorder,具体示例可以参考Gitee: Camera2VideoJava 本文将介绍采集 ...

  5. 音视频开发-音视频面试必问的直播延迟分析丨FFmpeg|SRS流媒体服务器|webrtc|Android NDK开发|HTTP-FLV|RTSP

    音视频面试必问的直播延迟分析 1.直播延迟500ms是极限吗,加上WebRTC能做到多少 2.推流的延迟分析 3.流媒体服务器延迟分析 4.拉流的延迟分析 视频讲解如下,点击观看: 音视频开发-音视频 ...

  6. FFMPEG音视频同步-音视频实时采集并编码推流

    FFMPEG音视频同步-音视频实时采集并编码推流 //------------------------------------------------------------------------- ...

  7. 即时通讯音视频解决方案 音视频技术处理

    即时通讯音视频解决方案 音视频技术处理 音视频即时通讯技术方面,云智真即时通讯音视频SDK包含了音视频处理模块(采集.编解码).流媒体管理模块(丢包重传.抖动平滑.动态缓冲).流媒体播放模块(多路混音 ...

  8. 七牛切片视频php,音视频切片(HLS)

    音视频切片接口用于支持HTTP Live Streaming播放.HTTP Live Streaming 是由 Apple 提出的基于 HTTP 的流媒体传输协议.它将一整个音频.视频流切割成可由 H ...

  9. 七牛云 转码_七牛云试用指南-音视频基本处理

    对于音频.视频等多媒体资源,七牛云也提供了丰富的处理指令,包含但不限于以下指令: 本篇从获取音视频元信息入手,顺序讲解各个处理指令. ■ 获取音视频元信息 使用avinfo接口可以非常方便地获取一个音 ...

最新文章

  1. abb外部轴零位校准_新品发布 | ABB机器人节拍最快的冲压自动化以及ABB紧凑型车身内喷解决方案...
  2. (转) oc static extern 和const
  3. laravel php配置,PHP Laravel框架路由配置及设置技巧全解
  4. SQL Server 2012 Managed Service Account
  5. Typecho开启全站Pjax
  6. python读取指定行到最后一行_python读取文件最后一行两种方法
  7. 下载丨58页PDF,云和恩墨技术通讯(2020年12月刊)
  8. linux主机重启之后,报UNEXPECTED INCOMSISTEMCY:RUN fsck MANUALLY.
  9. @Controller @ResponseBody @RestController的基本含义与使用方法
  10. python爬虫代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
  11. 深入理解Web Service
  12. mouseover与mouseenter、 mouseout与mouseleave的区别
  13. 三星app图标不见了怎么恢复_手机便签的内容不见了怎么恢复?试试这款便签软件的时间轴功能...
  14. idea 2022年使用教程
  15. 普鸥知识产权|如何申请美国外观专利?申请费用、时间、流程?
  16. 绿色荧光油溶性CdSe/ZnS量子点(硒化镉/硫化锌)
  17. 【学习】笔记本电脑重新安装系统win10
  18. 第一次修U盘,没想到...
  19. IDEA更改启动界面背景图片
  20. BigCommerce vs WooCommerce,哪个更适合跨境电商开展业务?

热门文章

  1. GPIO_InitTypeDef GPIO_InitStructure;这句话什么意思
  2. 为什么告警warning implicit declaration of function必须修复
  3. jQuery实现飞机大战小游戏
  4. “科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛 G 硬币游戏Ⅲ SG函数 /Mutli-SG 游戏 终于补完了……
  5. 随身wifi免入坑系列
  6. 如何通过API调用来分析恶意软件
  7. 基于FPGA的PWM模块
  8. 新浪微博AppKey大集合(share)
  9. 【NLP】bert中的[CLS]甚意思?
  10. ios app HTML5 白屏,App平台iOS设备上因内存不足导致白屏、闪退的问题解决方案