概要
表題の通りです。結論から言うと動画保存時のコーデック 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
- 本記事はほぼ上記記事の内容を日本語にしただけです