Car-eye JT/T1078 视频服务器开发过程中的音频处理
JT/T 1078视频协议是基于JT/T 808协议的扩展。其中视频服务器和指令控制服务器用两个SOCKET 进行通信。
因为协议采用TCP-ip协议的基础上进行封装,需要对协议的数据进行解释。然后转化成RTSP或者RTMP通用的协议
以扩展视频应用的范围。其中我们用到了RTMP协议,在网络延迟越来越少的情况下。RTMP协议的服务器性能更加稳定,web
开发更加方便。但这里主要因为面对的设备端主要使用海思的G726/G711A等格式来传送音频。但非常不幸的是这些格式并
不被RTMP协议所接受。所以需要进行转码。采用FFMPEG或者海思的专用解码器G726的数据线解释成PCM数据,然后再用
FACC 编码库转成AAC 通过RTMP 推流器推送到服务器。
需要注意以下几个方面:
1. 海思的数据中包含了海思的4个字节头,如果采用别的解码器解码需要去掉
2. AAC 编码的时候需要注意,需要将PCM的数据拼接成编码器制定需要的大小,然后再送进去进行编码。
3. 需要考虑服务器多并发的性能问题
不多说,将核心代码贴上:
G726Decoder->AFrameDecoder((char*)pBuffer, rtpLength, szOutData, &nOutDataLen);
if (m_index + nOutDataLen <= m_nPCMBufferSize)
{
memcpy(m_pbPCMBuffer + m_index, szOutData, nOutDataLen);
m_index += nOutDataLen;
if (m_index == m_nPCMBufferSize)
{
m_index = 0;
AAClen = m_pPCMToAAC->Encode((int*)m_pbPCMBuffer, m_nPCMBufferSize, pbAACBuffer, m_pPCMToAAC->GetMaxOutputBytes());
}
}else
{
int last = m_index + nOutDataLen - m_nPCMBufferSize;//剩下不的部分
memcpy(m_pbPCMBuffer + m_index, szOutData, m_nPCMBufferSize - m_index);
AAClen = m_pPCMToAAC->Encode((int*)m_pbPCMBuffer, m_nPCMBufferSize, pbAACBuffer, m_pPCMToAAC->GetMaxOutputBytes());
memcpy(m_pbPCMBuffer , szOutData+ m_nPCMBufferSize - m_index, last);
m_index = last;
}
if (AAClen > 0)
{
push(MEDIA_TYPE_AUDIO, header.dataType, header.payLoad, header.timeStamp, (char*)pbAACBuffer, AAClen);
}
car-eye开源官方网址:www.car-eye.cn
car-eye 流媒体平台网址:www.liveoss.com
car-eye 技术官方邮箱: support@car-eye.cn
car-eye技术交流QQ群: 590411159
CopyRight© car-eye 开源团队 2018
Car-eye JT/T1078 视频服务器开发过程中的音频处理相关推荐
- 我的抖音视频服务器维护中无法看,抖音短视频怎么不能看?原因是什么?
抖音已经成为了人们的一种娱乐方式,在抖音里面,可以看一些别人发的段子,并且也可以自己发抖音来记录美好的生活,抖音app给用户创造了很多不一样的玩法,也让很多用户从中感到快乐,但是有的时候,会出现抖音短 ...
- 抖音视频服务器维护中暂时无法观看,抖音显示服务器维护中暂时无法观看视频的原因分析...
最近有不少抖音用户在使用软件的同时遇到一些问题,就是打开抖音发现不能观看视频了,抖音显示服务器维护中暂时无法观看视频这个到底是什么意思?要是抖音服务器维护该怎么办?如何才能涮抖音视频呢?不少小伙伴都有 ...
- 抖音短视频服务器维护中什么意思,抖音短视频运营的几大误区,新手一定要注意!...
原标题:抖音短视频运营的几大误区,新手一定要注意! 在当下互联网短视频创作热潮中,很多小伙伴都投入了创作抖音视频的道路中,运营创作抖音短视频的道路艰难且长,很多小伙伴也不同程度的进入了各种运营误区中, ...
- 抖小火山视频服务器维护中,抖音、火山小视频、悟空问答昨天都崩了
原标题:抖音.火山小视频.悟空问答昨天都崩了 导读 宕机属于电脑运作的一种正常现象,任何电脑都会出现这种情况,服务器也不例外. 刺猬公社 | 石灿 昨天下午6点左右,抖音.火山小视频和悟空问答崩了!头 ...
- 抖音短视频服务器维护中无法打开,打不开抖音视频的解决办法
打不开抖音视频的解决办法 2020-12-16 12:19:45 来源:网络整理 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: 以抖音12.9.0版本为例,打不开抖音视频的原因及 ...
- 火山小视频服务器维护中,火山小视频整改时间多久 火山小视频整改哪些方面...
火山小视频v3.7.0安卓版 类型:影音播放大小:24.7M语言:中文 评分:5.5 标签: 立即下载 火山小视频app是一款短视频录制软件,喜欢玩短视频的伙伴,大多数都在玩火山小视频,但是由于某些方 ...
- 火山小视频服务器维护中,只有20%懂的玩转火山小视频,80%违规!
这段时间我写的火山小视频的文章,很荣幸的被官方推荐,也获得不少朋友的支持以及阅读.有部分操作这个项目的朋友,你可以也收到过"火山小助手"的通告吧,如果你没仔细阅读后去操作这项目很容 ...
- Java在游戏服务器开发中的应用
Java在游戏服务器开发中的应用 width="22" height="16" src="http://hits.sinajs.cn/A1/we ...
- 在手机上怎么提取视频中的音频?就这么简单
我愿意为正版歌曲付费,但不想找首歌要下载几个音乐APP,在不同的平台上反复充值注册会员."对于普通用户来说,在一个App上可能听到更多喜欢的音乐,不需要下载多个App就是最大期盼. 今天就给 ...
最新文章
- 设计模式之Pimpl模式
- 拉杰尔安卓服务器注册上限,拉结尔多开养小号刷副本 用多多云手机离线能升级...
- Vue008_ Vue实例生命周期
- Java ByteArrayInputStream reset()方法及示例
- 吉林大学计算机英语成绩,吉林大学复试出结果,初试分差84分,复试成绩却相差无几!...
- oracle 减少回表,減少oracle sql回表次數 提高SQL查詢性能 | 學步園
- 比特币的密钥、地址、钱包
- 人机交互大作业_为百亿级未来布局 徐工XG新一代高空作业设备全球首发
- nodejs学习笔记-入门helloworld
- 21天学通JAVA:如何使用现有类
- 解决edge可以访问github,谷歌却无法访问的问题
- 知识图谱学习笔记(三)——知识表示方法
- STL之vector的push_back过程详解
- [转载]C++URL编码转换
- 应用Druid监控SQL语句的执行情况
- 梦幻手游版华为显示未连入服务器,《梦幻西游》手游双平台区为什么我手机没有?...
- 基于opencv人脸识别
- sipp: bind_local;watchdog timer trip
- OpenCV(九)形态学操作4--礼帽与黑帽(顶帽与底帽)
- 【软件应用开发】基于SSM框架的共享云盘系统设计与实现
热门文章
- 互联网运营面试题_网站运营面试问题
- classes是什么意思怎么读_英语单词class怎么读,class的音标是什么,class是什么意思 - 音标网...
- win10无法登陆到你的账户
- 连接mysql报错 errorCode 1129, state HY000, Host ‘xxx‘ is blocked because of many connection errors
- 魅族mx4 android5.0,魅族MX4 Pro长测(2):安卓5.0 Flyme体验
- 达人评测 酷睿i9 12950hx和i9 12900hx区别哪个强
- 一头扎进Shiro 笔记 Shiro 支持特性
- 2019年帮解BUG,做设计,Android,WEB
- fastadmin 使用switch 点击修改无反应 提示“未更新任何行”
- Ubiquiti MAC Address Changer 3.0 Crack