All Projects → flussonic → Mse Player

flussonic / Mse Player

Licence: mit
HTML5 zero latency player for Flussonic

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Mse Player

Fijkplayer
ijkplayer for flutter. ijkplayer 的 flutter 封装。 Flutter video/audio player. Flutter media player plugin for android/iOS based on ijkplayer. fijkplayer 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayer
Stars: ✭ 943 (+1713.46%)
Mutual labels:  player
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (+1813.46%)
Mutual labels:  player
Pandoraplayer
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
Stars: ✭ 1,037 (+1894.23%)
Mutual labels:  player
Somafm Miniplayer
Unofficial player that gives you minimal, background playback of SomaFM channels.
Stars: ✭ 30 (-42.31%)
Mutual labels:  player
Lovetracker
A module tracker written in lua/LöVE.
Stars: ✭ 38 (-26.92%)
Mutual labels:  player
Pubg Battlepoint Farmbot
A simple easy to use working AFk battle point (bp) farming bot for player unknown battle grounds.
Stars: ✭ 40 (-23.08%)
Mutual labels:  player
Ijkplayer
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
Stars: ✭ 29,752 (+57115.38%)
Mutual labels:  player
Vlc Android
VLC for Android, Android TV and ChromeOS
Stars: ✭ 1,045 (+1909.62%)
Mutual labels:  player
Youtube Html Js Audio Player
An audio player created with HTML Audio and Javascript 🚀
Stars: ✭ 39 (-25%)
Mutual labels:  player
Youtube Extension
🔴YouTube Extension🧰>80 Features ⭐Please document, code or donate📌Tidy📌Longest-standing(2012)(Users>350000)⋮🎞️🎛️🎧⚙️🎬🔊☕🎨🧩🧪📈⏯️(Player: Repeat Screenshot Rotate; Hide related video distraction. Always expand video Description. Playback speed. Video Quality bandwidth H.264 electricity. Player Size Full Window. Themes Customization. Statistics. Reverse Playlist YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube YouTube Youtube enhancer YouTube app YouTube video YouTube YouTube YouTube api v3 YouTube playback YouTube player VP8 VP9 AV1 vidIQ tubebuddy download adblocker adblock ads sponsorblock addon youtube music ⭐ youtube premium css css4 html5 ytdl youtube-dl invidious iridium ParticleCore youtube+ youtube++ youtube-plus maia-yt youtube nonstop youtube control center vlogger vlog h264ify h264 m.youtube.com music.youtube.com studio.youtube youtube mobile youtube studio ⭐ kids Vanced gaming.youtube.com gaming youtubecenter freetube lite-youtube-embed newpipe youtube-dl-gui mps-youtube nuclear pytube awesome youtubers youtube downloader 8k 4k 60fps 30fps youtubeexplode vidgear k-lite tubebuddy adobe apple ios iphone design simplify ffmpeg premiere designer annoyance youtube upload
Stars: ✭ 1,027 (+1875%)
Mutual labels:  player
Plyr
Plyr Mediaplayer (Video und Audio) im Front- und Backend
Stars: ✭ 30 (-42.31%)
Mutual labels:  player
Avp
Another Video Player
Stars: ✭ 32 (-38.46%)
Mutual labels:  player
Aplay
A Better(Maybe) iOS Audio Stream、Cache、Play Framework
Stars: ✭ 44 (-15.38%)
Mutual labels:  player
Dailymotion Swift Player Sdk Ios
Dailymotion Player SDK for iOS in Swift
Stars: ✭ 29 (-44.23%)
Mutual labels:  player
React Native Ezplayer
EZPlayer component for react-native apps
Stars: ✭ 47 (-9.62%)
Mutual labels:  player
Video.js
Video.js - open source HTML5 & Flash video player
Stars: ✭ 32,478 (+62357.69%)
Mutual labels:  player
Lofi Player
🎧 A Lofi Player built with HTML, CSS and Javascript using Parcel as Module Bundler https://lakscastro.github.io/lofi-player
Stars: ✭ 38 (-26.92%)
Mutual labels:  player
Musicalyoutube
A Youtube floating PIP player for Android.
Stars: ✭ 50 (-3.85%)
Mutual labels:  player
Audioplayers
A Flutter plugin to play multiple audio files simultaneously (Android/iOS)
Stars: ✭ 1,042 (+1903.85%)
Mutual labels:  player
Kaku
🎧 Kaku is a highly integrated music player supports different online platform like YouTube, SoundCloud, Vimeo and more. Available on Mac, Windows and Linux.
Stars: ✭ 1,028 (+1876.92%)
Mutual labels:  player

flussonic-mse-player

flussonic-mse-player is a JavaScript library for playing video relies on flussonic backend, HTML5 video and MediaSource Extensions

Installation

npm install --save @flussonic/flussonic-mse-player

Usage

Webpack:

import FlussonicMsePlayer from '@flussonic/flussonic-mse-player'
...
const player = new FlussonicMsePlayer(element, url, opts)

example

Script tag:

Since the library include via script tag it is accesible at window.FlussonicMsePlayer

<script type="text/javascript" src="../../dist/FlussonicMsePlayer.js"></script>
var FlussonicMsePlayer = window.FlussonicMsePlayer
var player = new FlussonicMsePlayer(element, url, opts)

example

Static Methods:

  • isSupported() - return true if browser is supported Media Source Extension

  • replaceHttpByWS(url: string) - return new url where replaced http(s):// by ws(s)://

Construction:

const player = new FlussonicMsePlayer(element, url, opts)

element - DOM element

url - url of a stream

opts is plain object it can include methods:

  • debug?: boolean - if true then enable logs in browser console. And export methods humanTime, humanDate to window.

  • progressUpdateTime?: number - time period for invoking onProgress.

  • connectionRetries?: number - number of reconnection retries if player can't start playback.

  • wsReconnect?: boolean - trying to restart websocket connection on error closing.

  • preferHQ?: boolean - if true, player will automatically select the highest available quality of the stream.

  • retryMuted?: boolean - if true, in some cases, due to "Browser Autoplay Policy Changes" it will try to restart playing process with initialy muted video element.

  • maxBufferDelay?: number - maxBufferDelay option for sourceBuffer

  • onProgress(utc: number) - triggered every 100ms(progressUpdateTime) while a stream is playing and gives current playback time

  • onMediaInfo(info: MediaInfo) - triggered when metadata of the stream is available. metadata include a common information of the stream such as width, height, information about mbr streams and so on. After this callback triggered you can use getVideoTracks()/getAudioTracks() methods.

  • onDisconnect(status: object) - triggered on websocket connection lost.

  • onError(error: object) - triggered on player errors.

  • onEvent(event: object) - triggered on player events.

  • onMuted() - triggered on player set muted.

  • onPause() - triggered on player set paused.

  • onResume() - triggered on player gets resumed from pause.

  • onStats(stats: object) - triggered on player stats change. Stats include a common ststistics of the stream: endTime, currentTime, videoBuffer, audioBuffer, timestamp, readyState, networkState.

  • onSeeked() - triggered when process of seeking is finished

  • onStartStalling() - triggered when playing is stalled

  • onEndStalling() - triggered when the video tag is progressed(start playing). onStartStalling()/onEndStalling() useful callback for implementation loading-spinner.

  • •••DEPRECATED••• bufferMode: 'segments'|'sequence' - SourceBuffer Object Append Mode. Default value is 'sequence'.

  • errorsBeforeStop: number - Amount of errors will be happened before invoke the stop() method.

Methods:

  • play(videoTrack?: Track, audioTrack?: Track) => Promise - start playing.

    Return a Promise. Resolved if HTMLMediaElement.play() resolved(HTMLMediaElement.play() Returns a Promise). Overwise rejected with error message.

    if you do autoplay="true" muted="false" video. The play will be rejected(Autoplay Policy Changes)

    For resolve this behaviour you can mute the video before playing. Or you can process play's rejection and show play button.

  • pause() - send pause command by websocket

  • stop() - close websocket connection; detach mediaSource from given HTMLMediaElement; invoke the HTMLMediaElement stop method

  • restart() - perform a full restart of playing process

  • autoTrackSelection(preferBest: boolean) => tracks: Array - if true - returns array with the tracks of highest available quality. If false - returns array with the tracks of the lowest available quality.

  • seek(utc: number) - send seek command by websocket

  • setTracks(tracks: Array) -

Types:

type MediaInfo = {
  height: number,
  width: number,
  streams: Array<StreamInfo>,
  activeStreams: ActiveStreams,
}

type StreamInfo = {
  bitrate: number,
  codec: string,
  content: string,
  fps: number,
  height: number,
  length_size: number,
  level: string,
  pixel_height: number,
  pixel_width: number,
  profile: "Baseline",
  sar_height: number,
  sar_width: number,
  size: string,
  track_id: TrackId,
  width: number
}

type ActiveStreams = {
  video: TrackId,
  audio: TrackId,
}

type TrackId = 'a1'|'a2'|'a3'| ... 'aN'|'v1'|'v2'|'v3'| ... 'vN'

type UtcOrLive = number | 'live'

TODO

CHANGELOG

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].