├── .github
└── FUNDING.yml
├── .gitignore
├── README.md
├── devnotes.txt
├── hls-vod.js
├── package.json
└── static
├── app.js
├── bootstrap-3.3.5-dist
├── css
│ ├── bootstrap-theme.css
│ ├── bootstrap-theme.css.map
│ ├── bootstrap-theme.min.css
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ └── bootstrap.min.css
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
└── js
│ ├── bootstrap.js
│ ├── bootstrap.min.js
│ └── npm.js
├── font-awesome-4.4.0
├── HELP-US-OUT.txt
├── css
│ ├── font-awesome.css
│ └── font-awesome.min.css
├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ └── fontawesome-webfont.woff2
├── less
│ ├── animated.less
│ ├── bordered-pulled.less
│ ├── core.less
│ ├── fixed-width.less
│ ├── font-awesome.less
│ ├── icons.less
│ ├── larger.less
│ ├── list.less
│ ├── mixins.less
│ ├── path.less
│ ├── rotated-flipped.less
│ ├── stacked.less
│ └── variables.less
└── scss
│ ├── _animated.scss
│ ├── _bordered-pulled.scss
│ ├── _core.scss
│ ├── _fixed-width.scss
│ ├── _icons.scss
│ ├── _larger.scss
│ ├── _list.scss
│ ├── _mixins.scss
│ ├── _path.scss
│ ├── _rotated-flipped.scss
│ ├── _stacked.scss
│ ├── _variables.scss
│ └── font-awesome.scss
├── index.html
├── jquery-1.11.3.min.js
├── main.css
├── mediaelement-mediaelement-8474a01
├── .babelrc
├── .eslintrc
├── .gitattributes
├── .gitignore
├── .stylelintrc
├── .travis.yml
├── .versions
├── Gruntfile.js
├── README.md
├── TODO.md
├── bower.json
├── build
│ ├── lang
│ │ ├── ca.js
│ │ ├── cs.js
│ │ ├── de.js
│ │ ├── es.js
│ │ ├── fa.js
│ │ ├── fr.js
│ │ ├── hr.js
│ │ ├── hu.js
│ │ ├── it.js
│ │ ├── ja.js
│ │ ├── ko.js
│ │ ├── nl.js
│ │ ├── pl.js
│ │ ├── pt.js
│ │ ├── ro.js
│ │ ├── ru.js
│ │ ├── sk.js
│ │ ├── sv.js
│ │ ├── uk.js
│ │ ├── zh-cn.js
│ │ └── zh.js
│ ├── mediaelement-and-player.js
│ ├── mediaelement-and-player.min.js
│ ├── mediaelement-flash-audio-ogg.swf
│ ├── mediaelement-flash-audio.swf
│ ├── mediaelement-flash-video-hls.swf
│ ├── mediaelement-flash-video-mdash.swf
│ ├── mediaelement-flash-video.swf
│ ├── mediaelement.js
│ ├── mediaelement.min.js
│ ├── mediaelementplayer-legacy.css
│ ├── mediaelementplayer-legacy.min.css
│ ├── mediaelementplayer.css
│ ├── mediaelementplayer.min.css
│ ├── mejs-controls.png
│ ├── mejs-controls.svg
│ └── renderers
│ │ ├── dailymotion.js
│ │ ├── dailymotion.min.js
│ │ ├── facebook.js
│ │ ├── facebook.min.js
│ │ ├── soundcloud.js
│ │ ├── soundcloud.min.js
│ │ ├── twitch.js
│ │ ├── twitch.min.js
│ │ ├── vimeo.js
│ │ └── vimeo.min.js
├── changelog.md
├── compile_swf.sh
├── demo
│ ├── chapters.vtt
│ ├── demo.js
│ ├── favicon.ico
│ ├── index.html
│ └── mediaelement.vtt
├── docs
│ ├── api.md
│ ├── guidelines.md
│ ├── installation.md
│ ├── resources.md
│ ├── usage.md
│ └── utils.md
├── full.js
├── media
│ └── README
├── package.js
├── package.json
├── src
│ ├── css
│ │ ├── mediaelementplayer-legacy.css
│ │ ├── mediaelementplayer.css
│ │ ├── mejs-controls.ai
│ │ ├── mejs-controls.png
│ │ └── mejs-controls.svg
│ ├── flash
│ │ ├── flash-audio-ogg
│ │ │ ├── OggMediaElement.as
│ │ │ ├── com
│ │ │ │ └── automatastudios
│ │ │ │ │ ├── audio
│ │ │ │ │ └── audiodecoder
│ │ │ │ │ │ ├── AudioDecoder.as
│ │ │ │ │ │ ├── decoders
│ │ │ │ │ │ ├── AudioInfo.as
│ │ │ │ │ │ ├── IDecoder.as
│ │ │ │ │ │ ├── OggVorbisDecoder.as
│ │ │ │ │ │ └── WAVDecoder.as
│ │ │ │ │ │ └── events
│ │ │ │ │ │ └── AudioDecoderEvent.as
│ │ │ │ │ └── data
│ │ │ │ │ └── riff
│ │ │ │ │ ├── RIFFChunkInfo.as
│ │ │ │ │ └── RIFFParser.as
│ │ │ ├── flacc
│ │ │ │ └── oggvorbis.c
│ │ │ └── oggvorbis.swc
│ │ ├── flash-audio
│ │ │ └── AudioMediaElement.as
│ │ ├── flash-video-dash
│ │ │ ├── DashMediaElement.as
│ │ │ ├── OSMF.swc
│ │ │ └── com
│ │ │ │ └── castlabs
│ │ │ │ └── dash
│ │ │ │ ├── DashContext.as
│ │ │ │ ├── DashNetLoader.as
│ │ │ │ ├── DashNetStream.as
│ │ │ │ ├── DashPlugin.as
│ │ │ │ ├── DashPluginInfo.as
│ │ │ │ ├── DashSeekTrait.as
│ │ │ │ ├── DashTimeTrait.as
│ │ │ │ ├── boxes
│ │ │ │ ├── Box.as
│ │ │ │ ├── FLVTag.as
│ │ │ │ ├── FullBox.as
│ │ │ │ ├── HandlerReferenceBox.as
│ │ │ │ ├── MediaBox.as
│ │ │ │ ├── MediaHeaderBox.as
│ │ │ │ ├── MediaInformationBox.as
│ │ │ │ ├── MovieBox.as
│ │ │ │ ├── MovieExtendsBox.as
│ │ │ │ ├── MovieFragmentBox.as
│ │ │ │ ├── Muxer.as
│ │ │ │ ├── NalUnit.as
│ │ │ │ ├── SampleDescriptionBox.as
│ │ │ │ ├── SampleEntry.as
│ │ │ │ ├── SampleTableBox.as
│ │ │ │ ├── TrackBox.as
│ │ │ │ ├── TrackExtendsBox.as
│ │ │ │ ├── TrackFragmentBox.as
│ │ │ │ ├── TrackFragmentHeaderBox.as
│ │ │ │ ├── TrackFragmentRunBox.as
│ │ │ │ └── TrackHeaderBox.as
│ │ │ │ ├── descriptors
│ │ │ │ ├── Representation.as
│ │ │ │ ├── index
│ │ │ │ │ ├── SegmentIndex.as
│ │ │ │ │ ├── SegmentIndexFactory.as
│ │ │ │ │ ├── SegmentList.as
│ │ │ │ │ ├── SegmentRange.as
│ │ │ │ │ ├── SegmentTemplate.as
│ │ │ │ │ └── SegmentTimeline.as
│ │ │ │ └── segments
│ │ │ │ │ ├── DataSegment.as
│ │ │ │ │ ├── MediaDataSegment.as
│ │ │ │ │ ├── NullSegment.as
│ │ │ │ │ ├── ReflexiveSegment.as
│ │ │ │ │ ├── Segment.as
│ │ │ │ │ └── WaitSegment.as
│ │ │ │ ├── events
│ │ │ │ ├── FragmentEvent.as
│ │ │ │ ├── ManifestEvent.as
│ │ │ │ ├── SegmentEvent.as
│ │ │ │ └── StreamEvent.as
│ │ │ │ ├── handlers
│ │ │ │ ├── AudioSegmentHandler.as
│ │ │ │ ├── IndexSegmentHandler.as
│ │ │ │ ├── InitializationAudioSegmentHandler.as
│ │ │ │ ├── InitializationSegmentHandler.as
│ │ │ │ ├── InitializationVideoSegmentHandler.as
│ │ │ │ ├── ManifestHandler.as
│ │ │ │ ├── MediaSegmentHandler.as
│ │ │ │ ├── SegmentHandler.as
│ │ │ │ └── VideoSegmentHandler.as
│ │ │ │ ├── loaders
│ │ │ │ ├── DataSegmentLoader.as
│ │ │ │ ├── FragmentLoader.as
│ │ │ │ ├── ManifestLoader.as
│ │ │ │ ├── NullSegmentLoader.as
│ │ │ │ ├── ReflexiveSegmentLoader.as
│ │ │ │ └── SegmentLoader.as
│ │ │ │ └── utils
│ │ │ │ ├── AdaptiveSegmentDispatcher.as
│ │ │ │ ├── BandwidthMonitor.as
│ │ │ │ ├── Bytes.as
│ │ │ │ ├── Console.as
│ │ │ │ ├── Manifest.as
│ │ │ │ └── SmoothMonitor.as
│ │ ├── flash-video-hls
│ │ │ ├── HlsMediaElement.as
│ │ │ └── flashls.swc
│ │ └── flash-video
│ │ │ └── VideoMediaElement.as
│ └── js
│ │ ├── core
│ │ ├── i18n.js
│ │ ├── mediaelement.js
│ │ ├── mejs.js
│ │ └── renderer.js
│ │ ├── features
│ │ ├── fullscreen.js
│ │ ├── playpause.js
│ │ ├── progress.js
│ │ ├── time.js
│ │ ├── tracks.js
│ │ └── volume.js
│ │ ├── header.js
│ │ ├── languages
│ │ ├── ca.js
│ │ ├── cs.js
│ │ ├── de.js
│ │ ├── en.js
│ │ ├── es.js
│ │ ├── fa.js
│ │ ├── fr.js
│ │ ├── hr.js
│ │ ├── hu.js
│ │ ├── it.js
│ │ ├── ja.js
│ │ ├── ko.js
│ │ ├── nl.js
│ │ ├── pl.js
│ │ ├── pt.js
│ │ ├── ro.js
│ │ ├── ru.js
│ │ ├── sk.js
│ │ ├── sv.js
│ │ ├── uk.js
│ │ ├── zh-cn.js
│ │ └── zh.js
│ │ ├── player.js
│ │ ├── player
│ │ ├── default.js
│ │ └── library.js
│ │ ├── renderers
│ │ ├── dailymotion.js
│ │ ├── dash.js
│ │ ├── facebook.js
│ │ ├── flash.js
│ │ ├── flv.js
│ │ ├── hls.js
│ │ ├── html5.js
│ │ ├── soundcloud.js
│ │ ├── twitch.js
│ │ ├── vimeo.js
│ │ └── youtube.js
│ │ └── utils
│ │ ├── constants.js
│ │ ├── dom.js
│ │ ├── general.js
│ │ ├── media.js
│ │ ├── polyfill.js
│ │ └── time.js
├── standalone.js
└── test
│ ├── player.html
│ ├── player.tests.js
│ └── unit
│ ├── i18n.spec.js
│ ├── renderer.spec.js
│ └── utils.spec.js
└── prefixfree.min.js
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: mifi
2 | custom: https://paypal.me/mifino
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | cache
2 | node_modules
3 | .DS_Store
4 | .idea
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | hls-vod 📺
2 | =======
3 |
4 | HTTP Live Streaming with on-the-fly encoding of any video file for Apple TV, iPhone, iPad, iPod, Mac Safari and other devices that support HTTP Live Streaming. Also supports Android and normal desktop browsers through the use of [mediaelement.js](http://www.mediaelementjs.com/)
5 |
6 |
7 |
8 | `hls-vod` is a server application lets you stream your whole video collection on-demand, regardless of format, to your iOS devices, playable from Safari, working with AirPlay as well. It does this by invoking ffmpeg/VLC on the fly through the command line, and presenting a web based GUI for playback.
9 |
10 | Version 1.0 is out with simpler usage 🎉
11 |
12 | Requirements
13 | ------------
14 | - [node.js](https://nodejs.org/en/) (Tested on >=4)
15 | - [ffmpeg](https://ffmpeg.org/) (needs >=v1, must be built with libx264 and libmp3lame) OR [VLC](https://www.videolan.org/)
16 | - Tested on Linux and Mac, but it might work on Windows too.
17 |
18 | Installation
19 | ------------
20 | ```
21 | npm i -g hls-vod
22 | ```
23 |
24 | Running (with ffmpeg, default)
25 | ------------------------------
26 | - Make sure you have node.js and ffmpeg in PATH
27 | - `hls-vod --root-path /path/to/my/videos`
28 | - Or: `hls-vod --transcoder-path /path/to/ffmpeg --root-path /path/to/my/videos`
29 | - Browse to http://localhost:4040/
30 |
31 | Running (with VLC)
32 | ------------------
33 | - Make sure you have node.js and VLC installed and in PATH
34 | - `hls-vod --transcoder-type vlc --root-path /path/to/my/videos`
35 | - Or: `hls-vod --transcoder-type vlc --transcoder-path /usr/bin/vlc --root-path /path/to/my/videos`
36 | - Browse to http://localhost:4040/
37 |
38 | VLC or ffmpeg ?
39 | --------------
40 | `hls-vod` supports both VLC and ffmpeg as streaming backend. ffmpeg gives the best performance and best format/codec support, in my experience. Thumbs and audio is not implemented for VLC.
41 |
42 |
43 | Arguments
44 | ------------------
45 | ```
46 | --root-path PATH - Root path allowed to read files in. Defaults to current directory.
47 |
48 | --cache-path PATH - Where to write transcoded video cache. Defaults to OS temp dir.
49 |
50 | --transcoder-type vlc|ffmpeg - Defaults to ffmpeg.
51 |
52 | --transcoder-path PATH - Will use ffmpeg or vlc in PATH if not specified.
53 | ```
54 |
55 | For more arguments run it without arguments: `hls-vod`
56 |
57 | Limitations
58 | -----------
59 | - Currently only supports encoding one stream at a time (only one user at a time).
60 |
--------------------------------------------------------------------------------
/devnotes.txt:
--------------------------------------------------------------------------------
1 | https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/StreamingMediaGuide.pdf
2 | https://developer.apple.com/library/ios/technotes/tn2288/_index.html
3 |
4 | http://jxcore.com/turn-node-applications-into-executables/
5 | https://github.com/jaredallard/nexe
6 | https://github.com/nwjs/nw.js/wiki/how-to-package-and-distribute-your-apps
7 |
8 | google "http live streaming polyfill"
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hls-vod",
3 | "version": "1.0.2",
4 | "description": "Node CLI for on-demand encoding and streaming of videos",
5 | "scripts": {},
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/mifi/hls-vod.git"
9 | },
10 | "author": {
11 | "name": "Mikael Finstad",
12 | "email": "finstaden@gmail.com",
13 | "url": "mifi.no"
14 | },
15 | "license": "MIT",
16 | "files": [
17 | "hls-vod.js",
18 | "static"
19 | ],
20 | "bin": {
21 | "hls-vod": "hls-vod.js"
22 | },
23 | "engines": {
24 | "node": ">=4"
25 | },
26 | "dependencies": {
27 | "body-parser": "^1.14.1",
28 | "express": "^4.13.3",
29 | "fs-extra": "^4.0.2",
30 | "serve-static": "^1.10.0",
31 | "socket.io": "^2.0.3",
32 | "underscore": "^1.8.3",
33 | "wrench": "1.4.4"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/bootstrap-3.3.5-dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/static/bootstrap-3.3.5-dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/font-awesome-4.4.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/font-awesome-4.4.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/font-awesome-4.4.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mifi/hls-vod/58aa1dcc5a01b1faa1f648f341aba4394a9c67f4/static/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.4.0/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 |
--------------------------------------------------------------------------------
/static/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
43 |
44 |
45 |
46 |
47 |
48 |
![]()
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
Settings
57 |
58 |
59 |
60 | Settings
61 |
62 |
63 |
64 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/static/main.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 3em;
3 | background-color: #eee;
4 | color: black;
5 | -webkit-overflow-scrolling: touch;
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 | a, a:visited, a:active {
9 | color: inherit;
10 | }
11 | #file-list {
12 | list-style: none;
13 | padding-left: 0;
14 | margin-top: 0;
15 | }
16 | #file-list li {
17 | cursor: pointer;
18 | background: linear-gradient(to bottom, #fff 0%, #eee 48%, #ddd 52%, #ccc 100%);
19 | border: 1px solid #ccc;
20 | text-shadow: 1px 1px #ccc;
21 | color: #000;
22 | font-size: 1.2em;
23 | padding: .4em .5em;
24 | white-space: nowrap;
25 | overflow-x: auto;
26 | overflow-y: hidden;
27 | }
28 | #file-list li img.thumbnail {
29 | height: 50px;
30 | vertical-align: middle;
31 | padding-right: .7em;
32 | }
33 | #dir-header {
34 | background: linear-gradient(to bottom, #fff 0%, #eee 48%, #ddd 52%, #ccc 100%);
35 | border: 1px solid #ccc;
36 | text-shadow: 1px 1px #ccc;
37 | color: #c00;
38 | font-size: 1.2em;
39 | padding: .2em .5em;
40 | overflow: hidden;
41 | }
42 |
43 | #transcoders {
44 | color: white;
45 | padding: .2em .5em;
46 | position: absolute;
47 | top: 0;
48 | left: 0;
49 | z-index: 1;
50 | }
51 |
52 | audio {
53 | margin: auto;
54 | display: block;
55 | }
56 | #audio-container {
57 | background: black;
58 | width: 100%;
59 | padding: 3em;
60 | }
61 | #audio-container audio {
62 | width: 100%;
63 | }
64 | #audio-song-name {
65 | color: white;
66 | text-align: center;
67 | font-size: 1.5em;
68 | padding-bottom: 1em;
69 | }
70 |
71 | #preview-image {
72 | background: black;
73 | display: block;
74 | width: 100%;
75 | min-height: 400px;
76 | }
77 |
78 | #player-loading {
79 | position: absolute;
80 | z-index: 1;
81 | font-size: 4em;
82 | margin-top: -.5em;
83 | text-align: center;
84 | left: 0;
85 | right: 0;
86 | top: 50%;
87 | color: white;
88 | }
89 |
90 | ::-webkit-scrollbar {
91 | height: 12px;
92 | }
93 |
94 | ::-webkit-scrollbar-track {
95 | background: #e8e8e8;
96 | border-radius: 12px;
97 | }
98 |
99 | ::-webkit-scrollbar-thumb {
100 | background-color: rgba(51, 51, 51, .7);
101 | border-radius: 12px;
102 | max-width: 10px;
103 | }
104 |
105 | #settings-btn {
106 | cursor: pointer;
107 | }
108 | #settings-container {
109 | display: none;
110 | }
111 |
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "comments": false,
3 | "presets": [
4 | ["env", {
5 | "targets": {
6 | "browsers": ["last 5 versions", "ie > 10", "ios > 7", "android > 3"]
7 | }
8 | }]
9 | ]
10 | }
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "es6": true,
4 | "browser": true,
5 | "mocha": true,
6 | "node": true,
7 | "jquery": true
8 | },
9 | "extends": "eslint:recommended",
10 | "parserOptions": {
11 | "ecmaVersion": 6,
12 | "sourceType": "module"
13 | },
14 | "rules": {
15 | "no-console": 0,
16 | "no-undef" : 0,
17 | "no-case-declarations": 0,
18 | "no-empty": 0
19 | }
20 | }
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
3 | *.jar binary
4 | *.mp3 binary
5 | *.mp4 binary
6 | *.ogv binary
7 | *.png binary
8 | *.webm binary
9 | *.swf binary
10 | *.swc binary
11 | *.fla binary
12 | *.xap binary
13 |
14 |
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.gitignore:
--------------------------------------------------------------------------------
1 | # silverlight stuff
2 | src/silverlight/obj/*
3 | src/silverlight/Bin/*
4 | build/AppManifest.xaml
5 | build/SilverlightMediaElementTestPage.html
6 | build/SilverlightMediaElement.pdb
7 | build/SilverlightMediaElement.dll
8 | tests/*
9 | newfeatures/*
10 | /mejs3/
11 | node_modules
12 | local-build
13 | # PhpStorm/WebStorm configuration
14 | .idea
15 | media/*
16 | !media/README
17 | src/flash/flex_sdk_*
18 | coverage
19 | npm-debug.log
20 | tmp
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "stylelint-order"
4 | ],
5 | "rules": {
6 | "color-hex-case": ["lower"],
7 | "color-hex-length": "short",
8 | "declaration-block-no-duplicate-properties": [
9 | true,
10 | {
11 | "ignore": [
12 | "consecutive-duplicates-with-different-values"
13 | ]
14 | }
15 | ],
16 | "function-comma-space-after": "always-single-line",
17 | "function-comma-space-before": "never",
18 | "indentation": 4,
19 | "length-zero-no-unit": true,
20 | "number-leading-zero": "always",
21 | "number-no-trailing-zeros": true,
22 | "order/order": [
23 | "custom-properties",
24 | "declarations"
25 | ],
26 | "order/properties-alphabetical-order": true,
27 | "property-case": "lower",
28 | "property-no-unknown": true,
29 | "selector-combinator-space-after": "always",
30 | "selector-combinator-space-before": "always",
31 | "selector-list-comma-newline-after": "always",
32 | "shorthand-property-no-redundant-values": true,
33 | "string-quotes": "single"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - node
4 | before_install:
5 | - "curl -L http://git.io/ejPSng | /bin/sh"
6 | after_success: 'npm run coveralls'
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/.versions:
--------------------------------------------------------------------------------
1 | johndyer:mediaelement@4.2.6
2 | jquery@1.11.10
3 | meteor@1.7.0
4 | modules@0.9.2
5 | modules-runtime@0.8.0
6 | underscore@1.0.10
7 |
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/TODO.md:
--------------------------------------------------------------------------------
1 | ### TODO
2 |
3 | #### Features to be implemented related to renderers and player
4 |
5 | *All items listed in https://github.com/mediaelement/mediaelement/labels/Feature*
6 |
7 | **NOTE** Please make sure any features are labeled with `Feature` to make them available with the link above.
8 |
9 | #### Known issues related to renderers and player
10 |
11 | *Known issues to be resolved listed in https://github.com/mediaelement/mediaelement/labels/Bug*
12 |
13 | **NOTE** Please make sure any bugs are labeled with `Bug` to make them available with the link above.
14 |
15 | ### Any features/issues related to elements in controlbar or additional
16 |
17 | *All items listed in https://github.com/mediaelement/mediaelement-plugins/issues*
18 |
--------------------------------------------------------------------------------
/static/mediaelement-mediaelement-8474a01/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mediaelement",
3 | "homepage": "https://github.com/mediaelement/mediaelement",
4 | "description": "HTML5