flv.js源碼分析,flvjs教程

本文目錄一覽:

vue中播放flv格式視頻(b站flv.js的使用)

flv.js 就是由 bilibili 網站開源的 HTML5 Flash 視頻(FLV)播放器,純原生 JavaScript 開發(ECMAScript 6 編寫) ,沒有用到 Flash。它的工作原理是 Flv.js 在 JavaScript 中流式解析 flv 文件流,並實時轉封裝為 fmp4 ,通過 Media Source Extensions 餵給瀏覽器,實現了 FLV 格式視頻的播放。

具有H.264 + AAC / MP3編解碼器播放功能的FLV容器

多段分段視頻播放

HTTP FLV低延遲實時流播放

通過WebSocket進行FLV實時流播放

與Chrome,FireFox,Safari 10,IE11和Edge兼容

極低的開銷,瀏覽器可以加速硬件!

1、準備一個flv格式的視頻

我的文件,關於分片上傳可參考 vue中使用Plupload分片上傳

flv.js 1.0 源碼學習(三)

整個庫的核心部分之一。

參考:

肯定有個什麼mp4-demuxer

parseValue 是入口

解析十二選七種二進制數據,將他們序列化格式化:

二進制-對象描述信息

移植自c++的一個庫:

可以將一個 TypeArray 二進制數組的內容轉成 Unicode 碼

flv.js的技術到底是什麼水平

Flv.js的幾個意義:

1,h5上實現直播的目前已知的最優解決方案,性能不弱於原生app直播:直播延遲控制到1秒內。帶寬、存儲其實比原生app普遍採用的mp4更優。

2,h5上用js實現高質量音視頻解碼、並支持h5富媒體標準mse使其得到應用、重視,從而促進h5具備原生應用多媒體能力得以大大提升。

3,這是中國程序員在h5音視頻領域的一項傑出成果!考慮到類似成果之前還基本出自非中國程序員,這個價值特別值得一說。

flv.js 中文文檔

article class=”_2rhmJa”

本文檔使用類似TypeScript的定義來描述接口。

flv.js將所有接口都以flvjs對象暴露在全局上下文window中.

flvjs 還可以通過require或ES6導入來訪問對象。

方法:

類:

枚舉:

根據中指定的type字段創建一個播放器實例mediaDataSource(可選)config。

如果segments存在字段,則transmuxer會將其MediaDataSource視為多部分源。

在多部分模式下,結構中的duration filesize url字段MediaDataSource將被忽略。

如果基本上可以再您的瀏覽器上播放則返回true

返回FeatureList具有以下詳細信息的對象:

實現Player接口的FLV播放器。可以通過new操作進行創建

Player wrapper for browser’s native player (HTMLVideoElement) without MediaSource src, which implements the Player interface. Useful for singlepart MP4 file playback.

A global interface which include several static getter/setter to set flv.js logcat verbose level.

一個全局接口,其中包括幾個用於設置flv.js logcat詳細級別的靜態getter / setter。

一系列可以和 Player.on() / Player.off() 一起使用的常數. 它們需要前綴 flvjs.Events .

播放期間可能出現的錯誤。它們需要前綴flvjs.ErrorTypes。

針對網絡和媒體錯誤提供更詳細的說明。它們需要前綴flvjs.ErrorDetails。

/article

4人點贊

日記本

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/244417.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:01
下一篇 2024-12-12 13:02

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29

發表回復

登錄後才能評論