iOS平板JAVA,【图片】【分享】JAVA实现苹果设备(iphone/ipad)直播电脑摄像头采集的【java吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

具体的技术介绍本人是根据这篇博客了解的:

http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html

技术点列表以及解决方案:

1、采集视频源和音频源的数据

视频数据采用jmf或者opencv,本人实际开发中jmf对mac系统支持的不是很好所以放弃

opencv是全平台支持、并且原生支持部分java调用接口

所以视频采集选用opencv实现

声音采集这个暂时没有做,不过可以通过java原声的声音api可以实现采集

2、对原始数据进行H264编码和AAC编码

本人没有详细了解h264编码的格式,采用了Jcodec框架进行编码

该框架缺点是文档太少楼主只实现了将opencv采集到的图片数据合成为MP4格式的文件

声音采集没有做,不过实现起来较为简单,网上很多aac声音采集例子

3、视频和音频数据封装为MPEG-TS包

封装为TS包这个推荐使用ffmpeg这个工具,转换起来要通过runtime调命令格式的

楼主原本思考用c++封装为jni调用,但是与命令行调用的效率差不多所以没有采用

该工具也可以将声音文件与视频文件合并为TS文件

简化了声音处理过程

4、HLS分段生成策略及m3u8索引文件

一个直播的m3u8文件格式为:

#EXTM3U

#EXT-X-MEDIA-SEQUENCE:1

#EXT-X-TARGETDURATION:5

#EXTINF:5,

ts file url

#EXTINF:5,

ts file url

#EXTINF:5,

ts file url

ts file url为ts视频文件的绝对路径

如你的ts文件请求地址为http://127.0.0.1/1.ts

则file url为/1.ts

#EXT-X-MEDIA-SEQUENCE:1

为分段序列

客户端会根据该序列决定下一个该播放那个TS文件

#EXT-X-TARGETDURATION:5

为分段视频长度

建议3 - 10秒之间

时间越短播放延迟越小

理论延迟应为分段长度

但实际上本人测试发现2秒钟分段的TS文件延迟时间为10秒左右

可能是客户端有缓存或者是其他情况 具体的正在详细探究

5、HTTP传输协议

这个就好说了 吧里基本上都是写web的 随便找一个就可以

我采用的是jetty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值