`
qn_lf
  • 浏览: 126104 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ubuntu下架设流媒体服务器的基本流程 转载

阅读更多

目前主流的流媒体服务器有微软的windows media server、RealNetworks的Helixserver和苹果公司的Darwin Streaming Server. 微软的windows media server只能在windows2000 server和windows 2003 server下使用,不在考虑之列。RealNetworks的Helixserver是一款跨平台的软件,功能也很强大,但并非免费软件,只能cut掉 了。苹果公司的Darwin StreamingServer是一款跨平台的开源流媒体服务器软件,由苹果公司出品,其品质不用怀疑了,而且还免费。所以在架设流媒体服务器时就选择了 DarwinStreaming Server.

Darwin Streaming Server使用标准的实时传输协议/实时流媒体协议(RTP/RTSP),通过互联网实时传送媒体。Darwin Streaming Server 也能提供对传送 H.264、MPEG-4 和3GPP 文件的固有支持——因此,你可以在 Mac 和 Linux、Windows上的任何与标准兼容的媒体播放器上执行你的内容,当然还包括手机和接收盒等各种兼容标准的设备。不仅如此,它还允许你使用 Icecast兼容协议,通过 HTTP 传送标准的 MP3 文件到 MP3 客户端。

一、软件安装

首先上http://dss.macosforge.org/下载源代码,当前最新版本为6.0.3,但我选择了5.5.5版本,因为这个版本提供 了针对linux的安装脚本。下载DarwinStreamingSrvr5.5.5-Linux.tar.gz文件后,解压缩,然后运行如下命令安装:

 

  1. ~/tmp/DarwinStreamingSrvrlinux-Linux$ chmod +x Install   
  2. ~/tmp/DarwinStreamingSrvrlinux-Linux$ sudo ./Install  
  3. [sudo] password for keensword007:   
  4. Installing Darwin Streaming Server  
  5. Checking for and Killing currently running Darwin Streaming Server  
  6. Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html  
  7. Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html  
  8. Removing previous versions of Darwin Streaming Server  
  9. Backing up previous config files  
  10. Inserting path to perl into scripts..  
  11. Creating unprivileged user to run the  server  =  "qtss" .  
  12. copying DarwinStreamingServer to /usr/local/sbin/DarwinStreamingServer  
  13. copying PlaylistBroadcaster to /usr/local/bin/PlaylistBroadcaster  
  14. copying MP3Broadcaster to /usr/local/bin/MP3Broadcaster  
  15. copying qtpasswd to /usr/local/bin/qtpasswd  
  16. creating /usr/local/sbin/StreamingServerModules directory  
  17. copying createuserstreamingdir to /usr/local/bin/createuserstreamingdir  
  18. creating /etc/streaming directory  
  19. Generating a new prefs file at /etc/streaming/streamingserver.xml  
  20. INFO: Module Loaded...QTSSRefMovieModule [dynamic]  
  21. INFO: Module Loaded...QTSSHomeDirectoryModule [dynamic]  
  22. INFO: Module Loaded...QTSSFileModule [static]  
  23. INFO: Module Loaded...QTSSReflectorModule [static]  
  24. INFO: Module Loaded...QTSSRelayModule [static]  
  25. INFO: Module Loaded...QTSSAccessLogModule [static]  
  26. INFO: Module Loaded...QTSSFlowControlModule [static]  
  27. INFO: Module Loaded...QTSSPosixFileSysModule [static]  
  28. INFO: Module Loaded...QTSSAdminModule [static]  
  29. INFO: Module Loaded...QTSSMP3StreamingModule [static]  
  30. INFO: Module Loaded...QTSSAccessModule [static]  
  31. WARNING: No users file found at /etc/streaming/qtusers.  
  32. WARNING: No groups file found at /etc/streaming/qtgroups.  
  33. chown: invalid user: `qtss'  
  34. copying relayconfig.xml-Sample to /etc/streaming/relayconfig.xml-Sample  
  35. copying qtusers to /etc/streaming/qtusers  
  36. chown: invalid user: `qtss'  
  37. copying qtgroups to /etc/streaming/qtgroups  
  38. chown: invalid user: `qtss'  
  39. copying readme.txt to /var/streaming/readme.txt  
  40. copying 3rdPartyAcknowledgements.rtf to /var/streaming/3rdPartyAcknowledgements.rtf  
  41. creating /usr/local/movies directory  
  42. creating /var/streaming/playlists directory  
  43. copying sample_100kbit.mov into /usr/local/movies/sample_100kbit.mov  
  44. copying sample_300kbit.mov into /usr/local/movies/sample_300kbit.mov  
  45. copying sample_100kbit.mp4 into /usr/local/movies/sample_100kbit.mp4  
  46. copying sample_300kbit.mp4 into /usr/local/movies/sample_300kbit.mp4  
  47. copying sample.mp3 into /usr/local/movies/sample.mp3  
  48. copying sample_50kbit.3gp into /usr/local/movies/sample_50kbit.3gp  
  49. copying sample_h264_100kbit.mp4 into /usr/local/movies/sample_h264_100kbit.mp4  
  50. copying sample_h264_300kbit.mp4 into /usr/local/movies/sample_h264_300kbit.mp4  
  51. copying sample_h264_1mbit.mp4 into /usr/local/movies/sample_h264_1mbit.mp4  
  52. copying StreamingLoadTool to /usr/local/bin/StreamingLoadTool  
  53. copying streamingloadtool.conf to /etc/streaming/streamingloadtool.conf  
  54. copying streamingadminserver.pl into /usr/local/sbin/streamingadminserver.pl  
  55. copying Admin HTML to /var/streaming/AdminHtml directory  
  56. chown: invalid user: `qtss'  
  57. chown: invalid user: `qtss'  
  58. chown: invalid user: `qtss'  
  59. Launching streamingadminserver.pl  
  60. Cannot switch to group qtss  
  61. Installation Complete  
  62. Darwin Streaming Server Setup  
  63. Inorder to administer the Darwin Streaming Server you must 
    create anadministrator user [Note: The administrator user name 
    cannot containspaces, or single or double quote characters, and 
    cannot be more than255 characters long].  
  64. Please enter a new administrator user name: keensword007  
  65. Youmust also enter a password for the administrator user [Note: 
    Theadministrator password cannot contain spaces, or quotes, 
    either singleor double, and cannot be more than 80 characters long].  
  66. Please enter a new administrator Password:   
  67. Re-enter the new administrator password:   
  68. Adding userName keensword007  
  69. chown: invalid user: `qtss'  
  70. Setup Complete! 

