Jupyter HTML 视频播放速度

Jupyter HTML Video playback speed

我知道我可以像这样在 Jupyter notebook 中显示视频:

from IPython.display import HTML

HTML("""
    <video alt="test" controls>
        <source src="test.mp4" type="video/mp4">
    </video>
""")

但是有没有办法控制播放速度呢?例如以半速播放视频。

Jupyter Notebook 中,当您右键单击视频时,您应该会看到上下文菜单,您可以在其中更改速度。

Jupyter Lab 在此菜单中没有速度。

如果你想在开始时设置速度那么你必须在JavaScript

中使用playbackRate
from IPython.display import HTML

HTML("""
<video alt="test" controls id="theVideo">
  <source src="https://archive.org/download/Popeye_forPresident/Popeye_forPresident_512kb.mp4">
</video>

<script>
video = document.getElementById("theVideo")
video.playbackRate = 4.0;
</script>
""")

同样的方法你也可以创建按钮来控制速度。

from IPython.display import HTML

HTML("""
<button id="speed_4.0">Speed 4.0</button>
<button id="speed_0.5">Speed 0.5</button>

<hr>

<video alt="test" controls id="theVideo">
  <source src="https://archive.org/download/Popeye_forPresident/Popeye_forPresident_512kb.mp4">
</video>
    
<script>
video = document.getElementById("theVideo");
//video.playbackRate = 4.0;

document.getElementById("speed_4.0").addEventListener("click", function(){ 
    video.playbackRate = 4.0;
});

document.getElementById("speed_0.5").addEventListener("click", function(){ 
    video.playbackRate = 0.5;
});
</script>
""")

如果您将相同的代码放在下一个单元格中,则按钮可能无法使用,您可能必须为按钮和视频使用新的 ID。 ID 应该是唯一的。

也许需要一些其他代码来在每个单元格中自动生成唯一 ID。


在代码中我把URL放到了真实视频Popeye for President所以大家可以测试一下。