运行 jekyll serve (ECONNRESET) 时,Chrome 中无法播放嵌入式本地 mp4

use*_*688 6 google-chrome jekyll html5-video

我正在一个简单的 jekyll 网站上工作,我想在降价文件中嵌入视频(本地存储的 mp4 - 不是 youtube/流媒体服务)。

我只是使用基本标签:

<video width="600" controls="controls">
  <source src="{{ site.my-media-path }}/myvideo.mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

当我在jekyll serve本地运行和访问我的页面时,它在 Firefox 中完美运行,而在 Chrome 中,它要么只显示缩略图(并在播放几毫秒后中断),要么显示空控件。

使用 Chrome 时,jekyll 在服务器端吐出以下错误:

[2018-02-19 17:57:34] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:11 
    /home/(((my_login)))/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:80:in `eof?'
    /home/(((my_login)))/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:80:in `run'
    /home/(((my_login)))/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'
Run Code Online (Sandbox Code Playgroud)

Firefox 上没有这样的错误。

如果我转到页面源并直接在 chrome 中点击视频链接(而不是通过页面),同样的事情会发生。(注意:我知道路径是正确的,因为我可以很好地保存/下载它)

如果我直接把视频从硬盘拖到我的浏览器中,它工作正常,所以它知道如何播放它。

通过他们的 iframe 链接嵌入 YouTube 视频工作正常。

我尝试过的事情:

  • 在 Chrome 设置中禁用硬件加速
  • 清除浏览历史记录/缓存(某些网站似乎建议对于未播放的嵌入式视频)
  • 使用 kdenlive 将视频转换为 webm,并尝试使用它)。

小智 3

我自己最近也遇到过这个问题。通过确保视频嵌入了该属性,我能够始终使视频在 Chrome 中正确播放muted。例如:

<video muted autoplay controls>
    <source src="{{ site.my-media-path }}/myvideo.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

我认为这是必要的,因为 Chrome 处理带有音频的自动播放内容的方式发生了变化。

https://googlechrome.github.io/samples/muted-autoplay/