网站视频过大,加载缓慢解决方法【分段加载视频】

上班无聊的时候写了一个个人网站,加了个视频,发现加载的特别慢,必应搜了一下,大部分建议都是增加服务器带宽,那为何不使用分段加载。因为优点能解决影响,缺点也会带来一个新的影响

优点能将大视频分割成多个小视频后。在播放时,先加载第一段视频,当观看第一段时,后续的视频可以在后台加载。从而减少用户等待的时间。缺点是如果视频在分割或播放切换时处理不当,会导致播放不连贯。在片段之间的过渡可能会出现明显的停顿感,影响观看。所以分段加载更适合个人使用或者要求不高的网站使用。


以下代码只是初步代码,如需使用可正常运行后根据自身想法修改

/* HTML */

复制代码
<div class="video-container">  
	<video id="video1" controls preload="auto"><source src="shipin/1.mp4" type="video/mp4"></video>
	<video id="video2" style="display:none;" controls preload="auto"><source src="shipin/2.mp4" type="video/mp4"></video>
	<video id="video3" style="display:none;" controls preload="auto"><source src="shipin/3.mp4" type="video/mp4"></video>
	<video id="video4" style="display:none;" controls preload="auto"><source src="shipin/4.mp4" type="video/mp4"></video>
</div>

/* JAVA */

复制代码
<script>  
document.addEventListener('DOMContentLoaded', (event) => {
    const videos = [
        document.getElementById('video1'),
        document.getElementById('video2'),
        document.getElementById('video3'),
        document.getElementById('video4')
    ];
  
    let currentIndex = 0;
    const totalVideos = videos.length;
	
    videos.forEach((video, index) => {
		video.addEventListener('ended',()=>{
			// 隐藏当前视频
            videos[index].style.display = 'none';
			// 更新以指向下一个视频
            currentIndex = (index + 1) % totalVideos;
			// 显示下一个视频,但不播放
            videos[currentIndex].style.display = 'block';
            // 不是第一个视频,则播放它   是第一个视频,则不播放,保持停止状态
            if(currentIndex !== 0){
				videos[currentIndex].play();
            }
        });
    });
	
    // 初始播放第一个视频
    videos[currentIndex].style.display = 'block';
    videos[currentIndex].play();
});
</script>

/* STYLE */

复制代码
<style>
    .video-container{
        position: relative;
        width: 100%;
        height: 0;
        padding-bottom: 56.25%;
        overflow: hidden;  
    }
	
    .video-container video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }  
</style>
相关推荐
tang777895 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
全速向光6 小时前
VLC Media Player:开源全能跨平台播放器详解
开源·音视频
evans在进步6 小时前
Tomcat NIO 工作原理详解:从 Acceptor、Poller 到容器处理链
java·tomcat·nio
新时代牛马6 小时前
Linux 系统调用与IPC 完整篇:从syscall 入口、VDSO 到pipe/shm/futex 选型
linux·运维·服务器
黄一一9112437 小时前
跨平台视频图片压缩互转!离线视频压缩工具!Github开源轻松无损压缩视频!Win/Mac/Linux三端通用开源工具
windows·macos·音视频·开源软件
科技拓维者7 小时前
短视频配音音效去哪里找比较好?短视频创作者音效指南
人工智能·音视频
javaDocker7 小时前
电视台自建AI短视频生产线与算力底座:技术架构、关键实现与优化实践
人工智能·架构·音视频
渡我白衣7 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
电商API_180079052478 小时前
电商商品价格监控工具淘宝京东商品价格抓取API项目实操分享
java·大数据·开发语言·前端·数据挖掘
zzzll11118 小时前
深度剖析:HashMap 并发死循环与 ConcurrentHashMap 两代演进全解
java·开发语言