流媒体开发中H264编码NALU结构介绍与I帧判断方法
背景分析
随着互联网基础设施建设的发展,4G/5G/NB-IoT各种网络技术的大规模商用,视频随时随地可看、可控的诉求越来越多,互联网思维、架构和技术引入进传统监控行业里,成为新形势下全终端监控的基础需求。
因使用区域受限、实施成本和入口门槛高,传统监控行业和摄像机直播系统无法借力优质云资源搭建属于自己的监控云平台,客户终端出不了监控的内网,无法做到公网实时监控与录像回放,更别说用手机、微信、H5、无插件随时随地看视频了,EasyNVR一直致力于解决以上痛点。
接口调用权限解决
最近有不少开发者就EasyNVR接口调用的问题来咨询我们,开发者们遇到的最多的问题就是权限问题(401 Unauthorized)。EasyNVR为第三方系统和应用提供了标准的API接口,方便对接二次开发为专属于自己企业的互联网直播平台。
接口一般分为接口定义者和接口调用者,定义者可以规定接收参数的类型及返回形式,而接口定义者则只能完全按照接口定义者规定的参数进行访问。就叫是我们所说的webService(网络服务)。
接口概述
API采用Restful风格的Http协议,全部请求都使用Get/Post方式,字符不区分大小写。基本结构如下:
http://<IP>:<Port>/api/<Version>/<Action>?<Param1>=<value>&<Param2>=<Value>&.....
参数
参数名称 | 定义 | 说明 |
---|---|---|
IP | Platform Address | IP地址 |
Port | Platform Port | 通讯端口 |
Version API Version | Platform Address | API版本 |
Action | Action | 执行的操作 |
Param | Action Parameter | 操作所使用的参数,可以有多个参数,每个参数对应一个Value |
Value | Parameter Value | 参数值,如果Value的字符串中出现&等特殊字符,则必须用””包住Value |
返回值
调用API会返回Json字符串,代表操作返回的结果
{"EasyDarwin" : {"Body" : {……},"Header" : {"CSeq" : "1","ErrorNum" : "200","ErrorString" : "Success OK","MessageType" : "MSG_SC_API_ACK","Version" : "1.0"}}
}
接口的调用
大多数的开发者们只注重接口的功能,往往直接传参调接口,于是就出现开篇的401报错;最简单的方法是,在我们拿到接口文档后,可以先阅读一下文档,心中有数之后,便更好操作。
接口调用前先进行简单的说明:EasyNVR大部分的调用接口需要在cookie中携带token信息;对于这个token信息,是通过login接口返回的。当我们成功请求接口: ”/api/v1/login?username=xxx&password=xxx“时,会返回一个token信息;
{"EasyDarwin" : {"Body" : {"Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"},"Header" : {"CSeq" : "1","ErrorNum" : "200","ErrorString" : "Success OK","MessageType" : "MSG_SC_SERVER_LOGIN_ACK","Version" : "1.0"}}}
我们对获取到的token信息存储到cookie中。出现401,大多数情况是cookie中tooken的携带、接口格式的错误、传递参数的错误。
友情提示:
有的伙伴在请求login接口时就发现出现401权限限制;该接口中password是经过MD5加密的。在进行其他接口请求时在request headers 的cookie会携带对应的tooken来进行请求。
流媒体开发中H264编码NALU结构介绍与I帧判断方法相关推荐
- FFmpeg 开发记录---H264编码,avi封装,暴风影音,qq影音播放有声无画
使用ffmpeg编码视频文件时,视频编码为H264,音频编码为MP3,封装格式为avi,发现输出的文件用vlc,mkplayer等能正常播放,但是用暴风影音或者QQ影音等无法正常播放,有声音无画面.后 ...
- 音视频开发系列-H264编码原理
H264简介 来自百度百科的介绍: H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式. H.264是ITU-T以H.26x系列为名称命名的 ...
- RTP中H264封装NALU格式详细解析
名词解释:NAL NAL的英文全称为Network Abstract Layer,即网络抽象层,在H264/AVC视频编解码标准中,整个系统框架分为两个层面,视频编解码层面(VCL)和网络抽象层面(N ...
- RTP中H264封装NALU(SPS,PPS等)
NAL的英文全称为Network Abstract Layer,即网络抽象层,在H264/AVC视频编解码标准中,整个系统框架分为两个层面,视频编解码层面(VCL)和网络抽象层面(NAL).VCL负 ...
- .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI
作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...
- 中telnet_web开发中的编码问题
天还没亮便赶到台北火车站,准备坐车前往嘉义.原本打算从嘉义乘坐向往已久的小火车进入阿里山,遗憾的是因为台风的关系小火车已停运好几天,最后只好改乘大巴. 这篇文章写于两年前,当时还在做网站的时候,断断续 ...
- 使用MyEclipse开发中的编码设置
在使用Eclipse+MyEclipse开发中,许多文件编码默认是ISO-8859-1,不支持中文(如常用的JSP).这样我们每次建文件都要手动改编码,其实我们可以在设置文件默认编码,今后再创建时就不 ...
- C/C++开发中防止头文件被重复引入的3种方法
我们在用 C 语言开发软件时,经常使用宏定义(#ifndef / #define / #endif)来有效避免头文件被重复 #include,此方式在 C++ 多文件编程中也很常用. 举个例子, ...
- H264编码入门(二)I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别 I 帧和 IDR 帧的区别 IDR与GOP: 疑问: 解答: 结论 QQ交流群:697773082 I 帧和 IDR 帧的区别 IDR 帧属于 I 帧.解码器收到 IDR ...
最新文章
- 枚举中关于toRaw()和fromRaw(3)编译出错
- MFC对话框控件访问的七种方式
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- SAP中各种分摊分配方法
- mongodb2.2.1安装
- python 绘制分布直方图_统计学中常见的4种抽样分布及其分布曲线(Python绘制)...
- linux修改文件没有备份,归档模式,恢复没有备份的数据文件
- jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等
- 自家公司关于git commit 的规范
- visual basic_什么是Visual Basic?
- matlab画奇异吸引子,第四节 混沌理论和奇异吸引子
- 第二次作业:微博案例分析
- Error:(292, 40) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) ........
- Todd's Matlab讲义第5讲:二分法和找根
- WordPress系列教程(一)----WordPress环境准备与安装
- uniapp 消息提示框
- Java实现爬取哔哩哔哩视频信息程序
- 银行数字化转型导师坚鹏:金融科技与数字化转型成功案例
- 固定资产管理系统如何简化固定资产管理和盘点工作?
- 软件设计师每日一练真题笔记