最近由于公司做的一个Android项目,需要上传视频到服务器,实现上下传以及播放,涉及到视频的手机终端播放流媒体视频,所以本人搭配了一个达尔文流媒体服务器,本文还参考了:
百度文库:http://wenku.baidu.com/view/eca0cd5c3b3567ec102d8aef.html,以及网址http://www.devdiv.com/home.php?mod=space&uid=74824&do=blog&id=3491,
http://www.cnblogs.com/zhangweia/archive/2010/08/27/1810030.html

A。首先安装 DDS,即达尔文流媒体服务器:

1.从:http://dss.macosforge.org/downloads/DarwinStreamingSrvr5.5.5-Windows.exe (只有5.5的) 这里下载 DSS for Windows
2.下载后解压,会看到一个 Install.bat 的文件,直接运行它就会安装到 C:\Program Files\Darwin Streaming Server\ 并还会在 系统服务里面加一个号 Darwin Streaming Server 的服务程序,这个就是 DSS 的 RTSP 服务器。
3.接下来你要安装 Perl 解释器,可以从 http://www.perl.org/get.html 这里下载到,然后安装
4.装好 Perl 后就可以在 CMD 下面使用 perl **.pl 来运行程序了
5.接下来在CMD下面做如下操作:
o# 根据提示创建 WebAdmin 的账号和密码
oC:\Program Files\Darwin Streaming Server>perl WinPasswdAssistant.pl
o# 运行 WebAdmin 管理器
oC:\Program Files\Darwin Streaming Server>perl streamingadminserver.pl
o# 现在可以打开 http://127.0.0.1:1220/ 来对 DSS 服务器进行管理了
6.在 DSS WebAdmin 里面修改 General Settings -> Media Directory ,将它改为你的 Media 目录,当然也可以使用默认的,把自已的视频文件放到 C:\Program Files\Darwin Streaming Server\Movies 里面
7.现在你可以使用 QuickTime 或 VLC 打开 rtsp://127.0.0.1:80/sample_100kbit.mp4 来测试视频了,(注 sample_100kbit.mp4 是 DSS 5.5.5 自带的视频)

B。将自己的视频转换为流媒体格式
一开始,我安装了流媒体之后,弄了很久,发现播放DDS自带的测试视频可以播放正常,但是发现只要是自己用手机拍摄的视频放到流媒体服务器上,即使是同样的后缀格式(如同是.3gp,.mp4)都播放不了,这可急了我了,网上查了很多,都没找到相关的解释,后来想想是不是视频的编码不相同,后来使用了视频编码查看器来对比了下,发现也没什么不同,最后找到了上面第三个参考网址里有解释是因为流媒体服务器只识别包含RTSP信息头的视频,需要在视频的头部加入了RTSP信息之后才可以被DSS识别,所以要使用工具把自己的视频转化为带
RTSP信息头的视频格式;下面使用mp4box.exe来转化

下载到到解压出后会有个叫 mp4box.exe ,用它在命令行下面运行
C:\Program Files\Darwin Streaming Server\Movies>mp4box mymovie.mp4 -hint
出现结果:
Hinting file with Path-MTU 1450 Bytes
Hinting track ID 201 - Type "mp4v:mp4v" (MP4V-ES) - BW 33 kbps
Hinting track ID 101 - Type "mp4a:mp4a" (mpeg4-generic) - BW 64 kbps
Saving mymovie.mp4: 0.500 secs Interleaving

然后,再用KMPlayer.exe 打开 rtsp://127.0.0.1:80/test.mp4 播放!用智能手机,可以直接用手机打开这个地址试一下。

在java代码中可以直接使用代码调用mp4box.exe来转化,需要把 mp4box.ex相关工具文件直接放到流媒体服务器中的视频目录下,相关转化代码如下:

/**
* 转化为RTSP格式的视频
*
* @param fileName
*/
public void changeToRtsp(String fileName) {
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec("D:\\tomcat\\webapps\\vmadmin\\vedios\\MP4box.exe D:\\tomcat\\webapps\\vmadmin\\vedios\\" + fileName + " -hint");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String str;
while ((str = bufferedReader.readLine()) != null)
System.out.println(str);
int result = p.waitFor();
System.out.println("thread run result ------------------ : "
+ result);

} catch (Exception e) {
System.out.println("Error   exec   notepad ");
}
finally{
p.destroy();
}
}

其中fileName即为流媒体服务器视频目录中的文件名称,转化后就可以使用手机终端调用系统视频播放器输入:rtsp://127.0.0.1:80/****.mp4类似地址来播放了。

