【发布时间】:2019-12-14 01:47:31
【问题描述】:
我在content/video.mp4有一个video.mp4
如果我想在不下载的情况下在 google colab 中播放视频,¿我应该使用什么代码在我的 jupyter notebook 中打开一种视频播放器?
【问题讨论】:
标签: python video mp4 google-colaboratory
我在content/video.mp4有一个video.mp4
如果我想在不下载的情况下在 google colab 中播放视频,¿我应该使用什么代码在我的 jupyter notebook 中打开一种视频播放器?
【问题讨论】:
标签: python video mp4 google-colaboratory
这是代码
from IPython.display import HTML
from base64 import b64encode
mp4 = open('video.mp4','rb').read()
data_url = "data:video/mp4;base64," + b64encode(mp4).decode()
HTML("""
<video width=400 controls>
<source src="%s" type="video/mp4">
</video>
""" % data_url)
您可以在 colab notebook here 中测试它。
为了支持大型 vdo 文件,我编写了一个库以上传到 Google Drive 并将其设置为公开。然后使用返回的 URL 来显示视频。
!pip install -U kora
from kora.drive import upload_public
url = upload_public('video.mp4')
# then display it
from IPython.display import HTML
HTML(f"""<video src={url} width=500 controls/>""")
【讨论】:
目前,如果格式不支持,我们需要压缩视频文件在google colaboratory中播放。
from IPython.display import HTML
from base64 import b64encode
import os
# Input video path
save_path = "/content/videos/result.mp4"
# Compressed video path
compressed_path = "/content/videos/result_compressed.mp4"
os.system(f"ffmpeg -i {save_path} -vcodec libx264 {compressed_path}")
# Show video
mp4 = open(compressed_path,'rb').read()
data_url = "data:video/mp4;base64," + b64encode(mp4).decode()
HTML("""
<video width=400 controls>
<source src="%s" type="video/mp4">
</video>
""" % data_url)
参考:https://towardsdatascience.com/yolov3-pytorch-on-google-colab-c4a79eeecdea
【讨论】:
只需输入该功能的 mp4 视频路径即可。
from IPython.display import HTML
from base64 import b64encode
def show_video(video_path, video_width = 600):
video_file = open(video_path, "r+b").read()
video_url = f"data:video/mp4;base64,{b64encode(video_file).decode()}"
return HTML(f"""<video width={video_width} controls><source src="{video_url}"></video>""")
show_video(video_path)
【讨论】: