手机流媒体服务器架设指南

本文介绍如何快速的搭建符合3GPP标准的流媒体服务器,并能用手机内置的播放器(如realplayer)进行点播。对目前主流的REAL  Helix和APPLE darwin分别介绍。

1. HELIX Streaming SERVER

先介绍REAL的helix streaming server,real提供了从采集编码(helix mobile  producer),流媒体播发(helix streaming server),到客户端播放(RealPlayer)的一整套方案,  可以使你很方便地搭建出一个手机流媒体服务器应用平台,而且支持的格式很全(包括Real Media , Windows Media,  QuickTime和MPEG4)。但由于license昂贵,不开源,所以helix对我们一般开发者而已 恐怕只适合做DEMO而已。  但这里还是简单介绍一下如何搭建HELIX服务器。

步骤1: 下载 Helix server 11 for Windows。  对应的客户端版本是RealPlayer 11.  安装程序。

   注意: 默认的RTSP端口是554, 默认的HTTP端口是80, 注意RTSP  554端口可能导致基于UDP的RTP包无法穿过运营商的防火墙。 RTSP PORT可以改大一些。 而SERVER如果服务器上运行了360安全卫士/迅雷等程序,  用户可能无法访问HELIX SERVER的HTTP服务,那可以把HTTP端口改成8080。

步骤2: 启动HELIX  SERVER,  把你要播发的文件拷贝到C:\Program Files\Real\Helix Server\Content路径下。  在浏览器输入rtsp://localhost/mpg4video.mp4 会启动RealPlayer播放。

步骤3:  如果你的电脑在内网的话, 需要设置静态端口映射或者DMZ(把本机完全暴露给广域网  以实现双向通信)。 当然你需要有路由器的管理员帐号:)。

步骤4:  路由器的外网IP经常变动 给客户端带来不便。  可以注册花生壳的域名服务,  在路由器的“动态DNS”里绑定你的花生壳帐号,这样你就可以使用类似lius1984.gicp.net这样的二级域名。

步骤5:  使用手机上自带的客户端进行点播,  输入类似rtsp://lius1984.gicp.net/test.3gp 这样的地址。 比如nokia内置的Realplayer, 如果wm手机  可以安装pvplayer 也可以观看。

注意事项:

1. 如果Realplayer无法连接或者提示“带宽不足”,说明你要点播的文件规格过高,无法在GPRS/EDGE下正常传输。  可以把文件的码率和帧率降低, 降到可以播放为止。

  2. 如果提示“MPEG-4 在被服务器发布以前必须被添加线索”, 说明测试文件没有被"流化"(建立索引), 解决方法是下载MP4BOX, 输入命令行 mp4box test.3gp -hint

2.  Darwin  Streaming SERVER

  Darwin是由APPLE推出的开源流媒体服务器,可扩展性好。  下面转载一个博友的文章,对于DARWIN的搭建和使用他已经介绍的十分详细。他的博客地址:http://huacnlee.com/blog/deploy-mobile-streaming-server-by-dss

最近研究了一下手机流媒体服务器的搭建,目的是实现通过3G手机看在线视频。

开始的时候研究了一下 Tudou手机版  ,可它哪并没有实现在线播放,因为视频地址是 http 协议的。参看了许多文章,终于了解到要用 RTSP 、MMS 这类。

RTSP 有一个来自 Apple 的开源项目:Darwin Streaming Server (DSS)

DSS 是跨平台的软件,可以在Linux、Mac OSX 或 Windows 等上面部署。

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

研究这个东西费了我好大的劲,一开始不知道视频还有专门针对流媒体的,以为只要用 MediaCoder 将视频转换成合适的格式,如:MPEG4 + AAC +  MP4 / MPEG4 + AAC + 3GP 就可以放了,反复放到服务器上面去测试,VLC 和 QuickTime 都没法打开。于是又用工具打开 DSS 自带的几个示例视频看它们的格式,反复转换试不同的视频和音频编码和外壳,还是不行...郁闷死我了

在 DSS 的邮件列表里面找了找相关的文章,发现有讲好像要用特别的工具对视频 hint一下,然后就可以在 RTSP 上面用了,说可以用 QuickTime Pro 或 VLC 来转换,我用 VLC 试了一下,文件菜单一个叫“流(s)”的功能,但试了还是不行,没看到文件有变动过。

于是再沿着 Hint 关键词在 Google 上面找文章,找到了 Nokia 论坛里面,看到这篇文章:http://discussion.forum.nokia.com/forum/showthread.php?t=125540里面有说可以使用 Mp4box 对视频进行 hint

于是我在 http://www.videohelp.com/tools/mp4box 这里下载到了mp4box (不用下载GUI的,直接用命令行操作就好了,只用一条命名)

下载到到解压出后会有个叫 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

流媒体视频就转换好了,现在文件大小就会有变动,变大了一些。

然后,再用 VLC 或  QuickTime 打开 rtsp://127.0.0.1:554/mymovie.mp4试试能否播放吧!如果你有3G手机,可以直接用手机打开这个地址试一下。

三、附加资源 Apple’s Darwin Streaming Server On Centos 5.2 (如何在 CentOS   5.2 下面安装DSS)

转帖:http://hi.baidu.com/sqjhjj/blog/item/f1fd55f12dea0ed30b46e04b.html

==============================================================================================

Darwin Streaming Server 安裝操作備忘

Darwin Streaming Server 安裝操作

Darwin Streaming Server蘋果公司推出的開放源碼、跨平台多媒體串流伺服器, 提供音樂 (mp3) 與影音 (3gp、mp4、mov) 串流播放功能, 可由 Windows Media  Player、VLC media player、QuickTime Player 等播放軟體收聽(看)

