将FMS RTMP Live流转换为适用于BlackBerry的RTSP

时间:2012-08-14 18:56:40

标签: blackberry rtsp rtmp flash-media-server live-streaming

有没有办法将RTMP直播流从FMS 4.5转换为RTSP用于BlackBerry App?我部署的FMS 4.5服务器希望通过本机应用程序为BlackBerry用户启用实时流媒体,并且根据BlackBerry文档,唯一可以支持BlackBerry设备上实时流媒体的协议是HTTP& RTSP。

BlackBerry Support for media streaming

1 个答案:

答案 0 :(得分:0)

你可以在cgi中使用rtmpdump并写入stdout,不会是rtsp,只是http。 这就是我在没有闪存的情况下使用NBC播放rtmp流的方式。 使用rtmp流作为参数调用脚本。 如:

http://example.com/cgi-bin/nbc.cgi?nbcv=url-minus-domain/movie.mp4

#!/usr/bin/env python

import cgi
import subprocess

rtmpdump='/usr/local/bin/rtmpdump';
# use the quiet switch we are writing the video to stdout.
quiet='-q';

# swf verification
swfUrlswitch='-s';
swfUrl='http://www.nbc.com/assets/video/3-0/swf/NBCVideoApp.swf';

rtmpUrlswitch='-r';
rtmpbase= 'rtmp://cp81777.edgefcs.net/ondemand/';
# grab the argument
a=cgi.FieldStorage()

rtmpUrl=rtmpbase+a.getvalue('nbcv');

pargs=[rtmpdump,quiet,swfUrlswitch,swfUrl,rtmpUrlswitch,rtmpUrl]

# http headers 
if rtmpUrl[-3:]=='mp4':
    print 'Content-Type: video/x-mp4'
if rtmpUrl[-3:]=='flv':
    print 'Content-Type: video/x-flv'

# make sure you print a blank line after the header.
print ''
# call rtmpdump
subprocess.Popen(pargs)