Compare commits
2 Commits
b714d1a2d6
...
70cf8bf47b
Author | SHA1 | Date |
---|---|---|
|
70cf8bf47b | |
|
1fd7b9f9cf |
|
@ -1,9 +1,9 @@
|
||||||
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.143.1"><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Home | ShowerLoop</title>
|
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.143.1"><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Home | ShowerLoop</title>
|
||||||
<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="ShowerLoop - Real-time filtration, purification, recycling & heat recovery system for showers. Open source and sustainable water conservation technology."><script>let liveReloadSocket=null;const OriginalWebSocket=window.WebSocket;window.WebSocket=function(e,t){if(e.includes("/__livereload")){if(document.readyState==="complete"){liveReloadSocket=new OriginalWebSocket(e,t);const n={onmessage:null,onclose:null};return Object.defineProperty(liveReloadSocket,"onmessage",{set:function(e){n.onmessage=e},get:function(){return n.onmessage}}),Object.defineProperty(liveReloadSocket,"onclose",{set:function(e){n.onclose=e},get:function(){return n.onclose}}),liveReloadSocket.addEventListener("message",function(e){n.onmessage&&n.onmessage(e)}),liveReloadSocket.addEventListener("close",function(e){liveReloadSocket=null,n.onclose&&n.onclose(e)}),liveReloadSocket}return{send:function(){},close:function(){},addEventListener:function(){},removeEventListener:function(){},set onmessage(e){},set onclose(e){}}}return new OriginalWebSocket(e,t)};for(const e in OriginalWebSocket)OriginalWebSocket.hasOwnProperty(e)&&(window.WebSocket[e]=OriginalWebSocket[e]);window.WebSocket.prototype=OriginalWebSocket.prototype,document.addEventListener("pageshow",function(e){if(e.persisted){console.log("Page restored from bfcache");const e=window.location.protocol==="https:"?"wss:":"ws:";liveReloadSocket=new OriginalWebSocket(`${e}//${window.location.host}/__livereload`),liveReloadSocket.onmessage=function(e){e.data==="reload"&&window.location.reload()}}}),window.addEventListener("pagehide",function(){liveReloadSocket&&(liveReloadSocket.onclose=null,liveReloadSocket.close(),liveReloadSocket=null)})</script><link rel=preload href=/css/vendor/material-icons.css as=style><link rel=preload href=/images/logo2.webp as=image><link rel=stylesheet href=/css/vendor/material-icons.css><link rel=stylesheet href=/css/vendor/material.indigo-pink.min.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/vendor/material.indigo-pink.min.css></noscript><link rel=stylesheet href=/css/vendor/fontawesome.min.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/vendor/fontawesome.min.css></noscript><script type=module>
|
<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="ShowerLoop - Real-time filtration, purification, recycling & heat recovery system for showers. Open source and sustainable water conservation technology."><script>let liveReloadSocket=null;const OriginalWebSocket=window.WebSocket;window.WebSocket=function(e,t){if(e.includes("/__livereload")){if(document.readyState==="complete"){liveReloadSocket=new OriginalWebSocket(e,t);const n={onmessage:null,onclose:null};return Object.defineProperty(liveReloadSocket,"onmessage",{set:function(e){n.onmessage=e},get:function(){return n.onmessage}}),Object.defineProperty(liveReloadSocket,"onclose",{set:function(e){n.onclose=e},get:function(){return n.onclose}}),liveReloadSocket.addEventListener("message",function(e){n.onmessage&&n.onmessage(e)}),liveReloadSocket.addEventListener("close",function(e){liveReloadSocket=null,n.onclose&&n.onclose(e)}),liveReloadSocket}return{send:function(){},close:function(){},addEventListener:function(){},removeEventListener:function(){},set onmessage(e){},set onclose(e){}}}return new OriginalWebSocket(e,t)};for(const e in OriginalWebSocket)OriginalWebSocket.hasOwnProperty(e)&&(window.WebSocket[e]=OriginalWebSocket[e]);window.WebSocket.prototype=OriginalWebSocket.prototype,document.addEventListener("pageshow",function(e){if(e.persisted){console.log("Page restored from bfcache");const e=window.location.protocol==="https:"?"wss:":"ws:";liveReloadSocket=new OriginalWebSocket(`${e}//${window.location.host}/__livereload`),liveReloadSocket.onmessage=function(e){e.data==="reload"&&window.location.reload()}}}),window.addEventListener("pagehide",function(){liveReloadSocket&&(liveReloadSocket.onclose=null,liveReloadSocket.close(),liveReloadSocket=null)})</script><link rel=preload href=/css/vendor/material-icons.css as=style><link rel=preload href=/images/logo2.webp as=image><link rel=stylesheet href=/css/vendor/material-icons.css><link rel=stylesheet href=/css/vendor/material.indigo-pink.min.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/vendor/material.indigo-pink.min.css></noscript><link rel=stylesheet href=/css/vendor/fontawesome.min.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/vendor/fontawesome.min.css></noscript><script type=module>
|
||||||
|
|
||||||
import * as utils from '/js/utils.modern.min.js';
|
import * as utils from '/js/utils.modern.min.js';
|
||||||
window.utilsModule = utils;
|
window.utilsModule = utils;
|
||||||
</script><script type=module src=/js/app.modern.min.js defer></script><script type=module src=/js/skip-to-content.modern.min.js defer></script><script type=module src=/js/material.modern.min.js defer></script><script nomodule src=/js/app.min.js defer></script><script nomodule src=/js/skip-to-content.min.js defer></script><script nomodule src=/js/material.min.js defer></script><link rel=stylesheet type=text/css href=/css/app.min.css><link rel=stylesheet type=text/css href=/css/custom.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/custom.css></noscript><link rel=icon href=/static/favicon.svg type=image/svg+xml><link rel=icon href=/static/favicon.ico type=image/x-icon><script src=/static/js/vendor/hls.min.js defer></script><script src=/static/js/hls-player.min.js defer></script></head><body class=page><body class=page><div class="mdl-layout mdl-js-layout
|
</script><script type=module src=/js/app.modern.min.js defer></script><script type=module src=/js/skip-to-content.modern.min.js defer></script><script type=module src=/js/material.modern.min.js defer></script><script nomodule src=/js/app.min.js defer></script><script nomodule src=/js/skip-to-content.min.js defer></script><script nomodule src=/js/material.min.js defer></script><link rel=stylesheet type=text/css href=/css/app.min.css><link rel=stylesheet type=text/css href=/css/custom.css media=print onload='this.media="all"'><noscript><link rel=stylesheet href=/css/custom.css></noscript><link rel=icon href=/static/favicon.svg type=image/svg+xml><link rel=icon href=/static/favicon.ico type=image/x-icon><link rel=stylesheet href=/static/css/video-js.min.css><link rel=stylesheet href=/static/css/custom-video.css><link rel=stylesheet href=/static/css/chrome-video-fallback.css><script src=/static/js/vendor/video.min.js></script><script src=/static/js/vendor/videojs-http-streaming.min.js></script><script src=/static/js/videojs-player.min.js></script><script src=/static/js/chrome-video-fallback.min.js></script></head><body class=page><body class=page><div class="mdl-layout mdl-js-layout
|
||||||
mdl-layout--fixed-header"><header class="mdl-layout__header site-header"><div class=mdl-layout__header-row><a href=/ class=mdl-layout-title><img class=logo src=/images/logo2.webp height=50 width=auto alt="ShowerLoop Logo"></a><div class=mdl-layout-spacer></div><nav class="mdl-navigation mdl-layout--large-screen-only"><a class=mdl-navigation__link href=/ title=Home>Home</a>
|
mdl-layout--fixed-header"><header class="mdl-layout__header site-header"><div class=mdl-layout__header-row><a href=/ class=mdl-layout-title><img class=logo src=/images/logo2.webp height=50 width=auto alt="ShowerLoop Logo"></a><div class=mdl-layout-spacer></div><nav class="mdl-navigation mdl-layout--large-screen-only"><a class=mdl-navigation__link href=/ title=Home>Home</a>
|
||||||
<a class=mdl-navigation__link href=/how-it-works/ title="How It Works">How It Works</a>
|
<a class=mdl-navigation__link href=/how-it-works/ title="How It Works">How It Works</a>
|
||||||
<a class=mdl-navigation__link href=/research/ title=Research>Research</a>
|
<a class=mdl-navigation__link href=/research/ title=Research>Research</a>
|
||||||
|
@ -12,10 +12,31 @@ mdl-layout--fixed-header"><header class="mdl-layout__header site-header"><div cl
|
||||||
<a class=mdl-navigation__link href=/how-it-works/ title="How It Works" tabindex=0>How It Works</a>
|
<a class=mdl-navigation__link href=/how-it-works/ title="How It Works" tabindex=0>How It Works</a>
|
||||||
<a class=mdl-navigation__link href=/research/ title=Research tabindex=0>Research</a>
|
<a class=mdl-navigation__link href=/research/ title=Research tabindex=0>Research</a>
|
||||||
<a class=mdl-navigation__link href=/posts/ title=Posts tabindex=0>Posts</a>
|
<a class=mdl-navigation__link href=/posts/ title=Posts tabindex=0>Posts</a>
|
||||||
<a class=mdl-navigation__link href=/components/ title=Components tabindex=0>Components</a></nav></div><div class=chocolate-hero-section style=background-image:url(/images/material-bg.webp)><div class=hero-row-group><div class=hero-row><div class="hero-row-item hero-text-info"><h1 class=mdl-typography--display-3>Shower Loop</h1><h2>Open Source - Open Hardware - Ecological - Economical.</h2><p>Real-time filtration, purification, recycling & heat recovery system for showers. Made in Finland, for Earth.</p></div><div class="hero-row-item hero-video"><div class=video-container><video id=video-hero-1741460284 controls preload=none width=100% height=auto poster=/static/videos/posters/video1.webp>
|
<a class=mdl-navigation__link href=/components/ title=Components tabindex=0>Components</a></nav></div><div class=chocolate-hero-section style=background-image:url(/images/material-bg.webp)><div class=hero-row-group><div class=hero-row><div class="hero-row-item hero-text-info"><h1 class=mdl-typography--display-3>Shower Loop</h1><h2>Open Source - Open Hardware - Ecological - Economical.</h2><p>Real-time filtration, purification, recycling & heat recovery system for showers. Made in Finland, for Earth.</p></div><div class="hero-row-item hero-video"><div class=video-container>
|
||||||
<source src=/static/videos/hls/video1/index.m3u8 type=application/x-mpegurl><source src=/static/videos/video1.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
<a href="/videos/video1.html" class="video-link" title="View full ShowerLoop Introduction video">
|
||||||
web browser that supports HTML5 video</p></video></div></div></div></div></div><div class=cta><div class=cta-row-group><div class=cta-row><div class=cta-row-item><p class="mdl-typography--headline mdl-typography--font-thin">Looking to make a change? Want to support the project?</p><a href=/components class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">Check Out our Components</a></div></div></div></div><main><div class=homepage-content><div class=home-introduction><div class=chocolate-container><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class=mdl-typography--display-2>Shower Loop vs Normal Shower</h2><p class=intro-description>90% reduction in water usage and 70-90% in energy reduction for a 10 minute shower with a flow rate of 10 l/min. Savings are dependant on user behaviour and can vary. Use Just one bucket of water for a shower of any length. See the savings section for more information.</p><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Save Water</h3><p>Capture, Filter, Reuse</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Saving Energy</h3><p>By reusing warm water.</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Save The Planet</h3><p>Save Money</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Open Hardware</h3><p>Copy, improve, adapt, share</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Assemble It Yourself</h3><p>With manufactured and off-shell components</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Enjoy Better Showers</h3><p>The single pump provides stable water pressure and the thermostat and heater keep water nice and warm</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Off - Grid Ready</h3><p>The entire system can run on a 12V DC</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>No Plumber Needed</h3><p>Shower Loop is like a standalone appliance without connecting to water mains</p></div></div></div></div></div></div></div><div class=home-works><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class="mdl-typography--display-2 section-title">How It Works</h2><p class=intro-description>Showers are great, but pouring hot and almost drinkable water down the drain is not. Besides the obvious costs to the environment and your bills, there is also a conscious on unconscious psychological cost any time you create waste. To solve this problem we created Showerloop. It's a shower that collects, cleans and reuses the water in real time while you are showering. So now you can shower for as long as you like but with a reduced ecological impact.</p><div class="mdl-grid videos" style=justify-content:center><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div class=video-container><video id=video2 controls preload=auto width=100% height=auto poster=/static/videos/posters/video2.webp>
|
<video id=video-hero-1741619071 controls preload=none width=100% height=auto poster=/static/videos/posters/video1.webp>
|
||||||
<source src=/static/videos/hls/video2/index.m3u8 type=application/x-mpegurl><source src=/static/videos/video2.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
<source src=/static/videos/hls/video1/master.m3u8 type=application/x-mpegurl><source src=/static/videos/video1.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
||||||
web browser that supports HTML5 video</p></video></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div class=video-container><video id=video3 controls preload=auto width=100% height=auto poster=/static/videos/posters/video3.webp>
|
web browser that supports HTML5 video</p></video>
|
||||||
<source src=/static/videos/hls/video3/index.m3u8 type=application/x-mpegurl><source src=/static/videos/video3.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
<div class="video-overlay">
|
||||||
web browser that supports HTML5 video</p></video></div></div></div></div></div></div></div><div class=recent-posts><div class=chocolate-container><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class="mdl-typography--display-2 section-title">Recent News</h2><p class=blog-description></p><div class=mdl-grid><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone blog-post mdl-card mdl-shadow--2dp"><div class=mdl-card__title><h3 class=mdl-card__title-text>2 Ways to Be Economical When Showering With an Injury</h3></div><div class=mdl-card__supporting-text><p><p>It's extremely challenging to lead your daily life while sustaining an injury. And yet, dealing with sports injuries is something that most of us will have to go through, with nearly 2 million sports-related injuries affecting high school athletes alone per year. Most of us know the feeling of attempting to take a shower or bath when your arm is wrapped in a cast and cannot get wet. It's a defeated feeling, and it can quickly take away the motivation to shower or bathe in the first place. After all, wouldn't it be easier to not deal with the challenge? Furthermore, you may also be concerned that showering with your sports-related injury will be a longer process than a normal shower, making the entire ordeal less environmentally friendly. While there are ways to make sure you are being economical while showering, like being conscientious of what you put down the drain, you may not always be thinking about the environment when trying to avoid getting your injury wet in the shower. Fortunately, there are two ways you can be economical about your water usage while showering with an injury, including:</p></p></div><div class="mdl-card__actions mdl-card--border"><a href=/posts/blog4/ class="mdl-button mdl-button--colored mdl-button mdl-js-button mdl-button--raised mdl-button--colored" tabindex=0 aria-label="Read more about 2 Ways to Be Economical When Showering With an Injury">Read Article: 2 Ways to Be Economical When Showering With an Injury</a></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone blog-post mdl-card mdl-shadow--2dp"><div class=mdl-card__title><h3 class=mdl-card__title-text>Don't Put These Things Down The Shower Drain!</h3></div><div class=mdl-card__supporting-text><p><p>Natural water in Finland is some of the most polluted water in Europe (read the discussions in the article). You might be contributing to its pollution without realizing it, such as if you're putting things down the drain that you really shouldn't. Making your shower eco-friendly should be about saving water as well as preventing water contamination. Here's what you can do to be greener and cleaner!</p><p>In Finland, people use an average of 140 liters of water every day. By installing a product such as Showerloop into your shower, you can save water and energy. Showerloop reuses water while you shower so that it doesn't go to waste – and you don't have to feel guilty about taking longer showers. However, that's just Step One to ensuring a more eco-friendly shower. Step Two involves preventing toxins from ending up in water systems and the environment. That means you can enjoy showering without worrying about how you're harming the water and wildlife.</p></p></div><div class="mdl-card__actions mdl-card--border"><a href=/posts/blog3/ class="mdl-button mdl-button--colored mdl-button mdl-js-button mdl-button--raised mdl-button--colored" tabindex=0 aria-label="Read more about Don't Put These Things Down The Shower Drain!">Read Article: Don't Put These Things Down The Shower Drain!</a></div></div></div></div></div></div></div></main><footer class="mdl-mini-footer site-footer"><div class=mdl-mini-footer__left-section>© 2020 Shower Loop | All Rights Reserved</div><div class=mdl-mini-footer__right-section></div></footer></div></body></html>
|
<span class="video-overlay-text">Click to view full video page</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div></div></div></div></div><div class=cta><div class=cta-row-group><div class=cta-row><div class=cta-row-item><p class="mdl-typography--headline mdl-typography--font-thin">Looking to make a change? Want to support the project?</p><a href=/components class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">Check Out our Components</a></div></div></div></div><main><div class=homepage-content><div class=home-introduction><div class=chocolate-container><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class=mdl-typography--display-2>Shower Loop vs Normal Shower</h2><p class=intro-description>90% reduction in water usage and 70-90% in energy reduction for a 10 minute shower with a flow rate of 10 l/min. Savings are dependant on user behaviour and can vary. Use Just one bucket of water for a shower of any length. See the savings section for more information.</p><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Save Water</h3><p>Capture, Filter, Reuse</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Saving Energy</h3><p>By reusing warm water.</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Save The Planet</h3><p>Save Money</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Open Hardware</h3><p>Copy, improve, adapt, share</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Assemble It Yourself</h3><p>With manufactured and off-shell components</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Enjoy Better Showers</h3><p>The single pump provides stable water pressure and the thermostat and heater keep water nice and warm</p></div></div></div><div class="mdl-grid reasons"><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>Off - Grid Ready</h3><p>The entire system can run on a 12V DC</p></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div><i class="far fa-lightbulb"></i></div><div><h3>No Plumber Needed</h3><p>Shower Loop is like a standalone appliance without connecting to water mains</p></div></div></div></div></div></div></div><div class=home-works><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class="mdl-typography--display-2 section-title">How It Works</h2><p class=intro-description>Showers are great, but pouring hot and almost drinkable water down the drain is not. Besides the obvious costs to the environment and your bills, there is also a conscious on unconscious psychological cost any time you create waste. To solve this problem we created Showerloop. It's a shower that collects, cleans and reuses the water in real time while you are showering. So now you can shower for as long as you like but with a reduced ecological impact.</p><div class="mdl-grid videos" style=justify-content:center><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div class=video-container>
|
||||||
|
<a href="/videos/video2.html" class="video-link" title="View full How ShowerLoop Works video">
|
||||||
|
<video id=video2 controls preload=auto width=100% height=auto poster=/static/videos/posters/video2.webp>
|
||||||
|
<source src=/static/videos/hls/video2/master.m3u8 type=application/x-mpegurl><source src=/static/videos/video2.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
||||||
|
web browser that supports HTML5 video</p></video>
|
||||||
|
<div class="video-overlay">
|
||||||
|
<span class="video-overlay-text">Click to view full video page</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone"><div class=video-container>
|
||||||
|
<a href="/videos/video3.html" class="video-link" title="View full ShowerLoop Installation Guide video">
|
||||||
|
<video id=video3 controls preload=auto width=100% height=auto poster=/static/videos/posters/video3.webp>
|
||||||
|
<source src=/static/videos/hls/video3/master.m3u8 type=application/x-mpegurl><source src=/static/videos/video3.mp4 type=video/mp4><p>To view this video please enable JavaScript, and consider upgrading to a
|
||||||
|
web browser that supports HTML5 video</p></video>
|
||||||
|
<div class="video-overlay">
|
||||||
|
<span class="video-overlay-text">Click to view full video page</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div></div></div></div></div></div></div><div class=recent-posts><div class=chocolate-container><div class=mdl-grid><div class="mdl-cell mdl-cell--12-col"><h2 class="mdl-typography--display-2 section-title">Recent News</h2><p class=blog-description></p><div class=mdl-grid><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone blog-post mdl-card mdl-shadow--2dp"><div class=mdl-card__title><h3 class=mdl-card__title-text>2 Ways to Be Economical When Showering With an Injury</h3></div><div class=mdl-card__supporting-text><p><p>It's extremely challenging to lead your daily life while sustaining an injury. And yet, dealing with sports injuries is something that most of us will have to go through, with nearly 2 million sports-related injuries affecting high school athletes alone per year. Most of us know the feeling of attempting to take a shower or bath when your arm is wrapped in a cast and cannot get wet. It's a defeated feeling, and it can quickly take away the motivation to shower or bathe in the first place. After all, wouldn't it be easier to not deal with the challenge? Furthermore, you may also be concerned that showering with your sports-related injury will be a longer process than a normal shower, making the entire ordeal less environmentally friendly. While there are ways to make sure you are being economical while showering, like being conscientious of what you put down the drain, you may not always be thinking about the environment when trying to avoid getting your injury wet in the shower. Fortunately, there are two ways you can be economical about your water usage while showering with an injury, including:</p></p></div><div class="mdl-card__actions mdl-card--border"><a href=/posts/blog4/ class="mdl-button mdl-button--colored mdl-button mdl-js-button mdl-button--raised mdl-button--colored" tabindex=0 aria-label="Read more about 2 Ways to Be Economical When Showering With an Injury">Read Article: 2 Ways to Be Economical When Showering With an Injury</a></div></div><div class="mdl-cell mdl-cell--6-col mdl-cell--12-col-tablet mdl-cell--12-col-phone blog-post mdl-card mdl-shadow--2dp"><div class=mdl-card__title><h3 class=mdl-card__title-text>Don't Put These Things Down The Shower Drain!</h3></div><div class=mdl-card__supporting-text><p><p>Natural water in Finland is some of the most polluted water in Europe (read the discussions in the article). You might be contributing to its pollution without realizing it, such as if you're putting things down the drain that you really shouldn't. Making your shower eco-friendly should be about saving water as well as preventing water contamination. Here's what you can do to be greener and cleaner!</p><p>In Finland, people use an average of 140 liters of water every day. By installing a product such as Showerloop into your shower, you can save water and energy. Showerloop reuses water while you shower so that it doesn't go to waste – and you don't have to feel guilty about taking longer showers. However, that's just Step One to ensuring a more eco-friendly shower. Step Two involves preventing toxins from ending up in water systems and the environment. That means you can enjoy showering without worrying about how you're harming the water and wildlife.</p></p></div><div class="mdl-card__actions mdl-card--border"><a href=/posts/blog3/ class="mdl-button mdl-button--colored mdl-button mdl-js-button mdl-button--raised mdl-button--colored" tabindex=0 aria-label="Read more about Don't Put These Things Down The Shower Drain!">Read Article: Don't Put These Things Down The Shower Drain!</a></div></div></div></div></div></div></div></main><footer class="mdl-mini-footer site-footer"><div class=mdl-mini-footer__left-section>© 2020 Shower Loop | All Rights Reserved</div><div class=mdl-mini-footer__right-section></div></footer></div></body></html>
|
|
@ -0,0 +1,98 @@
|
||||||
|
/* Chrome-specific video fallback styles */
|
||||||
|
|
||||||
|
/* Poster image styling */
|
||||||
|
.chrome-poster-image {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Play button overlay */
|
||||||
|
.chrome-play-overlay {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chrome-play-button {
|
||||||
|
width: 68px;
|
||||||
|
height: 48px;
|
||||||
|
transition: transform 0.2s;
|
||||||
|
filter: drop-shadow(0 0 5px rgba(0,0,0,0.5));
|
||||||
|
}
|
||||||
|
|
||||||
|
.chrome-play-overlay:hover .chrome-play-button {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Video lightbox */
|
||||||
|
.video-lightbox {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(0, 0, 0, 0.85);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-lightbox-content {
|
||||||
|
position: relative;
|
||||||
|
width: 90%;
|
||||||
|
max-width: 960px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-lightbox video {
|
||||||
|
width: 100%;
|
||||||
|
max-height: 90vh;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-lightbox {
|
||||||
|
position: absolute;
|
||||||
|
top: -40px;
|
||||||
|
right: 0;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
font-size: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 10;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-lightbox:hover {
|
||||||
|
color: #f00;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile optimizations */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.video-lightbox-content {
|
||||||
|
width: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-lightbox {
|
||||||
|
top: -35px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
/* Custom VideoJS styling */
|
||||||
|
.video-container {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
/* Add some bottom padding to ensure controls are visible */
|
||||||
|
margin-bottom: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure the video-js player is properly contained */
|
||||||
|
.video-js {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
/* Ensure controls are within the container */
|
||||||
|
position: relative;
|
||||||
|
aspect-ratio: 16/9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fix control bar positioning */
|
||||||
|
.video-js .vjs-control-bar {
|
||||||
|
/* Ensure the control bar stays within the player's dimensions */
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Additional responsive adjustments */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.video-js {
|
||||||
|
/* Ensure the video fits on smaller screens */
|
||||||
|
max-height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-container {
|
||||||
|
/* More bottom space on mobile */
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Video link and overlay styles */
|
||||||
|
.video-link {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
text-decoration: none;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-overlay {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-link:hover .video-overlay {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.video-overlay-text {
|
||||||
|
background-color: rgba(0, 0, 0, 0.7);
|
||||||
|
color: white;
|
||||||
|
padding: 10px 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
/**
|
||||||
|
* Chrome-specific video fallback
|
||||||
|
* Since Chrome has issues with VideoJS/HLS, this script provides a fallback
|
||||||
|
* that replaces video players with play buttons that open videos in a new page.
|
||||||
|
*/
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Only run this script for Chrome browsers
|
||||||
|
const isChrome = /Chrome/.test(navigator.userAgent) && !/Edge/.test(navigator.userAgent) && !/OPR/.test(navigator.userAgent);
|
||||||
|
|
||||||
|
if (!isChrome) {
|
||||||
|
return; // Exit if not Chrome
|
||||||
|
}
|
||||||
|
|
||||||
|
// Videos to handle with IDs and their mp4 sources
|
||||||
|
const videoMappings = {
|
||||||
|
'video-hero': '/static/videos/video1.mp4',
|
||||||
|
'video2': '/static/videos/video2.mp4',
|
||||||
|
'video3': '/static/videos/video3.mp4'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Process each video
|
||||||
|
Object.keys(videoMappings).forEach(function(videoId) {
|
||||||
|
const videoElement = document.getElementById(videoId);
|
||||||
|
if (!videoElement) return;
|
||||||
|
|
||||||
|
const videoContainer = videoElement.closest('.video-container');
|
||||||
|
if (!videoContainer) return;
|
||||||
|
|
||||||
|
// Get poster image
|
||||||
|
const posterUrl = videoElement.getAttribute('poster');
|
||||||
|
|
||||||
|
// Create play button overlay
|
||||||
|
const playButtonOverlay = document.createElement('div');
|
||||||
|
playButtonOverlay.className = 'chrome-play-overlay';
|
||||||
|
playButtonOverlay.innerHTML = `
|
||||||
|
<div class="chrome-play-button">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="68" height="48" viewBox="0 0 68 48">
|
||||||
|
<path fill="#f00" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z"></path>
|
||||||
|
<path fill="#fff" d="M 45,24 27,14 27,34"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Style the container for positioning
|
||||||
|
videoContainer.style.position = 'relative';
|
||||||
|
|
||||||
|
// Create a poster image as background
|
||||||
|
if (posterUrl) {
|
||||||
|
const posterImage = document.createElement('div');
|
||||||
|
posterImage.className = 'chrome-poster-image';
|
||||||
|
posterImage.style.backgroundImage = `url(${posterUrl})`;
|
||||||
|
videoContainer.appendChild(posterImage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add click event to open the video in a new page/overlay
|
||||||
|
playButtonOverlay.addEventListener('click', function() {
|
||||||
|
// Create the lightbox overlay
|
||||||
|
const lightbox = document.createElement('div');
|
||||||
|
lightbox.className = 'video-lightbox';
|
||||||
|
lightbox.innerHTML = `
|
||||||
|
<div class="video-lightbox-content">
|
||||||
|
<button class="close-lightbox">×</button>
|
||||||
|
<video controls autoplay>
|
||||||
|
<source src="${videoMappings[videoId]}" type="video/mp4">
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Add the lightbox to the body
|
||||||
|
document.body.appendChild(lightbox);
|
||||||
|
|
||||||
|
// Add close functionality
|
||||||
|
const closeButton = lightbox.querySelector('.close-lightbox');
|
||||||
|
closeButton.addEventListener('click', function() {
|
||||||
|
document.body.removeChild(lightbox);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Close when clicking outside the video
|
||||||
|
lightbox.addEventListener('click', function(e) {
|
||||||
|
if (e.target === lightbox) {
|
||||||
|
document.body.removeChild(lightbox);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Hide the original video element
|
||||||
|
videoElement.style.display = 'none';
|
||||||
|
|
||||||
|
// Add the play button to the container
|
||||||
|
videoContainer.appendChild(playButtonOverlay);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
document.addEventListener("DOMContentLoaded",function(){const e=/Chrome/.test(navigator.userAgent)&&!/Edge/.test(navigator.userAgent)&&!/OPR/.test(navigator.userAgent);if(!e)return;const t={"video-hero":"/static/videos/video1.mp4",video2:"/static/videos/video2.mp4",video3:"/static/videos/video3.mp4"};Object.keys(t).forEach(function(e){const o=document.getElementById(e);if(!o)return;const n=o.closest(".video-container");if(!n)return;const i=o.getAttribute("poster"),r=document.createElement("div");if(r.className="chrome-play-overlay",r.innerHTML='\n <div class="chrome-play-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="68" height="48" viewBox="0 0 68 48">\n <path fill="#f00" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z"></path>\n <path fill="#fff" d="M 45,24 27,14 27,34"></path>\n </svg>\n </div>\n ',n.style.position="relative",i){const e=document.createElement("div");e.className="chrome-poster-image",e.style.backgroundImage=`url(${i})`,n.appendChild(e)}r.addEventListener("click",function(){const o=document.createElement("div");o.className="video-lightbox",o.innerHTML=`\n <div class="video-lightbox-content">\n <button class="close-lightbox">×</button>\n <video controls autoplay>\n <source src="${t[e]}" type="video/mp4">\n Your browser does not support the video tag.\n </video>\n </div>\n `,document.body.appendChild(o);const n=o.querySelector(".close-lightbox");n.addEventListener("click",function(){document.body.removeChild(o)}),o.addEventListener("click",function(e){e.target===o&&document.body.removeChild(o)})}),o.style.display="none",n.appendChild(r)})});
|
|
@ -0,0 +1,45 @@
|
||||||
|
/**
|
||||||
|
* VideoJS Player initialization
|
||||||
|
* This script initializes VideoJS for all video elements, handling both
|
||||||
|
* videos with data-setup attribute and regular videos.
|
||||||
|
*/
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// First, initialize all videos with the data-setup attribute
|
||||||
|
// VideoJS will automatically process these
|
||||||
|
|
||||||
|
// Then find any remaining videos (without video-js class) that need to be initialized
|
||||||
|
const regularVideos = document.querySelectorAll('video:not(.video-js)');
|
||||||
|
|
||||||
|
if (regularVideos.length) {
|
||||||
|
regularVideos.forEach(function(video) {
|
||||||
|
// Ensure the video has an ID
|
||||||
|
const id = video.id || 'video-' + Math.floor(Math.random() * 1000000);
|
||||||
|
video.id = id;
|
||||||
|
|
||||||
|
// Add VideoJS class
|
||||||
|
video.classList.add('video-js');
|
||||||
|
video.classList.add('vjs-big-play-centered');
|
||||||
|
|
||||||
|
// Initialize with default options
|
||||||
|
videojs(id, {
|
||||||
|
controls: true,
|
||||||
|
autoplay: false,
|
||||||
|
preload: 'auto'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Additional check to ensure all video.video-js elements are initialized
|
||||||
|
// This helps with videos that have the class but weren't auto-initialized
|
||||||
|
const videojsElements = document.querySelectorAll('video.video-js');
|
||||||
|
videojsElements.forEach(function(videoElement) {
|
||||||
|
const id = videoElement.id;
|
||||||
|
if (id) {
|
||||||
|
// Check if this element already has a VideoJS instance
|
||||||
|
if (!videojs.getPlayers()[id]) {
|
||||||
|
// Initialize VideoJS for this element
|
||||||
|
videojs(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll("video:not(.video-js)");e.length&&e.forEach(function(e){const t=e.id||"video-"+Math.floor(1e6*Math.random());e.id=t,e.classList.add("video-js"),e.classList.add("vjs-big-play-centered"),videojs(t,{controls:!0,autoplay:!1,preload:"auto"})});const t=document.querySelectorAll("video.video-js");t.forEach(function(e){const t=e.id;t&&!videojs.getPlayers()[t]&&videojs(t)})});
|
|
@ -163,7 +163,12 @@
|
||||||
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml">
|
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml">
|
||||||
<link rel="icon" href="/static/favicon.ico" type="image/x-icon">
|
<link rel="icon" href="/static/favicon.ico" type="image/x-icon">
|
||||||
|
|
||||||
<!-- HLS Video Support -->
|
<!-- VideoJS for HLS -->
|
||||||
<script src="/static/js/vendor/hls.min.js" defer></script>
|
<link rel="stylesheet" href="/static/css/video-js.min.css">
|
||||||
<script src="/static/js/hls-player.min.js" defer></script>
|
<link rel="stylesheet" href="/static/css/custom-video.css">
|
||||||
|
<link rel="stylesheet" href="/static/css/chrome-video-fallback.css">
|
||||||
|
<script src="/static/js/vendor/video.min.js"></script>
|
||||||
|
<script src="/static/js/vendor/videojs-http-streaming.min.js"></script>
|
||||||
|
<script src="/static/js/videojs-player.min.js"></script>
|
||||||
|
<script src="/static/js/chrome-video-fallback.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXT-X-VERSION:3
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=256:144
|
|
||||||
video1_144p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=426:240
|
|
||||||
video1_240p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640:360
|
|
||||||
video1_360p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=1500000,RESOLUTION=854:480
|
|
||||||
video1_480p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280:720
|
|
||||||
video1_720p.m3u8
|
|
|
@ -1,12 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXT-X-VERSION:3
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=256:144
|
|
||||||
video1_144p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=426:240
|
|
||||||
video1_240p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640:360
|
|
||||||
video1_360p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=1500000,RESOLUTION=854:480
|
|
||||||
video1_480p.m3u8
|
|
||||||
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280:720
|
|
||||||
video1_720p.m3u8
|
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
|
@ -1,86 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXT-X-VERSION:3
|
|
||||||
#EXT-X-TARGETDURATION:6
|
|
||||||
#EXT-X-MEDIA-SEQUENCE:0
|
|
||||||
#EXT-X-PLAYLIST-TYPE:VOD
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_144p_000.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_001.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_002.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_003.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_004.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_005.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_006.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_007.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_008.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_009.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_010.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_011.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_144p_012.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_013.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_014.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_015.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_016.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_017.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_018.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_019.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_020.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_021.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_022.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_023.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_144p_024.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_025.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_026.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_027.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_028.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_029.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_030.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_031.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_032.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_033.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_034.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_035.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_144p_036.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_037.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_144p_038.ts
|
|
||||||
#EXTINF:2.600000,
|
|
||||||
video1_144p_039.ts
|
|
||||||
#EXT-X-ENDLIST
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,86 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXT-X-VERSION:3
|
|
||||||
#EXT-X-TARGETDURATION:6
|
|
||||||
#EXT-X-MEDIA-SEQUENCE:0
|
|
||||||
#EXT-X-PLAYLIST-TYPE:VOD
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_240p_000.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_001.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_002.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_003.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_004.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_005.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_006.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_007.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_008.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_009.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_010.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_011.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_240p_012.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_013.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_014.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_015.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_016.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_017.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_018.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_019.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_020.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_021.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_022.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_023.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_240p_024.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_025.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_026.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_027.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_028.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_029.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_030.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_031.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_032.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_033.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_034.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_035.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_240p_036.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_037.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_240p_038.ts
|
|
||||||
#EXTINF:2.600000,
|
|
||||||
video1_240p_039.ts
|
|
||||||
#EXT-X-ENDLIST
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,86 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXT-X-VERSION:3
|
|
||||||
#EXT-X-TARGETDURATION:6
|
|
||||||
#EXT-X-MEDIA-SEQUENCE:0
|
|
||||||
#EXT-X-PLAYLIST-TYPE:VOD
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_360p_000.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_001.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_002.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_003.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_004.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_005.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_006.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_007.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_008.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_009.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_010.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_011.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_360p_012.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_013.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_014.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_015.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_016.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_017.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_018.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_019.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_020.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_021.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_022.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_023.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_360p_024.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_025.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_026.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_027.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_028.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_029.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_030.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_031.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_032.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_033.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_034.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_035.ts
|
|
||||||
#EXTINF:5.760000,
|
|
||||||
video1_360p_036.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_037.ts
|
|
||||||
#EXTINF:3.840000,
|
|
||||||
video1_360p_038.ts
|
|
||||||
#EXTINF:2.600000,
|
|
||||||
video1_360p_039.ts
|
|
||||||
#EXT-X-ENDLIST
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue