Darwin Streaming Server安装教程

来源:互联网 发布:小甲鱼python电子书 编辑:程序博客网 时间:2024/04/27 17:31
1          Darwin Streaming Server简介

Darwin Streaming Server 是苹果公司推出的开放源码、跨平台多媒体串流服务器, 提供音乐 (mp3) 与影音 (3gp、mp4、mov) 串流播放功能, 可由 Windows Media Player、VLC media player、QuickTime Player 等播放软件收听(看)

 

1.1  下载并安装 Darwin Streaming Server

http://dss.macosforge.org/downloads/DarwinStreamingSrvr5.5.5-Linux.tar.gz

 

 

1.2  Darwin Streaming Server 官方网页

http://dss.macosforge.org/

 

2          安装过程2.1  安装命令

tar zxf DarwinStreamingSrvr5.5.5-Linux.tar.gz

cd DarwinStreamingSrvrlinux-Linux

./Install

Please enter a new administrator user name: admin

Please enter a new administrator Password: your_password

 

2.2  查看是否安装成功

id qtss

uid=501(qtss)  gid=502(qtss)  groups=502(qtss)

 

ps aux | grep Darwin

root ... ... ... /usr/local/sbin/DarwinStreamingServer

qtss ... ... ... /usr/local/sbin/DarwinStreamingServer

 

netstat -ntulp | grep Darwin

tcp 0.0.0.0:8001

tcp 0.0.0.0:554

tcp 0.0.0.0:7070

udp 127.0.0.1:6970

udp 192.168.0.1:6970

udp 127.0.0.1:6971

udp 192.168.0.1:6971

udp 127.0.0.1:6976

udp 127.0.0.1:6977

udp 127.0.0.1:6978

udp 127.0.0.1:6979

 

 

2.3  启动命令

启动服务(安装已经启动,不需要再启动)

启动 Darwin Streaming Server

/usr/local/sbin/DarwinStreamingServer

启动 Web 管理接口 (tcp port 1220) (安装已经启动,不需要再启动)

/usr/local/sbin/streamingadminserver.pl

 

2.4  关闭命令

Kill -9 Darwin Streaming Server进程

 

3          管理界面配置3.1  连入管理接口进行设定

开启浏览器, 连入 http://darwin.streaming.server:1220/

第一次进入管理接口, 需进行以下设置:

MP3 Broadcast Password: 设定 MP3 广播密码

Secure Administration: Web 管理接口是否启用 SSL 安全联机 (视需求,本次设置为否)

Media Folder: 设定多媒体文件存放路径 (默认 /usr/local/movies,本次设置为默认,如若修改路径不会对目标目录产生影响)

Streaming on Port 80: 是否以 80 port 传送串流数据 (视需求,本次设置为否)

 

 

3.2  建立 MP3 音乐串流

支持格式: mp3

点选 Playlists → New MP3 Playlist

Name: myaudio

Mount Point: /myaudio

Play Mode: Sequential Looped (依序循环播放)

将 Available Content 里的 MP3 档案拖曳到右边窗格 (Items in This Playlist),

最后按 Save Changes 储存设定

Available Playlists → myaudio → Status 点选播放按钮即开始放送

 

3.3  建立视讯串流

支持格式: 3gp、mp4、mov

点选 Playlists → New Media Playlist

Name: myvideo

Mount Point: myvideo.sdp

Play Mode: Sequential Looped (依序循环播放)

将 Available Content 里的多媒体档案拖曳到右边窗格 (Items in This Playlist),

最后按 Save Changes 储存设定

Available Playlists → myvideo → Status 点选播放按钮即开始放送

 

 

3.4  收听及推流播放方式

以 MP3 播放软件收听 MP3 音乐串流

档案 → 开启 URL → http://darwin.streaming.server:7070/mp3_mount_point

以 QuickTime Player 收看影音串流

File → Open URL → rtsp://darwin.streaming.server/playlist (观看播放列表提供的内容)

File → Open URL → rtsp://darwin.streaming.server/filename.mov (指定观看某一支档案)

 

