Python PR

【OpenCV】動物大好きエンジニアがPythonで動画保存ソフトを作る

動画保存ソフト
記事内に商品プロモーションを含む場合があります

すっーーーーーーう ぱさぱさ… トン!

僅かな着陸音がなければ、その可愛らしい生き物が再びこのサイトに来たことに気づかなかったかも知れない。

くるる
くるる
よろ~

そう…再び!あの人気フクロウ”くるる”@kururu_owl が遊びに来てくれたのだ。

くるる
くるる
ん?”はやぶさ”いなぞ

そう言いながら 首を”くるくる”回している…”くるる”だけに!

いや”くるくる”なんてもんじゃない!フクロウの首の可動域は270°だ。そのことを知らない人にとっては「今、あのフクロウの首360°回らなかった!?」っと軽いホラー騒動が起こる。

首を”ぐるんぐるん”回す姿は、まるでR2-D2のようだ。…”くるる”だけに!

くるる
くるる
ちっ!

周辺に人の気配がないことを確認すると、”くるる”は小さく舌打ちをした。(フクロウにも舌があるし、好き嫌いもする。)

はやぶさ
はやぶさ
”くるる”ちゃーーーーーん!!

物陰で”にやにや”しながら”くるる”を見ていた”はやぶさ”が大声を出すと”くるる”の羽角が”ピン”と立つ!!

”くるる”の位置から”はやぶさ”は見えないはずだが、左右違う位置に耳のあるフクロウの”くるる”は声がする方向と距離を正確に捉えていた。

くるる
くるる
そこにいるのは分かっている。早く出てきてー

場所が分かっても自分からは動きたくない…フクロウはそういう生き物なのです。

はやぶさ
はやぶさ
”くるる”ちゃん!また会えて嬉しいよ!

小走りで駆け寄ったせいか、少し息が上がっている。。”はやぶさ”は小さく深呼吸してから、話を切り出した。

はやぶさ
はやぶさ
何か用事があって来てくれたのかな?
くるる
くるる
実は…お願いがあってきたの!

潤んだ瞳で、もじもじする”くるる”…最高に可愛い!!断れるはずもない!!

はやぶさ
はやぶさ
何でも聞いて!!

話は本編へと続く

ゆーちゅーばー”くるる”のお願い

くるる
くるる
実は”ゆーちゅーばー”やってるの

そう言いながら”くるる”はメモを”はやぶさ”に手渡す。

はやぶさ
はやぶさ
マジだ!”くるる”すげー
くるる
くるる
マジ卍

”くるる”の渾身の「マジ卍」をスルーして、話を続ける。

はやぶさ
はやぶさ
で?何か問題でも?
くるる
くるる
この前、寝落ち動画を撮ろうとしたんだけど…
はやぶさ
はやぶさ
寝落ち動画…
くるる
くるる
なかなか寝付けなく7分の動画になっちゃったの
はやぶさ
はやぶさ
???何か問題でも?
くるる
くるる
”はやぶさ”は”ゆーちゅーぶ”ド素人だから知らないと思うけど、PPAPはショートだからこそ”バズ”ったって噂だよ!

”ゆーちゅーぶ”の発音がいちいち可愛い。。

はやぶさ
はやぶさ
つまり、動画が1分に収まるよう短くカットして欲しいと?
くるる
くるる
ブッブー!それくらいなら自分でやるし!

「マジ!?」と言おうとしたが、軽く頷くだけにして、話の続きを促した

くるる
くるる
7分の動画を1分にギュッと縮めて欲しいの!

YouTubeの設定で再生速度の変更はできるが、最速でも2倍速だ。。7分の動画を1分で見ることはできないか…なるほど!

はやぶさ
はやぶさ
つまり、こういうことか?
”くるる”のお願い
  • 7分の動画をフレームカットすることなく1分に縮めたい
  • 縮めた映像は動画ファイル(*.mp4)で保存したい※

