備忘:最近做的rtmp流媒體播放的預研工作

最近接手了個工作:用瀏覽器播放RTMP流媒體。

工作步驟:

1.找到可用的rtmp流媒體播放資源:

1.1.網上搜了下,

在 https://blog.csdn.net/q386815991/article/details/80942155 

找到 rtmp://58.200.131.2:1935/livetv/hunantv 是可用的,

下載 流媒體播放器 VLC-3.0.6-win64.exe 可以播放的。

1.2.可忽略這段。在我公司內網由於網絡限制,所以搭建了內部的流媒體播放服務器:使用的SRS(simple-rtmp-server)作爲流媒體服務器(當然也可以用nginx作爲rtmp流媒體服務器,以及其它技術),然後使用obs studio推流。也就是說,流媒體服務器只是個分發者,要想消費者有內容可看,還得有內容供應者推送資源。

比如SRS流媒體服務器其url爲rtmp://localhost:1935,那麼我在obs裏面新建一個推流的配置,地址爲rtmp://localhost:1935/live/ch1,那麼在流媒體播放器 VLC就可以播放rtmp://localhost:1935/live/ch1了。

使用obs studio,可以使用攝像頭實時採集視頻、可以使用屏幕錄製、也可以播放本地視頻作爲流媒體源。

2.找到可用的基於瀏覽器的非插件式的播放器。

2.1.純粹的html5只支持簡單的幾種視頻播放,不支持rtmp播放。

2.2.使用video-js可以播放rtmp,不過要注意3點如下:

2.2.1.注意發佈爲web服務才能正常使用flash播放:請將測試頁面發佈爲web方式,以諸如 http://localhost:8080/test.html 這種方式訪問;
2.2.2.注意打開瀏覽器的flash權限:設置瀏覽器,給予flash執行權限,在谷歌瀏覽器點擊url前面的圖標,在網站設置>flash=允許。

2.2.3.注意videojs的版本:

當前(2019-03-17)播放rtmp還是必須用flash的技術的;

如果使用的是V5.X以及更老的版本的是可以直接播放rtmp的了(因爲之前的版本是內置了video-js.swf的);

如果是之後較新的版本,需要在引入了 video.js 之後再加上 videojs-flash.js

(考慮到flash的方式瀏覽器越來越不支持了,官方取消內置video-js.swf了,將項目分拆2個了)

,以下分別舉例:

2.2.3.1.使用v5.19的例子

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href="http://vjs.zencdn.net/5.19/video-js.min.css"
	rel="stylesheet">
<script src="http://vjs.zencdn.net/5.19/video.min.js"></script>
</head>
<body>
	<video id="my-player" class="video-js" controls preload="auto"
		poster="//vjs.zencdn.net/v/oceans.png" data-setup='{}'>
		<source src="rtmp://58.200.131.2:1935/livetv/hunantv" type="rtmp/flv" />
	</video>
</body>
</html>

2.2.3.2.使用7.4.1的例子

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>7.4.1</title>
  <link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
</head>

<body>
  <video id='my-video' class='video-js' controls preload='auto' width='640' height='264'
  poster='//vjs.zencdn.net/v/oceans.png' data-setup='{}'>
    <source src="rtmp://58.200.131.2:1935/livetv/hunantv" type="rtmp/flv" />
  </video>

  <script src='https://vjs.zencdn.net/7.4.1/video.js'></script>
  
  <!-- 【注意使用7.4.1後,這裏添加了flash播放技術來支持rtmp的】
  會加載 https://vjs.zencdn.net/swf/5.4.2/video-js.swf(和 https://github.com/videojs/video-js-swf/tree/master/dist 的最新版的版本號一致  )
  -->
  <script src='https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js'></script>
</body>
</html>

2.3.使用MediaElement.js

參考 https://www.iteye.com/topic/1133212

2.3.1.首先我們下載 MediaElement.js官方最新版

2.3.2.下載的文件解壓,取其中\build裏面的文件放到 mediaElement,並且將裏面swf後綴的文件再放入下一層build,具體文件結構如此

2.3.3.其中3.html的代碼

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>mediaelementplayer 4.2.9-6-ga6cc75b</title>
<script src="jquery-1.9.1.min.js"></script>
<script src="mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="mediaelementplayer.css" />
</head>
<body>
	<video width="320" height="240">
		<source src="rtmp://58.200.131.2:1935/livetv/hunantv" type="rtmp/mp4" />
	</video>
</body>
<script>
	$('video,audio').mediaelementplayer(/* Options */);
</script>
</html>

2.3.4.發佈後訪問 http://localhost:8080/rtmp/mediaElement/3.html

2.4.比較video-js MediaElement.js

https://github.com/videojs/video.js

video-js使用的情況更加流行,插件非常多。

https://github.com/mediaelement/mediaelement

 MediaElement.js對老瀏覽器支持的比較多的感覺(不過新版本也開始放棄支持老ie了)。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章