4          安装是报错排除方法

 

4.1  出现警告信息(Movie file does not match SDP)

 

  - Movie set up failed: Movie file does not match SDP.
   (file: /usr/local/movies/sample_300kbit.mov err: 16 Movie file does not match SDP.)
  - PlaylistBroadcaster: Warning, movie tracks do not match the SDP file.

 

4.2  出现错误信息(error: 15)

 

There is (1) movie in the Playlist.
  
  Ref Movie = /usr/local/movies/sc2.mp4
  SDP file = /var/streaming/playlists/test4/test4.sdp
  - SDP generation failed (error: 15).
  Warnings: 0
  Errors: 1

4.3  警告信息与错误信息解决方法

格式不能正常播放出现报错

问题: 自行转成 .mov .mp4 的档案无法串流播放 (产生 ERROR 15 错误)

原因: .mov 档案中没有指定 hint track

排除方法: 以 mp4creator (mpeg4ip 里的程序) 赋予 hint track

操作环境: CentOS 5

4.3.1        安装 ffmpeg (转档工具 & codecs)

参考ffmpeg安装文档

 

4.3.2        安装 mpeg4ip (用来赋予 hint track)

mpeg4ip.rpm 下载网页

rpm -ivh --nodeps --force mpeg4ip-1.5.0.1-1.fc4.rf.i386.rpm

4.3.3        转档 (若已用其他转档工具则跳过此步骤)

ffmpeg -i input.wmv -f mov output.mov

4.3.4        赋予 hint track

mp4creator -hint=1 output.mov

mp4creator -hint=2 output.mov

hint track 只要各执行一次就可以了, 不用理会这个错误讯息:
MP4ERROR: MP4File::FindIntegerProperty: no such property - moov.trak[1]...
执行多次反而会破坏这个档案

以上产生的 output.mov 即可由 Darwin Streaming Server 正常放送

 

 

 

5          使用方法

 

 

5.1  通过页面方式修改

登陆页面地址为

http://darwin.streaming.server:1220/

 

 

5.2  通过服务器代码文件修改5.2.1        播放列表位置在服务器的

/var/streaming/playlists

5.2.2        影音文件目录在(可自定义)

/usr/local/movies

 

5.2.3        视频播放列表目录文件(假设视频列表testvideo)

testvidoe.config testvidoe.current testvidoe.err testvidoe.log testvidoe.log.log testvidoe.pid testvidoe.playlist testvidoe.sdp testvidoe.upcoming

 

testvidoe.config

playlist_file /var/streaming/playlists/testvidoe/testvidoe.playlist

play_mode sequential_looped

destination_ip_address 192.168.2.9

#broadcast_name "testvidoe"

sdp_file "/var/streaming/playlists/testvidoe/testvidoe.sdp"

destination_sdp_file "testvideo.sdp"

broadcast_SDP_is_dynamic enabled

logging enabled

log_file /var/streaming/playlists/testvidoe/testvidoe.log

broadcaster_name "sharera"

broadcaster_password "sharera"

pid_file "/var/streaming/playlists/testvidoe/testvidoe.pid"

testvidoe.playlist

*PLAY-LIST*

#

# Created by QTSS Admin CGI Server

#

"/usr/local/movies/sample_300kbit_1.mov" 5

 

testvidoe.sdp

v=0

o=QTSS_Play_List 2814913176 1857554679 IN IP4 192.168.2.9

s=testvidoe

c=IN IP4 192.168.2.9

t=0 0

a=x-broadcastcontrol:RTSP

m=video 0 RTP/AVP 96

a=control:trackID=1

a=rtpmap:96 MP4V-ES/30

a=mpeg4-esid:1

a=fmtp:96 profile-level-id=1; config=000001b001000001b58913000001000000012000c48d8800f50be43c1463000001b24c61766335322e38332e30;

m=audio 0 RTP/AVP 97

a=control:trackID=2

a=rtpmap:97 mpeg4-generic/32000/2

a=mpeg4-esid:2

a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1290; SizeLength=13; IndexLength=3; IndexDeltaLength=3;