以下是在 Fedora 7 安裝 Darwin Streaming Server 5.5.5for Linux 的操作記錄

下載並安裝 Darwin Streaming Server

Darwin Streaming Server官方網頁

點選 Linux → Streaming Server 進行下載 (需先註冊才能下載)

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

查看是否安裝成功

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

啟動服務

啟動 Darwin Streaming Server

sudo     /usr/local/sbin/DarwinStreamingServer

啟動 Web 管理介面 (tcp port 1220)

sudo     /usr/local/sbin/streamingadminserver.pl

ps. 以上兩項在剛安裝好的時候會自動啟動, 不需手動執行

連入管理介面進行設定

開啟瀏覽器, 連入 http://darwin.streaming.server:1220/

第一次進入管理介面, 需進行以下設置:

MP3 Broadcast Password: 設定 MP3       廣播密碼Secure Administration: Web 管理介面是否啟用 SSL       安全連線 (視需求)Media Folder: 設定多媒體檔存放路徑 (預設 /usr/local/movies)Streaming on Port 80: 是否以 80 port 傳送串流資料       (視需求)

建立 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 點選播放按鈕即開始放送

建立視訊串流

支援格式: 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   點選播放按鈕即開始放送

以 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(指定觀看某一支檔案)


參考資料

南投縣教育網路討論區 - Linux 討論區 - Darwin Streaming Server

相關網頁

在 FC5 架設 icecast 多媒體串流伺服器 WinXP WebCam 視訊串流應用備忘 音樂轉檔、裁切工具讓你自製 MP3 手機鈴聲(轉檔工具)

--- 附錄: ERROR 15 的排除方法

問題: 自行轉成 .mov 的檔案無法串流播放 (產生 ERROR 15 錯誤)

原因: .mov 檔案中沒有指定 hint track

排除方法: 以 mp4creator (mpeg4ip 裡的程式) 賦予 hint track

操作環境: Fedora 7

Step 1. 安裝 ffmpeg (轉檔工具 & codecs)

rpm -ivh     http://rpm.livna.org/livna-release-7.rpm

yum install ffmpeg

Step 2. 安裝 mpeg4ip (用來賦予 hint track)

yum install mpeg2dec id3lib     ffmpeg-devel

mpeg4ip.rpm 下載網頁

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

Step 3. 轉檔 (若已用其他轉檔工具則跳過此步驟)

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

Step 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 正常放送

Linux下安装Darwin   流服务器的方法和步骤-2


1. 从苹果公司站点下载Darwin:

http://www.publicsource.apple.com/projects/streaming/release/DarwinStreamingServer5.5-Linux.tar.gz

2. 解开该tar包:

# tar xvzf DarwinStreamingServer3-Linux.tar.gz

  这将在当前目录生成一个DarwinStreamingSrvr3-Linux目录,进入该目录。

3. 执行Install安装脚本安装Darwin:

# ./Install

  安装完成后的目录结构如下:

/usr/local/sbin/QuickTimeStreamingServer –     流服务器程序目录
/usr/local/sbin/streamingadminserver.pl - QTSS Web     管理服务器
/usr/local/sbin/StreamingServerModules/ - QTSS     插件
/usr/local/bin/PlaylistBroadcaster – 播放列表广播
/usr/local/bin/qtpasswd     – 进行访问控制的密码文件
/usr/local/bin/SpamPro - RTSP 客户端工具
/etc/streaming/ -     QTSS 配置文件
/usr/local/Movies/ - 媒体文件放置目录
/var/streaming/ -     用户手册
/var/streaming/logs – 日志目录
/var/streaming/playlists –     Web管理播放列表文件

4. 配置服务器:

  安装完成后streamingadminserver.pl会自动运行,可以通过该perl脚本(其实也就是一个小型的web服务器)来管理Darwin流服务器。为了以后方便管理,可以在/etc/rc.d/rc.local脚本中加入一行:
       /usr/local/sbin/streamingadminserver.pl
这样每次系统启动后就会自动允许管理脚本。

在任意一台可以访问该服务器的客户机的浏览器中输入:
http://your_server_name:1220
your_server_name也就是你的流服务器的主机名,当然也可以采用ip地址。

然后就可以进入web管理界面。
缺省的管理员用户名: streamingadmin
缺省的管理员密码: default

进入web管理界面后,可以进行以下一些配置:
a. Server Snapshot: 服务器状态监测;
b. Movies   Directory:
   放置媒体文件的目录设定,缺省是/usr/local/movies/;
c.   Authentication Scheme:
     设置用户认证方案,缺省是Digest,如果使用QuickTime4客户端,必须选择Basic;
d. Streaming on Port   80:
     设置是否使用80端口为服务器服务端口,如果选择否,可以在/etc/streaming/streaingloadtool.conf文件中指定其他端口;
e.   Maximum Number of Connections:
   最大客户连接数目,缺省为1000;
f. Maximum   Throughput:
   最大使用带宽,缺省为100M;
g.   启动/停止Darwin流服务器;
   其他还有日志文件设定以及播放列表的建立等等。

5. 安装客户端:

从苹果公司下载QuickTime
http://www.apple.com/quicktime/download/
然后在windows XP下根据提示进行安装。

6. 测试:

  安装完成后,/usr/local/movies目录中会有一个sample.mov文件,我们可以使用该文件进行测试。首先在客户端启动QuickTime,然后在菜单中单击
Fileà   Open URL in new   player
在弹出的对话框中输入:rtsp://your_server_name:554/sample.mov
(这里假设使用554作为服务端口)

转帖:http://hi.baidu.com/sqjhjj/blog/item/702ded8dc054e1f6f11f366a.html


你可能感兴趣的:(手机流媒体服务器架设指南)