从提示信息上看,应该是qtss用户未能创建造成的,查看了一下Install脚本,发现创建用户的脚本是这样的:

 

  1. if [ $ INSTALL_OS  =  "Linux"  ]; then  
  2. /usr/sbin/useradd -M qtss  >  /dev/null 2 > &1  
  3. else  
  4. /usr/sbin/useradd qtss  >  /dev/null 2 > &1  
  5. fi 

但是useradd并没有-M的命令行参数,应该为-m,将-M修改成-m后,再执行Install脚本,安装成功。此时服务已经启动,可以使用如下命令确定服务是否已经启动:

 

  1. ~/tmp/DarwinStreamingSrvrlinux-Linux$ ps aux | grep Darwin  
  2. root 10963 0.0 0.0 4368 456 ? Ss 21:23 0:00 /usr/local/sbin/DarwinStreamingServer  
  3. qtss 10964 0.0 0.0 38032 2456 ? Sl 21:23 0:00 /usr/local/sbin/DarwinStreamingServer  
  4. 1000 11003 0.0 0.0 3004 760 pts/1 R+ 21:24 0:00 grep Darwin 

如果希望机器启动后自动运行流媒体服务器,输入如下命令:

 

  1. ~/tmp/DarwinStreamingSrvrlinux-Linux$ cd /etc/rc3.d  
  2. /etc/rc3.d$ sudo ln -s /usr/local/sbin/streamingadminserver.pl s20streamingserver 

如果要手动启动服务,运行streamingadminserver.pl程序。

二、配置

Darwin Streaming Server采用了web管理模式,可以在本机的浏览器中输入:http://127.0.0.1:1220 。然后输入在安装流媒体服务器时设置的用户名称和密码。

