android推送实时视频流到darwin流媒体服务器的思路
来源:互联网 发布:anywhere软件 编辑:程序博客网 时间:2024/05/15 10:17
http://blog.csdn.net/xiaoliouc/article/details/8723246
最近在弄android推送实时视频流到darwin流媒体服务器,现在的思路是在android端实现rtsp client,推送实时视频流到darwin,并在movies文件夹下生成sdp文件,vlc通过请求rtsp://darwin流媒体服务器ip:554/test.sdp的方式实现实时播放。
大致有3种思路:
第1种:移植live555到android上,借助live555里的代码:从本地读取mpg文件推送到darwin,改成从实时流推送到darwin服务器,大致思路是派生一个h264videoSource,从android录制获取流,通过pipe管道发送流,把该流推送到darwin。网上有个https://github.com/boltonli/ohbee/tree/master/android/streamer这个例子,但自己没测试通过,可以借鉴其实现思路。live555个人建议移植新版,可以参考文章 http://blog.csdn.net/baby313/article/details/7289489
第2种:网上有个rtspcamera的开源项目,源代码地址 :https://github.com/spex66/RTSP-Camera-for-Android ,可以学学该代码。个人推荐的是 由代码引申的这个帖子 https://github.com/spex66/RTSP-Camera-for-Android/issues/1 ,里面有人成功过实现把h264流推送到darwin流媒体服务器。个人尝试发现,这个代码也存在一些问题,表现在sdp文件生成的格式不对,通过修改代码SDP文件格式的形式,能出现效果,但延时很严重。
第3种:就是我以前研究的spydroid开源项目了,项目主页为http://code.google.com/p/spydroid-ipcamera/,可以在此https://github.com/fyhertz/spydroid-ipcamera下载最新源代码。我推荐的是这篇帖子http://code.google.com/p/spydroid-ipcamera/issues/detail?id=49&q=dss ,据说可以把h264实时流推送到darwin,但自己测试没通过。
其实第2种和第3种帖子的作者都是同一个,思路很好,可以供自己借鉴学习。
这段时间我才发现,使用rtsp协议实现音视频多路上传多路观看也有不错的解决方案,可能是我当初思维短路了,一直纠结服务器端口怎么处理的问题上,现在想想这不是问题。android端:实现rtsp client,以sdp文件名为标识,区分不同的流,把该流推送到darwin流媒体服务器,darwin流媒体服务器实现转播,并把接收的流通过ffmpeg转存为文件,其实可以参考vlc保存串流为文件的做法,vlc就可以通过请求darwin流媒体服务器实现多路观看的效果。
这些只是自己的一些初步思路,能不能行得通还待验证。
后记:在android推送实时视频流到darwin流媒体服务器 的过程中,需要解决防火墙的问题,毕竟在企业应用中,防火墙肯定说开启的。越过防火墙,按照官方的说法,在编译darwin源代码的时候添加代理服务器参数,并设置代理服务器。这个只是官方的说法,能不能真正解决没有尝试过。
- android推送实时视频流到darwin流媒体服务器的思路
- android推送实时视频流到darwin流媒体服务器的思路
- android推送实时视频流到darwin流媒体服务器的思路
- Darwin流媒体服务器的使用
- Linux下Darwin流媒体服务器的安装
- 使用ffmpeg推送视频流至流媒体服务器(c语言)
- Darwin streaming server 流媒体服务器
- Darwin流媒体服务器裁剪优化
- Darwin流媒体服务器源码分析
- Darwin流媒体服务器代码分析
- 建立darwin组播方式的流媒体服务器
- 基于Darwin实现的分布式流媒体直播服务器系统
- Darwin 流媒体服务器 Linux 下的安装及配置
- 基于Darwin实现的分布式流媒体直播服务器系统
- 关于SVN+sersync实时同步到远程服务器的思路
- Darwin Streaming Server中RTSP请求的处理过程(Darwin流媒体服务器解析2)
- ffmpeg 推送sdp到darwin
- Android MediaRecorder H264 编码实时视频流不能播放(readInt()值太大)以及如何将流实时上传到服务器的方法
- 第六周 项目3-人数不定的工资类
- Square Coins
- 看数据结构写代码(45) 拓扑排序
- ubuntu14.04中利用samba访问linux/windows共享目录的方法
- ollydbg设置断点总结
- android推送实时视频流到darwin流媒体服务器的思路
- 解决 pathForResource 返回 nil的问题
- 第六周项目4(1)-成员函数、友元函数和一般函数の区别
- thrift远程调用示例
- Cocos2D-X 项目发布到Android平台(一)Windows 上搭建Android ADT 开发环境
- POINTERS ON C (二)
- ZendFramework中render、_forward 、_redirect 的区别和传参
- jdk与jre的区别
- 第六周项目4(2)-成员函数、友元函数和一般函数の区别