达尔文流媒体服务器搭配相关推荐

  1. 达尔文流媒体服务器(Darwin Streaming Server)(DSS)并发性能测试报告

    [转自]http://blog.csdn.net/xiejiashu/article/details/40919565 原标题:<Darwin Streaming Server性能测试报告> ...

  2. 服务器是什么系统_为什么视频监控系统搭建,要使用流媒体服务器做视频分发?...

    众所周知,TSINGSEE有很多视频流媒体平台和辅助分发的组件,例如EasyNVR.EasyDSS.EasyGBS均是流媒体平台,而EasyRTMPLive则是负责拉转推的推流网关. 而对于流媒体服务 ...

  3. EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体服务器,EasyPlayer手机播放器...

    在不断进行EasyDarwin开源流媒体服务器的功能和性能完善的同时,我们也配套实现了目前在安防和移动互联网行业比较火热的移动端手机直播方案,主要就是我们的 EasyPusher直播推送项目 和 Ea ...

  4. 监控系统为什么要加流媒体服务器,视频监控系统为什么要使用流媒体服务器做视频分发?...

    原因解析: 1.直播视频的格式多种多样,不管是移动端还是PC端都不可能支持这么多样化格式的视频,因此流媒体服务器的首要任务就是将视频更改为统一的格式,从而解决播放器格式不统一的问题,在不改变原视频的画 ...

  5. 【流媒体】视频点播流媒体服务器调研

    需要选型一个流媒体服务器,故搜罗网上资料,整理出以下内容供参考 出处皆已标注链接 目录 流媒体协议 直播流媒体协议 理解RTMP.HttpFlv和HLS的正确姿势 流媒体文件支持格式 市面上主流的流媒 ...

  6. 视频监控系统搭建为什么要使用流媒体服务器做视频分发?

    大家知道TSINGSEE团队有很多视频流媒体平台和辅助分发的组件,我们研发的EasyNVR.EasyDSS.EasyGBS是流媒体平台,而EasyRTMPLive就是负责拉转推的推流网关,当然还有很多 ...

  7. 用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器

    http://itindex.NET/detail/48702-nginx-rtmp-http 一.流媒体播放方式 1.  HTTP方式 这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载 ...

  8. Windows Server 2008 流媒体服务器--创建广播站点

    创建广播站点 如果您希望创造与观看电视节目类似的体验,则最适于从广播发布点传输内容 -- 内容是在源或服务器上控制和传输的.这种类型的发布点最常用于从编码器.远程服务器或其他广播发布点传递实况流.当客 ...

  9. 如何自己实现一套EasyNVR这样的无插件流媒体服务器

    EasyNVR流媒体解决方案 EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera.NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNV ...

最新文章

  1. 使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据
  2. R语言包_lubridate
  3. android viewpager 嵌套fragment,Android ViewPager+Fragment多层嵌套(使用问题处理)
  4. Java中的Split方法不适用于一个句号
  5. 16windows_16_combo组合框
  6. java 代码发送邮件添加附件_Java实现163邮箱发送邮件到QQ邮箱
  7. redis插槽(slot)分配详解(集群动态新增或删除结点)
  8. python代码_Python代码的优化技巧
  9. java中Cookie类详解
  10. 2021-11-19 工作记录--apiCloud-YDUI下拉框
  11. 以计算机网络为中介的人际传播,人际传播在传媒中的运用
  12. 第一节、同步回调和异步回调?
  13. 用了 VS Code、IDEA 等十几款编辑器后,我总结出优秀编辑器的特质
  14. 文件上传黑名单和白名单校验
  15. 基于CNN的Landsat 8全色与多光谱图像融合的泛锐化方法
  16. 【CSS】总结前端三剑客之一(CSS基础)
  17. python批量处理网络设备的巡检文本文件,提取关键指标写入表格或数据库
  18. runoob爬取python模块实例
  19. springboot切面编程基础实践
  20. SpringBoot+微信支付

热门文章

  1. 2012多校联盟第二场1009 还是BFS
  2. ACM DP FatMouse and Cheese
  3. DLL文件是怎么产生的,DLL文件是什么,DLL文件有什么用
  4. 3Blue1Brown-线性代数的本质
  5. 计算机软件著作权登记办法(2002)
  6. [288]关于MySQL的1064错误
  7. 职场丨女生:啊啊啊,明天面试穿什么?【带图】
  8. java/php/net/python西石大快递代取系统设计
  9. dd wrt linux内核,可以刷DD-WRT(linux核心)的无线路由器_网海拾贝
  10. 洛谷3258 松鼠的新家