Javascript 循环HTML5视频会在循环中闪烁黑屏

Javascript 循环HTML5视频会在循环中闪烁黑屏,javascript,css,html,html5-video,Javascript,Css,Html,Html5 Video,我有一个20秒的HTML5视频,通过jquery循环。但每次视频开始时,黑屏都会快速闪烁,非常刺耳,因为它应该与白色背景混合在一起 我尝试使用CSS将视频背景设置为白色,但没有效果。有什么办法可以达到预期的效果吗 <video id="projects-video" width="841px" height="490px" autoplay poster="video/map1280-poster.jpg" > <source src="video/map841.mp4

我有一个20秒的HTML5视频,通过jquery循环。但每次视频开始时,黑屏都会快速闪烁,非常刺耳,因为它应该与白色背景混合在一起

我尝试使用CSS将视频背景设置为白色,但没有效果。有什么办法可以达到预期的效果吗

<video id="projects-video" width="841px" height="490px" autoplay poster="video/map1280-poster.jpg" >
    <source src="video/map841.mp4" type="video/mp4"/>
    Your browser does not support the video tag. I suggest you upgrade your browser.
 </video>

<script>
   $("#projects-video").bind('ended', function(){
            this.play();
     });
</script>

您的浏览器不支持视频标记。我建议你升级你的浏览器。
$(“#项目视频”).bind('end',function(){
这个。play();
});

只是一个猜测,但可以尝试在0.5秒后播放循环的视频,以跳过开始时的黑屏。查找可用于操作功能的事件列表。我会查看currentTime事件,最后可能设置为
this.currentTime
,然后设置
this.play()



希望这有帮助,这个自动播放和循环HTML5视频而不使用jQuery,也许这与您想要的有所不同,但如果您只是想循环视频,这应该可以做到:-)黑屏似乎是视频第一帧之前的时间。 例如,如果视频速度为30FPS,则使用video.currentTime=0.034(1/30=0.0333…),黑屏应消失

我知道这篇文章很老了,但我希望它将来能帮助别人:)

对我有用

// typescript code
    const video = document.getElementById('main-video') as HTMLVideoElement;
    video.addEventListener('ended', () => {
      video.currentTime = 0.05;
      video.play();
    });

// html !!!important delete loop attribute

<video autoplay muted id="main-video">
   <source src="..path to video" type="video/mp4"></source>
</video>
//类型脚本代码
const video=document.getElementById('main-video')作为HTMLVideoElement;
video.addEventListener('end',()=>{
video.currentTime=0.05;
video.play();
});
//html!!!重要的删除循环属性

对于持续时间与秒不成正比(例如,10秒和400毫秒)的短视频,我也有同样的问题。解决方案是修剪可能因某些编码问题而添加的部分:

ffmpeg -i in.mp4 -ss 00:00:00.0 -t 00:00:10.0 -an out.mp4
我还使用了本机循环和自动播放方法:

<video muted autoPlay loop poster="/static/index/background.jpg" css={videoStyleSheet}>
    <source src="/static/index/output.mp4" type="video/mp4" />
</video>


有人能解决这个问题吗?这个。我也遇到了同样的问题,解决方法是在视频结束时删除一些额外的帧。谢谢
<video muted autoPlay loop poster="/static/index/background.jpg" css={videoStyleSheet}>
    <source src="/static/index/output.mp4" type="video/mp4" />
</video>