第一次登录时,接着会出现设置向导。首先是一个MP3 广播密码设置对话框,在其“New Password”和“Re-enter New Password”输入自己想设置的密码。然后点击“Next”按钮继续。

为了保证数据传输的安全需要您可以在这里钩选“Secure Administration(SSL)”(安全管理),前提是您已经有了可用的SSL 证书。一般可以不选。直接点击“Next”按钮继续。

接下来要设置的是媒体文件的存放主目录。这个目录要记住,在服务器中以后添加媒体文件时就要加在这个目录中。设置完毕点击“Next”按钮继续。

最后设置默认传输端口,如果设置了“Streaming on Port80”则此服务器的访问可以突破防火墙,但如果您在此服务器上同时建有Apache 等占用80端口的服务。则建议您不要设置此端口。这里如果您没有什么特殊要求的话,使用缺省配置即可。直接点击“Finish”按钮。

自此流媒体服务器的设置就告一段落,如果您要作进一步的设置,可以通过此管理页面,在其左侧点击相应的选项,进行设置。也可以通过此对前面所做的设置进行更改。

三、在线播放

流媒体服务器部署完毕后,我们就可以使用自己喜欢的播放器在线播放了。例如,在本机上打开Movie Player, 在地址栏输入:

 

  1. rtsp://127.0.0.1/sample_100kbit.mp4 

就可以看到一段QuickTime演示视频。

分享到:
评论

