小編給大家分享一下開源代碼Flv.js怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Flv.js
是 HTML5 Flash 視頻(FLV)播放器,純原生 JavaScript 開發,沒有用到 Flash。由 bilibili 網站開源。
概覽:
一個實現了在 HTML5 視頻中播放 FLV 格式視頻的 JavaScript 庫。它的工作原理是將 FLV 文件流轉碼復用成 ISO BMFF(MP4 碎片)片段,然后通過 Media Source Extensions 將 MP4 片段喂進瀏覽器。
flv.js 是使用 ECMAScript 6 編寫的,然后通過 Babel Compiler 編譯成 ECMAScript 5,使用 Browserify 打包。
功能:
FLV 容器,具有 H.264 + AAC 編解碼器播放功能
多部分分段視頻播放
HTTP FLV 低延遲實時流播放
FLV 通過 WebSocket 實時流播放
兼容 Chrome, FireFox, Safari 10, IE11 和 Edge
十分低開銷,并且通過你的瀏覽器進行硬件加速
以上是官方的介紹,重點是開源讓我們用了,謝謝B站的大神們
以下是我整理的集成使用方案
一、部署方案
1、前提
首先這里要使用到nodejs和npm,如何安裝和部署在我之前的文章有寫過了,這里不再多說,需要可以看自行搜索。
2、下載代碼
github地址:https://github.com/Bilibili/flv.js
需要同步最新代碼的同學要使用git,沒有git的也可以下載zip文件

代碼下載下來后
我放在了D:\code\flv.js-master

3、構建代碼
因為代碼不能直接使用,我們需要用到nodejs的npm模塊進行構建
1)先打開cmd命令行窗口(這里記得用右鍵打開以管理員身份運行),不然可能運行會error
cd命令到放置代碼的地方,我是放在D:\code\flv.js-master上

2)執行npm構建,這里是進行安裝開發環境的操作
npm install
等待執行完后,會出現下圖

D:\code\flv.js-master會多出了一個node_modules文件夾

3)安裝生成工具
npm install -g gulp

4)包裝和最小化JS放在dist文件夾里
gulp release

然后D:\code\flv.js-master\dist里就終于得到我們需要flv.js和flv.min.js代碼了
flv.js壓縮前代碼
flv.min.js壓縮后代碼

二、整合方案
代碼DEMO-html頁面
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>flv.js demo</title>
<style>
.mainContainer {
display: block;
width: 1024px;
margin-left: auto;
margin-right: auto;
}
.urlInput {
display: block;
width: 100%;
margin-left: auto;
margin-right: auto;
margin-top: 8px;
margin-bottom: 8px;
}
.centeredVideo {
display: block;
width: 100%;
height: 576px;
margin-left: auto;
margin-right: auto;
margin-bottom: auto;
}
.controls {
display: block;
width: 100%;
text-align: left;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body>
<p class="mainContainer">
<input name="urlinput" class="urlInput" type="text" value="http://localhost/Test/test1.mp4"/>
<video name="videoElement" class="centeredVideo" controls autoplay width="1024" height="576">
Your browser is too old which doesn't support HTML5 video.
</video>
<br>
<p class="controls">
<button onclick="flv_load()">Load</button>
<button onclick="flv_start()">Start</button>
<button onclick="flv_pause()">Pause</button>
<button onclick="flv_destroy()">Destroy</button>
<input style="width:100px" type="text" name="seekpoint"/>
<button onclick="flv_seekto()">SeekTo</button>
</p>
</p>
<script src="flv.min.js?1.1.9"></script>
<script>
function flv_load() {
console.log('isSupported: ' + flvjs.isSupported());
var urlinput = document.getElementsByName('urlinput')[0];
var xhr = new XMLHttpRequest();
xhr.open('GET', urlinput.value, true);
xhr.onload = function (e) {
var player;
var element = document.getElementsByName('videoElement')[0];
if (typeof player !== "undefined") {
if (player != null) {
player.unload();
player.detachMediaElement();
player.destroy();
player = null;
}
}
player = flvjs.createPlayer({
type: 'mp4',
url: urlinput.value
});
player.attachMediaElement(element);
player.load();
}
xhr.send();
}
function flv_start() {
player.play();
}
function flv_pause() {
player.pause();
}
function flv_destroy() {
player.pause();
player.unload();
player.detachMediaElement();
player.destroy();
player = null;
}
function flv_seekto() {
var input = document.getElementsByName('seekpoint')[0];
player.currentTime = parseFloat(input.value);
}
function getUrlParam(key, defaultValue) {
var pageUrl = window.location.search.substring(1);
var pairs = pageUrl.split('&');
for (var i = 0; i < pairs.length; i++) {
var keyAndValue = pairs[i].split('=');
if (keyAndValue[0] === key) {
return keyAndValue[1];
}
}
return defaultValue;
}
var urlInputBox = document.getElementsByName('urlinput')[0];
var url = decodeURIComponent(getUrlParam('src', urlInputBox.value));
urlInputBox.value = url;
document.addEventListener('DOMContentLoaded', function () {
flv_load();
});
</script>
</body>
</html>結果

Ps:視頻要放在服務器上,這里我用的是Java Web項目,tomcat部署,視頻找個位置就可以了,主要是記住位置
以上是“開源代碼Flv.js怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。