繁体   English   中英

多个视频并排与 IPython Display

[英]Multiple videos side-by-side with IPython Display

我一直在使用此 StackOverflow 帖子中建议的有用答案在 Jupyter Notebook 中一次查看多个视频。 本质上,HTML 似乎没有工作,但 IPython 这样做(给定所需视频的文件filepaths列表)很神奇:

from IPython import display

for filepath in filepaths:
    display.display(display.Video(filepath, embed=True))

现在我得到了 output 中显示的所有视频。 但是,这些视频是垂直堆叠的。 侧面有很多空间,最好先将它们并排放置而不是垂直放置,这样我可以很容易地在屏幕上看到它们。 我怎样才能做到这一点?

您可以使用ipywidgets执行此操作:在ipywidgets.Output小部件中显示视频,然后使用ipywidgets.GridspecLayout来排列小部件。 这是一个例子:

from ipywidgets import Output, GridspecLayout
from IPython import display

grid = GridspecLayout(1, len(filepaths))

for i, filepath in enumerate(filepaths):
    out = Output()
    with out:
        display.display(display.Video(filepath, embed=True))
    grid[0, i] = out

grid

这对我来说在 Colab 中运行良好:

from IPython.display import HTML
from base64 import b64encode

html_str=""

for filepath in filepaths:
  mp4 = open(filepath,'rb').read()
  data_url = "data:video/mp4;base64," + b64encode(mp4).decode()
  html_str += """
  <video width=400 controls>
        <source src="%s" type="video/mp4">
  </video>
  """ % data_url
HTML(html_str)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM