概要
表題の通りです。結論から言うと動画保存時のコーデック VP90
を指定して IPython.display.Video
を使うと見れます。
実行環境
- python:
3.7.3
- jupyter:
1.0.0
- ipython:
7.34.0
- opencv-contrib-python-headless:
4.6.0.66
モチベーション
リモートサーバーで動画ファイルを生成した際に scp
でローカルサーバーに落として確認していたが、サーバー上で作業を完結させたい。
cv2.VideoWriter で作成した mp4 ファイルを jupyter notebook で見る方法
動画を保存するときのコーデックを VP90
で指定します。
import cv2
fourcc = cv2.VideoWriter_fourcc(*'VP90')
# save_path, fps, video_size は適当に指定する
writer = cv2.VideoWriter(save_path, fourcc, fps, video_size)
for im in ims:
writer.write(im)
writer.release()
あとは notebook から見るだけです。
from IPython.display import Video
Video(save_path)
備考
- コーデックを
mp4
にするとIPython.display.Video
から見れないファイルが生成されます- コーデックが
mp4
のファイルは mac のプレビューなどからは普通に見れます
- コーデックが
-
コーデックを
VP90
にすると動画を保存する時間がmp4
に比べて10倍くらいになったので時間効率という意味では正直微妙かもしれないです- そんなに急いでなくてサーバー上 (jupyter notebook) だけで操作を完結したい場合はいいかもしれないです
参考
-
https://github.com/jupyter-widgets/ipywidgets/issues/2559
- 本記事はほぼ上記記事の内容を日本語にしただけです