※Youtubeにアップロードするならmp4が良いらしい

くるる
くるる
そーそー!さすが”はやぶさ”!鳥心わかってるー
はやぶさ
はやぶさ
鳥心…
くるる
くるる
もう”はやぶさ”のPCに動画ファイル保存しといたから!あとよろ~

そう言い残すと”くるる”は飛び去ってしまった。

”くるる”が飛び去った空をしばらく見上げているとメモがヒラヒラと落ちてきた。

”iPhone X”で撮影しました。

はやぶさ
はやぶさ
…やるか

カメラのスペック確認

”iPhone X”で撮影したとのことだが、”iPhone X”内蔵のカメラ性能が分からないことにはソフトが作れない…

ググって調べても良いが、前回作った『動画ファイル用の雛形ソースコード』を使って、”iPhone X”内蔵カメラのスペックを確認する。

OpenCVでカメラ・動画を扱う
【Python】OpenCVでカメラ・動画を扱うための『雛形ソースコード』開発手順書こんばんは。現役エンジニアの”はやぶさ”@Cpp_Learningです。 画像処理メインの研究・開発を楽しく実施しています。最近は...

”くるる”がカメラ設定をいじっている可能性もあるが、少なくとも貰った動画ファイルのパラメータは以下の通りだった。

【iPhone Xのカメラ性能】

  • FPS:30
  • 画像サイズ:640×360
  • ファイル拡張子:MOV
スポンサーリンク

動画保存ソフト『Save_Video.py』作成

カメラのスペックも分かったところで、以下のソースコード『Save_Video.py』を作成した。

Python3.6.5, OpenCV3.4.1で動作確認しました。

このコードのポイントは15行目のコーデック設定と16行目の保存動画ファイル設定です。

fourcc = cv2.VideoWriter_fourcc(*’DIVX’)
out = cv2.VideoWriter(‘kururu.mp4’, fourcc, 210, (640,360)

以降からソースコードのポイントを説明します。

コーデック設定

コーデックについては、下記の参考サイトで詳しく説明しています。

参考サイトに従い、普段使っているWindows10マシンのコーデックを確認しました。mp4なら黄色□の形式を使えば良いです。

windowsコーデック確認

私が保有している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分は長いな…

すっーーーーーーう 僅かな羽音とともに”くるる”再登場!

くるる
くるる
”はやぶー”できたー?
はやぶさ
はやぶさ
”はやぶー”…?

一瞬なんのことか分からなかったが、すぐに自分のことだと理解した。”はやぶー”とか初めて言われたわ。。これが…”くるチューバ―”!!!

はやぶさ
はやぶさ
”くるる”ちゃん ちょうどできたところだよ!
くるる
くるる
仕事速いじゃん!!早速うpするよー

どーーーーん!お待たせしました!! こちらが『7倍速の”くるる”寝落ち動画』です!

うん!1分くらいがちょうど良いね!

さいごに

ちょっち記事書くの大変だったけど、楽しかったから良し!

今回紹介した『動画保存ソフト』は、倍速以外にもスロー再生やUSBカメラと組み合わせて録画機能付きUSBカメラとして遊ぶなんて使い方、もちろん実験などにも使えます。

この『動画保存ソフト』を雛形にしてソースコードを改造すれば、自分オリジナルの面白ビデオカメラを開発できますよ!

ちょっとプログラミングを頑張って、自慢のお子さんやペットの動画ファイルを自由に加工できるようになるとカッコイイかもね!

以上 最後まで茶番にお付き合い頂きありがとうございました。

くるる
くるる
またねー

『くるるの野望』エピソード1 ゆーちゅーばーな”くるる”は7倍速い!

(完)

ゲーム画面1
【OpenCV】動物大好きエンジニアが”主人公レンズ”を作るこんにちわ。動物大好きエンジニアの”はやぶさ”@Cpp_Learningです。 今日は、このサイトにアフリカオオコノハズクの”くる...

 

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python