FlvPlayer.js is a JavaScript player for decode flv to the canvas
Install with npm
$ npm install flvplayerOr install with yarn
$ yarn add flvplayerimport FlvPlayer from 'flvplayer';Or umd builds are also available
<script src="path/to/flvplayer.js"></script>Will expose the global variable to window.FlvPlayer.
You should load the control before load the player.
import 'path/to/flvplayer-control.js';Or umd builds are also available
<script src="path/to/flvplayer-control.js"></script>Will expose the global variable to window.FlvplayerControl.
<div class="flvplayer-app"></div>if (FlvPlayer.isSupported()) {
    var flv = new FlvPlayer({
        // Accept http url, websocket url, and file type
        url: '',
        // Accept dom element, dom selector
        container: '',
        // Video poster url
        poster: '',
        // Whether to print debug information
        debug: false,
        // Whether live mode
        live: false,
        // Whether the video loops, in non-live mode
        loop: false,
        // Whether to use hotkeys, if the control exists
        hotkey: true,
        // Whether to turn off the volume
        muted: false,
        // On the mobile side, try to activate the audio after the user touches the screen.
        touchResume: true,
        // Video chunk size, the default is 1M
        videoChunk: 1024 * 1024,
        // Audio chunk size, the default is 16kb
        audioChunk: 16 * 1024,
        // Whether to play automatically
        autoPlay: false,
        // Whether it contains an audio stream
        hasAudio: true,
        // Whether to cache the video frame to play
        cache: true,
        // Maximum time difference between audio and video, unit is ms
        // used to automatically adjust audio and video synchronization
        maxTimeDiff: 200,
        // Whether to display the control, if the control exists
        control: true,
        // Indicates whether to do http fetching with cookies
        withCredentials: true,
        // Indicates total file size of media file, in bytes
        filesize: Infinity,
        // Indicates whether to enable CORS for http fetching
        cors: true,
        // Volume from 0 to 1, the default is 0.7
        volume: 0.7,
        // Initialize the frame rate, which will be covered by the actual frame rate of the file
        frameRate: 30,
        // Initialize the width, which will be covered by the actual width of the file
        width: 400,
        // Initialize the height, which will be covered by the actual height of the file
        height: 300,
        // Initialize http headers
        headers: {},
        // The path of the video decoder, currently optional flvplayer-decoder-baseline.js and flvplayer-decoder-multiple.js
        decoder: 'flvplayer-decoder-baseline.js',
    });
} else {
    console.warn('Your browser does not support Flvplayer.js');
}Q: What is the difference between flvplayer-decoder-baseline.js and flvplayer-decoder-multiple.js.
flvplayer-decoder-baseline.jsonly supports flv in thisBaselineprofile, only 200k size.flvplayer-decoder-multiple.jssupports flv in thisBaseline、Main、ExtendedandHighprofile, but have 2M size.
Play video:
flv.play();Pause video:
flv.pause();Switch whether to play:
flv.toggle();Destroy instance:
flv.destroy();Whether it is playing:
flv.playing;Is the stream being pulled:
flv.streaming;Get the current time of the video:
flv.currentTime;Get the duration of the video:
flv.duration;Get the loaded of the video:
flv.loaded;Whether it is focus:
flv.isFocus;Set whether to turn off the volume:
flv.muted;Set the volume:
flv.volume;Get canvas elements:
flv.$canvas;| Name | Description | 
|---|---|
destroy | 
When destroying an instance | 
streamStart | 
Start pulling the stream | 
streaming | 
When pulling stream | 
streamEnd | 
At the end of the pull stream | 
demuxDone | 
Demux completed | 
resize | 
When container resize | 
play | 
When video play | 
timeupdate | 
When video timeupdate | 
waiting | 
When video waiting | 
ended | 
When video ended | 
loop | 
When video loop | 
pause | 
When video pause | 
seeked | 
When video seeked | 
ready | 
When video ready | 
streamRate | 
Stream Rate | 
demuxRate | 
Demux Rate | 
decoderRate | 
Decoder Rate | 
drawRate | 
Draw Rate | 
Example:
flv.on('play', function () {
    console.log('Video is play!');
});Get all instances:
FlvPlayer.instances;Check if support:
FlvPlayer.isSupported;Get the version:
FlvPlayer.version;Get the env:
FlvPlayer.env;Installation dependency
$ npm installRun the developer mode
$ npm run devOpen web server
$ npm startWe accept donations through these channels:
MIT © Harvey Zack


