How to make a html5 video poster image transparent to see the background image while video is not playing
I am looking for a solution to get a transparent poster image for html5 video.
I have a page with a background picture over the full width of the page (e.g. 1920x600). I would like to only show the video play button in the middle of this background picture. Video and background picture have different aspect ratios. After pressing the play button the video should be displayed over the background picture in the correct aspect ratio.
As html5 video player I use Plyr.
This is the actual implementation for the player:
<style>
.container_plyr_teaser {
padding: 16px 0px 0px 0px;
max-width: 1000px;
margin: auto;
}
.plyr {
border-radius: 15px;
}
.plyr--stopped .plyr__controls {
opacity: 0;
pointer-events: none;
}
</style>
<div class="container_plyr_teaser">
<video class="js-player" controls playsinline preload="none" id="player11" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="wolken_360p.mp4" type="video/mp4" size="360">
<source src="wolken_720p.mp4" type="video/mp4" size="720">
<source src="wolken_1080p.mp4" type="video/mp4" size="1080">
</video>
</div>
My first idea, using a transparent poster image poster="Wolken_Poster_transparent_16x9.png"
results in a black video player.
Using a transparent poster image results in a black video player
My second idea was to use an exact cutout of the background picture as video poster image. This looks as desired, but only for the exact resolution.
exact cutout of the background picture as video poster
With a wrong resolution of the browser window you will get an unattractive overlap between video poster image and background image.
unattractive overlap
An ideas for another solution?
css html5 html5-video poster
add a comment |
I am looking for a solution to get a transparent poster image for html5 video.
I have a page with a background picture over the full width of the page (e.g. 1920x600). I would like to only show the video play button in the middle of this background picture. Video and background picture have different aspect ratios. After pressing the play button the video should be displayed over the background picture in the correct aspect ratio.
As html5 video player I use Plyr.
This is the actual implementation for the player:
<style>
.container_plyr_teaser {
padding: 16px 0px 0px 0px;
max-width: 1000px;
margin: auto;
}
.plyr {
border-radius: 15px;
}
.plyr--stopped .plyr__controls {
opacity: 0;
pointer-events: none;
}
</style>
<div class="container_plyr_teaser">
<video class="js-player" controls playsinline preload="none" id="player11" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="wolken_360p.mp4" type="video/mp4" size="360">
<source src="wolken_720p.mp4" type="video/mp4" size="720">
<source src="wolken_1080p.mp4" type="video/mp4" size="1080">
</video>
</div>
My first idea, using a transparent poster image poster="Wolken_Poster_transparent_16x9.png"
results in a black video player.
Using a transparent poster image results in a black video player
My second idea was to use an exact cutout of the background picture as video poster image. This looks as desired, but only for the exact resolution.
exact cutout of the background picture as video poster
With a wrong resolution of the browser window you will get an unattractive overlap between video poster image and background image.
unattractive overlap
An ideas for another solution?
css html5 html5-video poster
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50
add a comment |
I am looking for a solution to get a transparent poster image for html5 video.
I have a page with a background picture over the full width of the page (e.g. 1920x600). I would like to only show the video play button in the middle of this background picture. Video and background picture have different aspect ratios. After pressing the play button the video should be displayed over the background picture in the correct aspect ratio.
As html5 video player I use Plyr.
This is the actual implementation for the player:
<style>
.container_plyr_teaser {
padding: 16px 0px 0px 0px;
max-width: 1000px;
margin: auto;
}
.plyr {
border-radius: 15px;
}
.plyr--stopped .plyr__controls {
opacity: 0;
pointer-events: none;
}
</style>
<div class="container_plyr_teaser">
<video class="js-player" controls playsinline preload="none" id="player11" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="wolken_360p.mp4" type="video/mp4" size="360">
<source src="wolken_720p.mp4" type="video/mp4" size="720">
<source src="wolken_1080p.mp4" type="video/mp4" size="1080">
</video>
</div>
My first idea, using a transparent poster image poster="Wolken_Poster_transparent_16x9.png"
results in a black video player.
Using a transparent poster image results in a black video player
My second idea was to use an exact cutout of the background picture as video poster image. This looks as desired, but only for the exact resolution.
exact cutout of the background picture as video poster
With a wrong resolution of the browser window you will get an unattractive overlap between video poster image and background image.
unattractive overlap
An ideas for another solution?
css html5 html5-video poster
I am looking for a solution to get a transparent poster image for html5 video.
I have a page with a background picture over the full width of the page (e.g. 1920x600). I would like to only show the video play button in the middle of this background picture. Video and background picture have different aspect ratios. After pressing the play button the video should be displayed over the background picture in the correct aspect ratio.
As html5 video player I use Plyr.
This is the actual implementation for the player:
<style>
.container_plyr_teaser {
padding: 16px 0px 0px 0px;
max-width: 1000px;
margin: auto;
}
.plyr {
border-radius: 15px;
}
.plyr--stopped .plyr__controls {
opacity: 0;
pointer-events: none;
}
</style>
<div class="container_plyr_teaser">
<video class="js-player" controls playsinline preload="none" id="player11" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="wolken_360p.mp4" type="video/mp4" size="360">
<source src="wolken_720p.mp4" type="video/mp4" size="720">
<source src="wolken_1080p.mp4" type="video/mp4" size="1080">
</video>
</div>
My first idea, using a transparent poster image poster="Wolken_Poster_transparent_16x9.png"
results in a black video player.
Using a transparent poster image results in a black video player
My second idea was to use an exact cutout of the background picture as video poster image. This looks as desired, but only for the exact resolution.
exact cutout of the background picture as video poster
With a wrong resolution of the browser window you will get an unattractive overlap between video poster image and background image.
unattractive overlap
An ideas for another solution?
css html5 html5-video poster
css html5 html5-video poster
asked Nov 23 '18 at 13:31
MichaGueMichaGue
164
164
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50
add a comment |
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50
add a comment |
1 Answer
1
active
oldest
votes
My solution looks like the following:
<!-- generate an extra button to start the video -->
<button id="button_teaser" onclick="playPause()">Play</button>
<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="video_360p.mp4" type="video/mp4" size="360">
<source src="video_720p.mp4" type="video/mp4" size="720">
<source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>
<!-- hide video -->
<script>
$('#video_teaser').hide();
</script>
<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
$('#button_teaser').click(function(){
$('#video_teaser').show();
$('#button_teaser').hide();
$('#video_teaser').get(0).play();
});
});
</script>
<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
$('#video_teaser').on('ended',function(){
$('#video_teaser').hide();
$('#button_teaser').show();
});
});
</script>
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53447661%2fhow-to-make-a-html5-video-poster-image-transparent-to-see-the-background-image-w%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
My solution looks like the following:
<!-- generate an extra button to start the video -->
<button id="button_teaser" onclick="playPause()">Play</button>
<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="video_360p.mp4" type="video/mp4" size="360">
<source src="video_720p.mp4" type="video/mp4" size="720">
<source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>
<!-- hide video -->
<script>
$('#video_teaser').hide();
</script>
<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
$('#button_teaser').click(function(){
$('#video_teaser').show();
$('#button_teaser').hide();
$('#video_teaser').get(0).play();
});
});
</script>
<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
$('#video_teaser').on('ended',function(){
$('#video_teaser').hide();
$('#button_teaser').show();
});
});
</script>
add a comment |
My solution looks like the following:
<!-- generate an extra button to start the video -->
<button id="button_teaser" onclick="playPause()">Play</button>
<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="video_360p.mp4" type="video/mp4" size="360">
<source src="video_720p.mp4" type="video/mp4" size="720">
<source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>
<!-- hide video -->
<script>
$('#video_teaser').hide();
</script>
<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
$('#button_teaser').click(function(){
$('#video_teaser').show();
$('#button_teaser').hide();
$('#video_teaser').get(0).play();
});
});
</script>
<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
$('#video_teaser').on('ended',function(){
$('#video_teaser').hide();
$('#button_teaser').show();
});
});
</script>
add a comment |
My solution looks like the following:
<!-- generate an extra button to start the video -->
<button id="button_teaser" onclick="playPause()">Play</button>
<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="video_360p.mp4" type="video/mp4" size="360">
<source src="video_720p.mp4" type="video/mp4" size="720">
<source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>
<!-- hide video -->
<script>
$('#video_teaser').hide();
</script>
<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
$('#button_teaser').click(function(){
$('#video_teaser').show();
$('#button_teaser').hide();
$('#video_teaser').get(0).play();
});
});
</script>
<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
$('#video_teaser').on('ended',function(){
$('#video_teaser').hide();
$('#button_teaser').show();
});
});
</script>
My solution looks like the following:
<!-- generate an extra button to start the video -->
<button id="button_teaser" onclick="playPause()">Play</button>
<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
<source src="video_360p.mp4" type="video/mp4" size="360">
<source src="video_720p.mp4" type="video/mp4" size="720">
<source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>
<!-- hide video -->
<script>
$('#video_teaser').hide();
</script>
<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
$('#button_teaser').click(function(){
$('#video_teaser').show();
$('#button_teaser').hide();
$('#video_teaser').get(0).play();
});
});
</script>
<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
$('#video_teaser').on('ended',function(){
$('#video_teaser').hide();
$('#button_teaser').show();
});
});
</script>
answered Nov 26 '18 at 15:30
MichaGueMichaGue
164
164
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53447661%2fhow-to-make-a-html5-video-poster-image-transparent-to-see-the-background-image-w%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
hide the video, and just keep a play button, when button is pressed, play the hidden video on the top of the image
– chintuyadavsara
Nov 23 '18 at 13:39
Thanks for your idea. Do you have some example code how to hide the video and just keep the play button?
– MichaGue
Nov 23 '18 at 13:50