流媒體協議地址擷取 rtmp

來源:互聯網
上載者:User

標籤:

1.準備工作 先註冊下我的外掛程式axvlc.dll  註冊方法:cd到檔案目錄,然後regsvr32 這樣播放器就已經可以被調用了,由於這個外掛程式activeX在VS2010 VS6.0 上調用都好像有問題,所以用的js寫的。

備忘:已知bug 關閉和停止播放的時候可能卡住,外掛程式問題

外掛程式:

外掛程式的引入:

  #引入videolan.vlcplugin.2",類名定義為vlc##

<div>
<object classid="clsid:9be31822-fdad-461b-ad51-be1d1c159921"
width="430"
height="320"
id="vlc"
events="true">
<param name="mrl" value="" />
<param name="showdisplay" value="true" />
<param name="autoloop" value="false" />
<param name="autoplay" value="false" />
<param name="volume" value="50" />
<param name="starttime" value="0" />
<embed pluginspage="http://www.videolan.org"
type="application/x-vlc-plugin"
version="videolan.vlcplugin.2"
width="430"
height="320"
name="vlc">
</embed>
</object>
</div>

  #引入videolan.vlcplugin.2",類名定義為vlc##

播放函數:

mrl 代表播放地址
function doGo(mrl)
{

var vlc = getVLC("vlc");
itemId=vlc.playlist.add(mrl);
vlc.playlist.playItem(itemId);
}

function getVLC(name)
{
if (window.document[name])
{
return window.document[name];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[name])
return document.embeds[name];
}
else
{
return document.getElementById(name);
}
}

   1號平台: 1號平台部分比較簡單,資料未進行什麼複雜的擷取和返回

1.對房間發送get請求,Regex取出socket ip &&port

2.

b1="4c000000e8030000000000003800000000000000#{@room16}0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"發送如下資料到此socket地址 

@room16表示16進位的房間代碼 需要反轉

比如:9168267=8B BE 7A @room16==7A BE 8B

正則取出reg1= /2014(.*)rtmp/ 帶此格式的資料

這樣就完成了 流媒體rtmp視頻源的擷取,然後寫入web,寫成開啟網頁自動播放

<body onload="doGo(‘rtmp://v2.9see.com:1936/live/916826720140725130421‘)">

 

2號平台部分

 

 

相對比較複雜,資料比較難找

 

1。對指定房間發送get請求,得到socket ip&port 

.

2,發送16進位房間,擷取

b1="78000000189301100000000000000000#{@room16}0031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

3.傳回值解析

這個介面會返回很多資料,非常非常之多,我們要做的就是取出格式為20000000079301**********的date 

這個值找了我一個星期經過層層對比最終確定這個就是主播idx


正則      regex=/79301100000000000000000.\w{8}/

取出後8位,這裡會有多個結果 多個結果匹配,存入數組 ,這樣就取到了16進位的主播idx 再轉回10進位

4.流媒體伺服器ip擷取

@http = Net::HTTP.new(‘www.*****.com‘, 80)//保密
resp = @http.get("/v2/GetIpList.aspx?roomid="[email protected])

拼接字串 rtmp://61.150.126.40:1938/live/120001A120001B777049 寫入檔案 網頁開啟 完工

流媒體協議地址擷取 rtmp

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.