すっーーーーーーう ぱさぱさ… トン!
僅かな着陸音がなければ、その可愛らしい生き物が再びこのサイトに来たことに気づかなかったかも知れない。
そう…再び!あの人気フクロウ”くるる”@kururu_owl が遊びに来てくれたのだ。
そう言いながら 首を”くるくる”回している…”くるる”だけに!
いや”くるくる”なんてもんじゃない!フクロウの首の可動域は270°だ。そのことを知らない人にとっては「今、あのフクロウの首360°回らなかった!?」っと軽いホラー騒動が起こる。
首を”ぐるんぐるん”回す姿は、まるでR2-D2のようだ。…”くるる”だけに!
周辺に人の気配がないことを確認すると、”くるる”は小さく舌打ちをした。(フクロウにも舌があるし、好き嫌いもする。)
物陰で”にやにや”しながら”くるる”を見ていた”はやぶさ”が大声を出すと”くるる”の羽角が”ピン”と立つ!!
”くるる”の位置から”はやぶさ”は見えないはずだが、左右違う位置に耳のあるフクロウの”くるる”は声がする方向と距離を正確に捉えていた。
場所が分かっても自分からは動きたくない…フクロウはそういう生き物なのです。
小走りで駆け寄ったせいか、少し息が上がっている。。”はやぶさ”は小さく深呼吸してから、話を切り出した。
潤んだ瞳で、もじもじする”くるる”…最高に可愛い!!断れるはずもない!!
話は本編へと続く
Contents
ゆーちゅーばー”くるる”のお願い
そう言いながら”くるる”はメモを”はやぶさ”に手渡す。
”くるる”の渾身の「マジ卍」をスルーして、話を続ける。
”ゆーちゅーぶ”の発音がいちいち可愛い。。
「マジ!?」と言おうとしたが、軽く頷くだけにして、話の続きを促した
YouTubeの設定で再生速度の変更はできるが、最速でも2倍速だ。。7分の動画を1分で見ることはできないか…なるほど!
- 7分の動画をフレームカットすることなく1分に縮めたい
- 縮めた映像は動画ファイル(*.mp4)で保存したい※
※Youtubeにアップロードするならmp4が良いらしい
そう言い残すと”くるる”は飛び去ってしまった。
”くるる”が飛び去った空をしばらく見上げているとメモがヒラヒラと落ちてきた。
”iPhone X”で撮影しました。
カメラのスペック確認
”iPhone X”で撮影したとのことだが、”iPhone X”内蔵のカメラ性能が分からないことにはソフトが作れない…
ググって調べても良いが、前回作った『動画ファイル用の雛形ソースコード』を使って、”iPhone X”内蔵カメラのスペックを確認する。
”くるる”がカメラ設定をいじっている可能性もあるが、少なくとも貰った動画ファイルのパラメータは以下の通りだった。
【iPhone Xのカメラ性能】
- FPS:30
- 画像サイズ:640×360
- ファイル拡張子:MOV
動画保存ソフト『Save_Video.py』作成
カメラのスペックも分かったところで、以下のソースコード『Save_Video.py』を作成した。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import argparse import numpy as np import cv2 def main(): parser = argparse.ArgumentParser() parser.add_argument('video') args = parser.parse_args() vid = cv2.VideoCapture(args.video) if not vid.isOpened(): raise ImportError("Couldn't open video file or webcam.") # Define the Codec and File Name fourcc = cv2.VideoWriter_fourcc(*'DIVX') out = cv2.VideoWriter('kururu.mp4', fourcc, 210, (640,360)) while True: ret, frame = vid.read() # Write the frame out.write(frame) # Output Result cv2.imshow('Result', frame) # Stop Processing if cv2.waitKey(1) & 0xFF == ord('q'): break if __name__ == '__main__': main() |
Python3.6.5, OpenCV3.4.1で動作確認しました。
このコードのポイントは15行目のコーデック設定と16行目の保存動画ファイル設定です。
fourcc = cv2.VideoWriter_fourcc(*’DIVX’)
out = cv2.VideoWriter(‘kururu.mp4’, fourcc, 210, (640,360)
以降からソースコードのポイントを説明します。
コーデック設定
コーデックについては、下記の参考サイトで詳しく説明しています。
参考サイトに従い、普段使っているWindows10マシンのコーデックを確認しました。mp4なら黄色□の形式を使えば良いです。
私が保有しているWindows7とWindows8マシンのコーデックも確認しましたが、”DIVX”ならどのWindowsでも使えることを確認しました。
WindowsのバージョンやLinux・MacなどOSにより、サポートしているコーデックが異なるため事前に確認すること
保存動画ファイルの設定
以下の関数の引数は左から(保存ファイル名, コーデック, FPS, 入力画像サイズ)です。
cv2.VideoWriter(‘kururu.mp4’, fourcc, 210, (640,360))
今回は以下のように設定しました。
- 保存ファイル名は:kururu.mp4
- コーデック:DIVX (fourcc = cv2.VideoWriter_fourcc(*’DIVX’))
- fps:210 (7分 ⇒ 1分に縮めるので、30fps ⇒ 210fpsに設定)
- 入力画像:640×360(事前に調べた通り)
Save_Video.pyの使い方
以下のコマンドで指定した動画ファイルを210fpsに変換して「kururu.mp4」というファイル名で保存します。
python Save_Video.py 動画ファイルパス
例えば、Save_Video.pyと同じディレクトリの「kururu.MOV」を指定するには、以下の通りです。
python Save_Video.py kururu.MOV
元々の動画ファイルが30fpsなので210fpsに変換すれば、7倍速の動画が保存されます。
10fpsの動画ファイルを指定すれば、21倍速の”超”高速動画ができる。これはこれで面白そうだが、もし7倍速にしたい場合は、210⇒70に変更すれば良い。
cv2.VideoWriter(‘kururu.mp4’, fourcc, 70, (640,360))
途中で処理を中断する場合は、出力映像を「マウスで左クリック」→「キーボード”Q”」で行えます。その場合、中断時点までの動画が保存されます。
本ソフトは指定した動画ファイルを任意のfpsに変換して保存するものであり、動画の取り込み(再生速度)は速くならない。要するに7分の動画なら7分間 再生する必要があります。
出力映像
ということで、7分間”くるる”寝落ち動画を凝視しながら、変換が終わるのを待ちます。”くるる”可愛いけど、確かに7分は長いな…
すっーーーーーーう 僅かな羽音とともに”くるる”再登場!
一瞬なんのことか分からなかったが、すぐに自分のことだと理解した。”はやぶー”とか初めて言われたわ。。これが…”くるチューバ―”!!!
どーーーーん!お待たせしました!! こちらが『7倍速の”くるる”寝落ち動画』です!
うん!1分くらいがちょうど良いね!
さいごに
ちょっち記事書くの大変だったけど、楽しかったから良し!
今回紹介した『動画保存ソフト』は、倍速以外にもスロー再生やUSBカメラと組み合わせて録画機能付きUSBカメラとして遊ぶなんて使い方、もちろん実験などにも使えます。
この『動画保存ソフト』を雛形にしてソースコードを改造すれば、自分オリジナルの面白ビデオカメラを開発できますよ!
ちょっとプログラミングを頑張って、自慢のお子さんやペットの動画ファイルを自由に加工できるようになるとカッコイイかもね!
以上 最後まで茶番にお付き合い頂きありがとうございました。
『くるるの野望』エピソード1 ゆーちゅーばーな”くるる”は7倍速い!
(完)