5.2.4        mp3播放列表目录文件(假设mp3列表为testmp3)

testmp3.config

testmp3.current

testmp3.err

testmp3mp3_broadcast.log

testmp3.pid

testmp3.playlist

testmp3.upcoming

 

testmp3.config

playlist_file /var/streaming/playlists/testmp3/testmp3.playlist

play_mode sequential_looped

destination_ip_address 192.168.2.9

destination_base_port 554

broadcast_mount_point "/test_mp3"

broadcast_name "test_mp3"

broadcast_sample_rate -1

broadcast_genre Pop

working_dir "/var/streaming/playlists/testmp3/testmp3"

logging enabled

broadcast_password "sharera"

pid_file "/var/streaming/playlists/testmp3/testmp3.pid"

 

testmp3.playlist

*PLAY-LIST*

#

# Created by QTSS Admin CGI Server

#

"/usr/local/movies/sample.mp3" 5

"/usr/local/movies/nidexuanze.mp3" 5

 

5.3  直接推流视频文件5.3.1        视频文件直接推流

视频目录目录地址/usr/local/movies

把视频文件存放到目录下,则rtsp推流地址为rtsp://darwin.streaming.server/文件名,不需要添加播放列表,可直接播放.



下面探讨一下基于Darwin Streaming Server的RTSP服务解决方案

服务器环境是redhat as4,服务器本来是一台流媒体服务器,上面已经部署了ffmpeg和mencoder等转换工具

 

 

 

首先,下载Darwin Streamin Server,安装过程参加这个文章

http://cha.homeip.net/blog/archives/2007/06/darwin_streamin.html

简单的说,就是

# wget http://developer.apple.com/opensource/server/streaming/index.html

# tar zxf DarwinStreamingSrvr5.5.5-Linux.tar.gz

# cd DarwinStreamingSrvrlinux-Linux

# ./Install

然后按提示操作,输入管理的用户名和密码,等……安装完成

嗯,安装完成会自动启动服务

可以通过访问 http://ip:1220/来进入管理界面

 

默认的资源文件夹在/usr/local/movies,将流媒体文件放入此目录,就可以通过 rtsp://ip/文件名 来访问了

windows下面推荐用vlc player来测试流媒体……绿色软件,啧啧,比quicktime和realplayer好多了

不是所有的视频文件都可以用Darwin来Streaming,根据FAQ,它只支持

QuickTime Movie (MOV),  MPEG-4 (MP4), and 3GPP (3GP) “hinted” files.

也就是说要有hint track的视频文件.

Hint Track是QuickTime定义的一种索引轨道,我们可以认为就是索引

嗯,准备用的流媒体文件是3gp格式(aac+mp4),默认不带hint track,需要用一个工具处理,加上hint track

 

 

这个伟大又变态的工具就是mpeg4ip了,这个东西现在还有编译成功,只能用一个rpm包顶着,郁闷

从rpm安装mpeg4ip也很简单

由于网上提供的mpeg4ip的rpm包不太完整,首先你需要libmp4v2,这个本来包含在mpeg4ip源代码里面的,嗯,如果有rpm就好了,我懒得找,直接从源码编译

下载 http://resare.com/libmp4v2/dist/libmp4v2-1.5.0.1.tar.bz2, 解压,编译,安装

然后到 http://dries.ulyssis.org/apt/packages/mpeg4ip/info.html 下载 mpeg4ip-1.5.0.1-1.fc4.rf.i386.rpm,强制安装

网上说的方法无效

# rpm -ivh –nodeps –force mpeg4ip-1.5.0.1-1.fc4.rf.i386.rpm 安装提示参数错误

完工

转换视频并加索引

# ffmpeg -i sample.wmv -acodec libfaac -vcodec mpeg4 sample.3gp
# mp4creator -hint=1 sample.3gp
# mp4creator -hint=2 sample.3gp

 

编译安装mpeg4ip一直出错, 可能是ffmpeg版本问题,过几天有空继续研究mpeg4ip的编译

原创粉丝点击