qq:418511899

在现实生活中,手机和移动设备使用地越来越多,如何将音视频点播和直播发布到移动设备,这就涉及到很多相关的知识,比如android接收的音视频有哪些格式,分辨率是什么样子的,而ios设备接收的情况又是什么样子,支持什么样的协议。

 

  这里首先要几样东西:

   1 就是ts流传输,不是文件ts传输,而是直播传输,因为文件点播可以用什么来解决呢,就是html5,html5相对来讲较为容易,因为浏览器已经帮我们解决了大部分问题,另外,大名鼎鼎的播放器jwplayer就能用两种方式传输音视频,一种是rtmp协议,另可使用html5来。

   2 HLS是苹果专门用来传输到苹果设备ipad,iphone移动设备的解决方案,比较成熟,只支持ts流,按秒分割文件。

   3 rtsp协议,rtsp服务器,rtp协议,ts over udp over rtp ,当然ts over udp 也能接收。

   4 编码传输,编码接受的音视频就是h264+aac ,当然mp3也是可以的,不过最好使用aac编码。

   5 h264 图像传输中的sps pps 以及音视频同步,最后是pts和dts等相关知识。

   6 桌面传输,桌面传输的高分辨率采集速度是个问题,他不像采集卡哪儿快,最快能到几帧呢,终极传输方案也许只能用镜像驱动么?并不一定。传输的时候鼠标指针怎么采集,怎样判断桌面变化了。

   7 如何将海康等设备的非标准h264图像和g.711等音频转过来桥接到rtsp服务器上呢,都可以做到,耐心就可以。

下表for iphone等ios设备。

8 如何存储呢,可以存成什么格式,答案是任何格式都可以,首先是存成mp4,以利于移动设备点播。

9 在接收的过程中可以进行图像识别吗,答案也是可以,用一个客户端连接上rtsp服务器,接收后转成yuv 格式取 y 分量进行图像识别,如果要省事,y 分量后面直接挂接

opencv就可以,如何进行人脸识别,也非常简单,还是pca算法,将y 分量挂接到你的插件里面,用插件形式来进行识别。

  这里使用标准rtsp服务器的好处就是既可以用客户端连接上观看, 也可以用一个客户端连接上网络存储,更可以用客户端连接上来进行图像识别,最大的好处,当然是使用

移动设备可直接观看了。

 

基本编码for iPhone, iPod touch, iPad, and Apple TV, 16:9

Connection

分辨率

音视频码率

视频码率

帧率

Cellular

480 x 320

64 kpbs

audio only

none

Cellular

480 x 224

150 kpbs

110 kbps

30

Cellular

480 x 224

240 kpbs

200 kbps

45

Cellular

480 x 224

440 kpbs

400 kbps

90

WiFi

640 x 360

640 kpbs

600 kbps

90

以上为基本编码

 

 

当然1920*1080,所谓的1080p做到也是可能的,条件是带宽

 

for android

 

 

SD (Low quality)

SD (High quality)

HD (部分设备支持)

H264视频编码方案

H.264 Baseline Profile

H.264 Baseline Profile

H.264 Baseline Profile

视频分辨率

176 x 144 px

480 x 360 px

1280 x 720 px

帧率

12 fps

30 fps

30 fps

码率

56 Kbps

500 Kbps

2 Mbps

音频编码

AAC-LC

AAC-LC

AAC-LC

音频通道

1 (mono)

2 (stereo)

2 (stereo)

音频码率

24 Kbps

128 Kbps

192 Kbps


以下是架构图,有能力的程序员可自行写出代码来,原理就是如此。

 


 

 

 

 

年前没时间再写了,年后整理代码放出,纯c++ 代码,在vs2010 下实现。qq:418511899