I would like to show a small clip from a long video file that is over 10 minutes long. This segment of video would start at time offset /seek time of 90 seconds and would have a duration of 45 seconds . How can I do that ?
Phillip Brown is right. you can solve this by controlling yout html-player via js. for example in this case, the video would autostart and will play the videofile should 00:10min to 00:40min
<video id="yourVideoplayer" width="640" height="480" preload="auto"> //preload="auto" buffers the video if initialize. you cannot seek a video which isn t buffering already
<source src="test.mp4" type="video/mp4" />
<source src="test.ogv" type="video/ogg" />
This browser is not compatible with HTML 5
</video>
<script type="text/javascript">
window.onload = playVideoTeaserFrom(10,40); //this event will call the function after page was loaded
function playVideoTeaserFrom (startTime, endTime) {
var videoplayer = document.getElementById("yourVideoplayer"); //get your videoplayer
videoplayer.currentTime = starttime; //not sure if player seeks to seconds or milliseconds
videoplayer.play();
//call function to stop player after given intervall
var stopVideoAfter = (endTime - startTime) * 1000; //* 1000, because Timer is in ms
setTimeout(function(){
videoplayer.stop();
}, stopVideoAfter);
}
</script>
there might be some bugs in it, but i guess you ll get the point
window.onload
to undefined, and other problems with the code. There are obvious bugs. –
Outfield timeupdate
event, and pause the video if vid.currentTime
is not between start to end –
Capitulum HTML5 video also supports the Media Fragment URI spec. This will allow you to specify only a segment of the video to play. Using it is fairly trivial:
<source src="video.mp4#t=30,45" type="video/mp4"/>
Will start the video at the 30 second mark and pause the video at the 45 second mark.
Phillip Brown is right. you can solve this by controlling yout html-player via js. for example in this case, the video would autostart and will play the videofile should 00:10min to 00:40min
<video id="yourVideoplayer" width="640" height="480" preload="auto"> //preload="auto" buffers the video if initialize. you cannot seek a video which isn t buffering already
<source src="test.mp4" type="video/mp4" />
<source src="test.ogv" type="video/ogg" />
This browser is not compatible with HTML 5
</video>
<script type="text/javascript">
window.onload = playVideoTeaserFrom(10,40); //this event will call the function after page was loaded
function playVideoTeaserFrom (startTime, endTime) {
var videoplayer = document.getElementById("yourVideoplayer"); //get your videoplayer
videoplayer.currentTime = starttime; //not sure if player seeks to seconds or milliseconds
videoplayer.play();
//call function to stop player after given intervall
var stopVideoAfter = (endTime - startTime) * 1000; //* 1000, because Timer is in ms
setTimeout(function(){
videoplayer.stop();
}, stopVideoAfter);
}
</script>
there might be some bugs in it, but i guess you ll get the point
window.onload
to undefined, and other problems with the code. There are obvious bugs. –
Outfield timeupdate
event, and pause the video if vid.currentTime
is not between start to end –
Capitulum <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<video id="myVideo" controls playsinline muted>
<source src="https://sample-videos.com/video123/mp4/480/big_buck_bunny_480p_30mb.mp4" type="video/mp4">
</video>
<script>
let vid = document.getElementById("myVideo");
const delay = ms => new Promise(resolve => setTimeout(resolve,ms));
async function run(start,end,speed=1){
vid.playbackRate = speed
while(true){
vid.currentTime = start;
await vid.play()
await delay((end - start)*1000)
await vid.pause()
}
}
window.onload = run(70,74)
</script>
</body>
</html>
We can use asynchronies function to achieve this. This code is a modified version of @longi code
© 2022 - 2024 — McMap. All rights reserved.