相关推荐

    Ubuntu下架设流媒体服务器的基本流程

    ### Ubuntu下架设流媒体服务器的基本流程 #### 一、概述 随着互联网技术的发展,流媒体服务成为一种广泛应用于视频会议、在线教育、娱乐直播等多个领域的关键技术。在众多流媒体服务器解决方案中,苹果公司开发的...

    基于ubuntu下海康摄像头设备网络SDK开发

    在本文中,我们将深入探讨如何在Ubuntu操作系统上利用QT5.7框架和海康摄像头设备的网络SDK进行开发。这个项目旨在实现摄像头的预览、抓拍、人脸检测以及背图上传等功能。为了达成这些目标,开发者需要具备对QT GUI...

    decklink ubuntu系统sdk

    总的来说,"decklink ubuntu系统sdk"是一个允许开发者在Ubuntu Linux环境下利用DeckLink硬件进行视频处理和流媒体应用开发的强大工具。通过深入学习DeckLink API和结合FFmpeg,开发者可以构建出高效、灵活且专业级的...

    毕业设计-androidliunx平台网络流媒体播放器的设计.doc

    对于网络流媒体播放器的开发,开发者利用了Android的开源特性,采用Java编程语言,并借助Eclipse集成开发环境进行程序编写。 Android平台上的音乐流媒体播放器设计涵盖了多个关键组件和功能。首先,播放器需要具备...

    ubuntu11.10安装opencv2.4.1

    安装完成后,你可以通过编写简单的程序来测试OpenCV是否成功安装,如显示一幅图像或进行基本的图像处理操作。在Ubuntu 11.10中,OpenCV的使用将使开发者能够利用其丰富的功能,进行图像识别、对象检测、视频分析等...

    Linux+Ubuntu+QT视频录制与保存,tcp通信。

    1. **Linux Ubuntu**: Linux Ubuntu是一个基于Debian的自由开源操作系统,广泛应用于服务器、桌面和开发环境中。它提供了一个稳定、安全且用户友好的工作环境,支持各种编程语言和工具,对于开发来说是一个理想的...

    QT+ffmpeg+多摄像头+实时(Ubuntu直接可用)(Windows需要替换ffmpeg编解码库)

    在描述中提到,该系统允许用户设置RTSP地址,这意味着它可以灵活地接入不同来源的视频流,无论是本地网络中的摄像头还是远程服务器提供的视频源。此外,多线程的使用使得程序能够在处理多个视频流的同时保持响应速度...

    live555.tar.gz

    【标题】"live555.tar.gz"是一个包含live555流媒体库源代码的压缩文件,适用于Ubuntu操作系统,并且使用了CDT(C++ ...无论是构建自定义的流媒体服务器还是开发复杂的客户端应用,这个工具包都是一个强大的起点。

    基于Qt和openCV人脸识别程序(linux-ubuntu系统下).zip

    "基于Qt和openCV人脸识别程序(linux-ubuntu系统下)"是一个使用C++编程语言,结合Qt框架和openCV库开发的人脸识别应用程序。这个项目特别指出是在Linux Ubuntu操作系统环境下运行,这意味着它可能需要利用Ubuntu的...

    超低延迟RTSP/RTMP/HTTP播放器实测小于100ms

    总之,超低延迟播放器通过结合FFmpeg的强大功能和精心的优化策略,实现了在RTSP、RTMP和HTTP协议下的小于100毫秒的延迟,为实时通信和流媒体应用提供了卓越的用户体验。在开发此类播放器时,理解不同协议的特性和...

    搭建ffmpeg直播服务器flv.tar.gz.zip

    首先,我们需要准备的是一个支持流媒体服务的 Web 服务器,例如 Nginx。Nginx 是一款高性能的 HTTP 和反向代理服务器,同时也是一个邮件代理服务器。在这里,我们将利用 Nginx 的 RTMP 模块来支持 FLV 流的推送和...

    Gstreamer 处理usb摄像头(V4l2)数据(视频流)

    Gstreamer是一个强大的开源多媒体框架,它允许开发者处理各种类型的媒体数据,包括音频、视频以及元数据。在Linux系统上,特别是在嵌入式设备如arm架构的设备中,Gstreamer广泛用于处理USB摄像头(V4L2)的视频流。...

    ijkplayer 支持https和所有格式的库

    4. **编译与配置**:在Ubuntu环境下编译ijkplayer,意味着开发者可以在Linux服务器或者桌面环境中进行二次开发和自定义配置。这为开发者提供了更多的灵活性,可以根据实际需求调整ijkplayer的功能和性能。 5. **API...

    RED5安装与配置详解

    Red5是一个开源的流媒体服务器平台,它提供了与Macromedia公司的Flash Media Server(FMS)相似的功能,主要支持基于Adobe Flash平台的实时通信应用,如音频、视频流,以及共享对象通信等。Red5利用Java语言开发,...

    linux 电影播放器

    2. **流媒体支持**:除了播放本地文件,"realplay"还可以连接到流媒体服务器,实时播放在线内容。 3. **界面与控制**:虽然界面相对简单,但提供了基本的播放、暂停、快进、快退等控制功能。 4. **音视频设置**:...

    x264实时编码摄像头流到H.264格式

    在现代多媒体技术中,视频编码扮演着至关重要的角色,特别是在实时通信和流媒体服务中。X264是一个开源的库,专门用于实现高效的H.264视频编码。本文将详细探讨如何利用X264实时编码摄像头流并将其转化为H.264格式。...

    linux下qt5中调用ffmpeg测试程序

    在Linux环境下,Qt5是一个强大的跨平台应用开发框架,它提供了丰富的图形用户界面(GUI)组件和工具,而FFmpeg则是一个开源的多媒体处理库,支持音频、视频的编码、解码、转换和流媒体功能。将FFmpeg与Qt5结合,可以...

    ijkplayer 0.7.8.1 编译好的so文件

    这个框架在Android平台上广泛使用,提供了强大的音视频播放功能,支持多种编码格式和流媒体协议。ijkplayer 0.7.8.1是该框架的一个版本,包含了在Ubuntu操作系统上编译好的动态链接库(so文件),这是专门为Android...

    WebRTC零基础开发者教程

    - 使用 STUN 和 TURN 服务器来帮助发现和中继媒体流。 - 利用 ICE 协议自动发现最优路径。 - **3.1.3 多媒体处理:** - 音视频编解码、回声消除、噪声抑制等。 - 使用 WebRTC 提供的 API 如 `RTCPeerConnection`...

    ffmpeg6.0 android 编译库

    “pulse音频采集”则表示 FFmpeg 这个构建集成了 PulseAudio,这是一种跨平台的音频服务器技术,用于管理音频流。在 Android 上,PulseAudio 可能被用来提供更灵活的音频输入和输出控制,例如在多个应用程序之间共享...

Global site tag (gtag.js) - Google Analytics