こんにちは、さすを(@sasuwo0409)です。
いきなりですが、
動画の速度を変更したいけど、いちいちアプリを使うのはめんどくさい
もっと楽に動画の速度を変えたい
と思ったことはありませんか?
僕はよく思います。(笑)
今回の記事は、そんな悩みを解決するPythonでOpenCVを使って動画の速度を変更する方法を紹介していきます。
それでは本文をどうぞ。
動画の速度を変更したいんだけど、いちいちアプリをつかうのめんどうなんだよなあ。
もっと簡単に動画の速度をかえられないかな。
あと、自動で変更できたら最高なのになあ。
これらの悩みを解決します!
Pythonのインストール・OpenCVのインストールが終わっていない方は、まずは以下のサイトからインストールをおこなってください!
Pythonのインストール:
Windowsの方:
>>【Windows版】Pythonのインストール方法【画像を使ってわかりやすく解説】
Macの方:
>>MacにPythonをインストールする3つの方法!それぞれの利点と手順を紹介
OpenCVのインストール:
>>【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
1.PythonでOpenCVを使って動画の速度を変更する方法
まずはじめに、今回のフォルダ構成、ファイルは以下の通りです。
フォルダのパス | C:\Users\Sasuwo\Desktop\dance_example |
ファイル名 | ダンス1回目.MOV |
ダンス2回目.MOV |
フォルダのパス | C:\Users\Saswo\Desktop\Python\opencv |
フォルダ名 | bin |
cv2 | |
numpy | |
numpy-1.20.3.dist-info | |
opencv_python-4.5.2.52.dist-info | |
ファイル名 | change_video_speed.py |
フォルダ名は、フォルダを開いてフォルダ名が書かれているボックスをクリックすればでてくるので、コピー&ペーストで使っていきましょう!
そして、動画の速度を変更を行うPythonのスクリプトはこちらです。
change_video_speed.py:
import os
import cv2
import time
start = time.time()
def video_speed_change(path_in, path_out, scale_factor, color_flag):
# 動画読み込みの設定
movie = cv2.VideoCapture(path_in)
# 動画ファイル保存用の設定
# 元動画のFPSを取得
fps = int(movie.get(cv2.CAP_PROP_FPS))
# 動画保存時のFPSはスケールファクタをかける
fps_new = int(fps * scale_factor)
# 動画の横幅を取得
width = int(movie.get(cv2.CAP_PROP_FRAME_WIDTH))
# 動画の縦幅を取得
height = int(movie.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 動画保存時のfourcc設定(mp4用)
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
# 動画の仕様(ファイル名、fourcc, FPS, サイズ)
video = cv2.VideoWriter(path_out, fourcc, fps_new, (width, height), color_flag)
# ファイルからフレームを1枚ずつ取得して動画処理後に保存する
while True:
# フレームを取得
ret, frame = movie.read()
# 動画を保存する
video.write(frame)
# フレームが取得できない場合はループを抜ける
if not ret:
break
# 撮影用オブジェクトとウィンドウの解放
movie.release()
return
#読み込みたいフォルダまで移動
path = "C:\\Users\\Yumiko\\Desktop\\dance_example"
#ファイル一覧取得
files = os.listdir(path)
for change_speed in files:
path_in = path + "\\" + change_speed
# 保存する動画のパス
path_out = path + "\\" + change_speed + "スロー版.mp4"
# FPSにかけるスケールファクター
scale_factor = 0.6
# カラー動画はTrue, グレースケール動画はFalse
color_flag = True
# 動画の再生速度を変更する関数を実行
video_speed_change(path_in, path_out, scale_factor, color_flag)
total = time.time() - start
print("処理が完了しました。")
print("処理時間:" + str(total) + "[sec]")
今回は、動画の速度を0.6倍に設定しました!
実行結果:
実際に速度を確認してみると、きちんと遅くなっていることが確認できます。
速度を早くしたい場合は、「scale_factor」を1より大きくすればOKです!
2.Pythonスキルを伸ばす方法とは?
2-1.独学編
Pythonスキルを独学で身に着けるためには、参考書が必須です。
おすすめのPython書籍を以下の記事で解説したので、参考にしていただけたらと思います。
本を買う前に、一度Pythonの学習をしてみたいという方は、Pythonを学べるおすすめ学習サイトを以下の記事で解説したので、こちらも参考にしてみてください。
>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】
2-2.スクール編
お金がかかってもいいから、少しでも早くPythonスキルを身につけたい方は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。
エンジニアになれば、受講料は1か月もあれば回収できるので、問題なしです。
本気でPythonスキルを身につけたい方は、スクールで一気にスキルを身に着けるのもありでしょう。
>>TechAcademy(テックアカデミー)のPythonコースはこちら
3.おわりに
6,000万のPython案件に携わった経験のある筆者が、PythonのOpenCVを使って動画の速度を変更する方法を紹介してきました。
今日から動画の速度変更は自動でやってもらい、その間の時間で好きなことをしちゃいましょう!
自動化ができるようになると、使える時間を大幅に増やすことができます。
この記事が少しでもあなたの役に立てていたらうれしいです。
頑張るあなたを応援しています!
それでは!
最短1分でできる!
あなたにおすすめの記事:
>>【無料】Pythonでできること9選【初心者でも稼げます】
>>【初心者向け】Python学習の始め方【現役エンジニアがわかりやすく解説】
コメント