- 积分
- 499
威望 点
主场币 元
贡献值 点
好评度 点
人气值 点
好友
记录
日志
相册
回帖0
主题
精华
注册时间2005-12-20
在线时间 小时
性别保密
最后登录1970-1-1
听众
收听
|
第一,关于文件直播。
可以分成两种情况。
1. 利用producer压缩来直播。
这种情况源视频是producer里所支持的视频,通过第三方解码器还可以为VOB等其他格式文件。
这种很多朋友都会了,跟电视直播相同,只是源不同而已,上面引用的那个贴子里也说得很明白了。
2. SLTA(Simulated Live Transfer Agent) 文件的模拟直播。
这种情况源视频只能是Helix Server支持的流文件 rm、rmvb、asf、wmv、mov、mp4…据我分析应该是这类的文件。
这种方式可以看看下面的文字,也是这个论坛里转载的,不知出处,作者莫怪。这种方式本人也没有实践过,供大家参考。
[探讨]关于实现文件的模拟直播
使用Helix是趋势,所以是以此为基础的,先说说我的体会,然后请大家指教。
第一步目的,完成对文件的实时广播,为了简便都是用音乐文件作例子。完成文件的模拟直播采用Simulated Live Transfer Agent (SLTA) ,该程序位于 X:\Program Files\Real\Helix Server\Bin目录下,有slta.bat slta.exe 两个文件,使用slta.bat ,运行slta.bat /? 可以得到命令参数。
他有基本模式和高级模式两种,首先要弄清楚基本模式,所以现今仅仅探讨基本模式。进入Dos窗体,到 slta.bat的目录下,运行:
slta.bat IP Port User Pass l.rm r.rm
IP: 是你运行slta所在服务器的IP
Port:你安装Helix的http端口,我的是8080
User:你登录Helix管理的账号,我的是sa
Pass:密码,我的是 :) :)
l.rm:你命名的直播文件,是个虚拟文件
r.rm:拷贝到当前目录需要广播的文件,你也可以指定具体的位于其它目录路径
运行后会出现:
SLTA.EXE - Live Broadcast Simulation Utility
Executing SLTA with
host=10.70.71.248, port=8080, userid=sa, password=******
live_file=l.rm, playlist_file=r.rm
SLTA (c) 2001-2002 RealNetworks, Inc. All rights reserved
Transmitting r.rm...
0----1----2----3----4----5----6----7----8----9----10
***************************************************
Transmitting r.rm...
说明正常了,现在在RealPlay中打入地址 rtsp://IP:8080/broadcast/l.rm 就能收到广播。
r.rm 可以是 mp3,mp4,wma等等,Helix的说明要求此刻,l.rm的扩展名也要相应变化,实际上我的测试是不变也一样。只是wma等微软的必须要用 mms在mediaplay里播放,但是路径不能是汉字,而rm的就可以是汉字(哎,没有办法,不知道其中的玄机)。
如果有多个文件循环,r.rm变成 r.txt,r.txt是你建立的文本文件,格式如下:
title: 广播测试
author: 网迷
copyright: 随便盗版
你的第1个文件路径?title="haha1"
你的第2个文件路径?title="haha1"
......
前3行可以省略,同样对media的不支持汉字路径。路径后面?以后部分是分别指定每个文件的标题,可以省略。
我的问题是不想使用8080的http端口,想使用4040口,可是Port改成4040就总是失败,提示:
Authentication/Connection with Server failed, please check username and password
.Done.
实际账号是有效的,怀疑是否因为没有配置接受服务器,但配置后还是不行,希望能得到大家的指点,这个问题如能解决,便想进入高级模式,简单试过高级模式,服务起来了,可是收不到广播,所以还是先把基本模式和主要概念弄清楚吧。 谢谢大家了!
中午睡过一觉,脑袋清醒了,又犯个糊涂错误,slta.bat IP Port User Pass l.rm r.rm中的Port可以是 554 7070 或 1755 即你定义过在Helix中使用的端口,用4040当然失败了,它不是播放的侦听端口呀。用554时,rtsp://IP/broadcast/l.rm 就可收听,1755时 mms 就可以收听。
把slta.exe, .bat拷贝过来,拷贝lib和plugins目录,然后可以在任意机器上运行。
基本模式,IP是Helix服务所在的机器,slta和Helix可以是不同的机器。
路径broadcast是Helix服务的广播加载点。
slta.bat 10.10.66.8 554 sa ******* l.rm r.rm
slta.bat 10.10.66.8 7070 sa ******* l.rm r.rm
slta.bat 10.10.66.8 8080 sa ******* l.rm r.rm
只要是设定的合法端口,用下面的路径均能成功接收。
rtsp://10.10.66.8/broadcast/l.rm
只要Real能识别的,都能这样广播,如:
slta.bat 10.10.66.8 554 sa ******* l.rm 365.mp3
wma,wmv需要media player播放,如:
slta.bat 10.10.66.8 554 sa ******* l.rm w.wma
slta.bat 10.10.66.8 7070 sa ******* l.rm w.wma
slta.bat 10.10.66.8 8080 sa ******* l.rm w.wma
mms://10.10.66.8:554/broadcast/l.rm
mms://10.10.66.8:7070/broadcast/l.rm
mms://10.10.66.8:8080/broadcast/l.rm
slta.bat 10.10.66.8 1755 sa ******* l.rm w.wma
mms://10.10.66.8/broadcast/l.rm
高级模式(推送广播):
首先要对Helix设置接收服务,在广播分发的接收服务器中,设置:
加载点: /broadcast/
送服务器名 : 7ctv (自己任意取名)
传送服务器地址: 是运行slta机器的IP,位于同一机可以用127.0.0.1
传送服务器子网掩码 :32(255.255.255.255)
端口范围: 30001 - 30020
传输方式 : udp/unicast
其它都默认,不用设置
在slta所在目录建立文件tr.cfg,可以使用提供的slta.cfg模板,内容如下:
<List Name="BroadcastDistribution"> '不要更改此行,现在设置的是slta推广播
'定义名称,要与Helix设置的名称相同,如同时运行多个cfg配置,该名称不要同名
<Var SourceName="7ctv"/>
<List Name="Destinations">
<List Name="TestReceiver">
<Var PathPrefix="*"/> '前缀是虚目录,选默认值。复杂的配置可以设定
<Var PortRange="30001-30020"/>
<Var AcquisitionDataInterval="30"/>
<Var FECLevel="0"/>
<Var SureStreamAware="0"/>
<Var BufferlessTransport="1"/>
<Var LocalAddress="0.0.0.0"/> '设定本机使用的IP
<Var Address="10.10.66.8"/> 'IP要指向Helix服务的IP
<Var Protocol="udp/unicast"/> '要与Helix的设置相同
<Var TTL="16"/>
<Var ResendSupported="0"/>
<List Name="Security"> '设置是否需要密码认证
<Var Type="None"/>
</List>
</List>
'如果同时还想向其它Helix同时推送广播,拷贝一份设置段如下:
<List Name="TestReceiver">
<Var PathPrefix="*"/> '前缀是虚目录,选默认值。复杂的配置可以设定
<Var PortRange="30001-30020"/>
<Var AcquisitionDataInterval="30"/>
<Var FECLevel="0"/>
<Var SureStreamAware="0"/>
<Var BufferlessTransport="1"/>
<Var LocalAddress="0.0.0.0"/> '设定本机使用的IP
<Var Address="10.10.66.6"/> 'IP要指向Helix服务的IP
<Var Protocol="udp/unicast"/> '要与Helix的设置相同
<Var TTL="16"/>
<Var ResendSupported="0"/>
<List Name="Security">
<Var Type="None"/>
</List>
</List>
</List>
</List>
如果,多个Helix服务安装在同一台机器上了,只要依次对Helix进行相同的接收设置就可以了,
不用对slta这边进行多余的设置。
启动广播:
slta.bat -c tr.cfg l.rm r.rm
rtsp://10.10.66.8/broadcast/7ctv/l.rm
rtsp://10.10.66.6/broadcast/7ctv/l.rm
rtsp://10.10.66.6:555/broadcast/7ctv/l.rm 因为这上有2套Helix服务,其它端口如7071,8081都能播放
对于wma,wmv:
slta.bat -c tr.cfg l.rm w.wma
mms://10.10.66.8/broadcast/7ctv/l.rm ; mms://10.10.66.8:554/broadcast/7ctv/l.rm
mms://10.10.66.6/broadcast/7ctv/l.rm ; mms://10.10.66.6:554/broadcast/7ctv/l.rm
但是第二套服务不像rm那样,没有成功,原因不明,暂时也不想深究,此外效果也没有rm好,不知道是否恰好
网络状态不好,也不管了。
mms://10.10.66.6:1756/broadcast/7ctv/l.rm
mms://10.10.66.6:555/broadcast/7ctv/l.rm
参考:http://service.real.com/help/lib ... s/iqslta.htm#146995
关于拉广播的经验,有时间我试验后再说。 :)也许没有时间去试验,因为暂时我不需要。 :) |
|