Google Colaboratory 上の cv2 で作成した動画を表示する
思いの外詰まった&パッとドキュメントが見当たらなかったのでメモ。
まず動画ファイルを作ります。
import cv2 fourcc = cv2.VideoWriter_fourcc(*'MP4V') writer = cv2.VideoWriter('./out.mp4', fourcc, 60, (80, 80)) for frame in frames: frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) recorder.write(frame) recorder.release()
こうやって作成された mp4 拡張子のファイルは、まず Chrome で再生できません。
Python OpenCV video format play in browser - Stack Overflow
じゃあ *'H264 '
に変更すれば良いかというと、そう単純に動いてはくれませんでした。そこで、colab はデフォルトで ffmpeg までインストールされてるのでありがたく使わせてもらい、力技で以下のようにします。
!ffmpeg -i ./out.mp4 -vcodec vp9 ./out.webm from IPython.display import HTML import base64 import io def play(file_path): video = io.open(file_path, 'r+b').read() encoded = base64.b64encode(video) return(HTML(data='''<video width="320" height="240" controls><source src="data:video/mp4;base64,{0}" type="video/mp4" /></video>'''.format(encoded.decode('ascii')))) play('./out.webm')
Defining a function to call a video within Jupyter Notebook - Stack Overflow
ひとまずこれで cv2 で作成した動画が表示できたので、良しとします。