Miracast/音视频处理
2017-01-24 15:32
731 查看
· Miracast:
关于Miracast的基础知识,大家可以baidu自行搜索,作为入门进行学习。如果进入开发阶段,则需要学习三篇白皮书:Wi-Fi_Display_Specification_v1.1、WiFi_P2P_Technical_Specification_v1.2及HDCPInterface Independent Adaptation Specification Rev2_2_FINAL。
我们的产品需求是在SOC芯片上(Linux)实现同时支持多路的Miracast Sink功能。
整个Miracast的过程包括无线链路的建立、呼叫建立、媒体接受、解码、呈现等。本篇只针对Miracasr相关的音视频处理做一些介绍。
在RTSP流程中,有几个步骤是协商音视频参数的,具体的看前几篇文章和spec。媒体数据最终通过ts over rtp传输。其中视频为H264编码,音频可支持LPCM,AAC,AK3。其实针对TS流的接收,demux,解码,音频播放和视频呈现应该说已经很成熟了,也不存在技术难点,这是纯粹的多媒体处理的内容,本文再此不做详细阐述,只做简要介绍注意需要实现过程中需要注意的一些点。
SINK端接收RTP数据
TS Over RTP的接收以及demux各位同学在很多开源解决方案中都能找到答案,FFMPEG,VLC,Live555等都有实现,可参考实现,再此也不说了。在Mira中,媒体数据是通过无线传输过来的,无线较容易受环境等干扰,容易引入传输的抖动。针对抖动处理,其实也都有比较成熟的解决方案。基本的思路都是引入Jitterbuffer来消除抖动,使播放过程能够平滑,各大开源解决方案中都有类似的处理,各位看官可以参考并根据自身的情况进行优化。
另外无线传输受环境等影响,会有丢包的情况出现。针对丢包的处理,视频可进行I帧请求来快速恢复视频画面,可参考spec中针对wfd-idr-request的描述。
音频处理
可选音频编码格式如下表所示:其中LPCM是一个基本项,必须要支持,其中WIN10使用WIDI投屏仅支持LPCM。
在我司的产品中尽可能的协商为AAC 2channels。但在实际的开发过程中发现少数终端也会出现协商不一致的情况,如小米某几款终端协商为AAC 2channels,但实际上行的TS流为6声道的。建议尽可能从TS流中的媒体元信息中去判断声道数。
视频处理
H264视频数据的解码和呈现再此也不详述了,可以在使用X264,FFMPEG等解码和处理,Android系统使用MediaCodec+surface,其它如海思等解决方案中都有相关SDK进行支持。视频数据如果出现丢包等情况,可以使用I帧请求快速恢复画面。在上文中已经提到。
技术交流有兴趣请加:
音视频技术交流群:308601278
无线投屏技术交流群:582349005
我司有成熟的视频会议/视频监控/视频调度/无线投屏盒子销售,也可做音视频相关产品和技术的定制化开发
有需要可发邮件marketing@bijienetworks.com
相关文章推荐
- vs2005入门 之 状态处理(Application,Seeeion,Cookie) [视频]
- 视频局部区域的马赛克处理
- ffmpeg+mencoder环境搭建和视频处理总结
- ffmpeg+mencoder环境搭建和视频处理总结
- NET 2.0(C#)调用ffmpeg处理视频的方法
- ffmpeg+mencoder环境搭建和视频处理总结
- Lighttpd 图片和视频等文件的防盗链处理
- linux下处理视频为flv格式
- 视频处理
- 用DirectShow实现视频马赛克处理
- [转]ffmpeg+mencoder环境搭建和视频处理总结
- VC+DirectShow对视频进行图片处理之四
- VC+DirectShow对视频进行图片处理之六
- VC+DirectShow对视频进行图片处理之一
- TI C64X 视频处理应用编程重点内容提示
- 专注于视频/图像处理
- 图片处理、视频制作、光盘刻录一条龙服务
- ffmpeg+mencoder环境搭建和视频处理总结
- ffmpeg+mencoder环境搭建和视频处理总结
- 实用视频处理方法