播放长视频文件的一小部分

时间:2011-11-15 08:13:50

标签: video html5-video

我需要播放长视频的一小部分内容。我无法编辑视频以剪切我想要的部分,因为我将有大约6,000个不同的片段,制作单个文件需要很长时间(而且存储空间存在问题)。

所以,假设我想在视频中启动剪辑120秒并播放180秒。

这是我的代码:


<!DOCTYPE html>

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Video</title>    

    <script src="Backend/build/jquery.js"></script> 
    <script src="Backend/build/mediaelement-and-player.min.js"></script>
    <link rel="stylesheet" href="Backend/build/mediaelementplayer.css" />
</head>

<body>

<video width="720" height="480" id="player1" controls preload="none" >
    <source src="Backend/media/test.mp4" type="video/mp4">
    <source src="Backend/media/test.webm" type="video/webm">    
    <source src="Backend/media/test.ogv" type="video/ogv">
    <object width="720" height="480" type="application/x-shockwave-flash" data="Backend/build/flashmediaelement.swf">
        <param name="movie" value="flashmediaelement.swf" />
        <param name="flashvars" value="controls=true&file=Backend/media/test.mp4" />
    </object>
</video>

<script>
$('video,audio').mediaelementplayer();
</script>

</body>

</html>

2 个答案:

答案 0 :(得分:0)

对于HTML5视频代码,您可以使用javascript currentTime属性从一个点开始,使用timeupdate事件处理程序停止视频。

// Javascript

var starttime = 2000;  // start at 2 seconds
var endtime = 4000;    // stop at 4 seconds

var video = document.getElementById('video');
video.currentTime = starttime;

video.addEventListener("timeupdate", function() {
    if (video.currentTime >= endtime) {
        video.pause();
    }
}, false);

对于Flash视频,它完全取决于您正在使用的Flash播放器。

请注意,整个视频可能会被加载,考虑到您的问题,我认为这是一个非常大的视频。

答案 1 :(得分:0)

如果您对服务器有一定程度的控制权,则可以搜索到媒体文件。

示例:使用H264 Streaming Module(Apache httpd,lighttpd,nginx,IIS)。流中的位置在查询字符串中引用。示例:http://server/media.mp4?position=32大名称开源Flash播放器(如JWPlayer)也支持此方案。

请注意,您需要确保以友好的方式对媒体进行编码 - 即小的关键帧间距值。