やりたい事
cv2を使用するにあたって、エラーが出てしまいます。
それを解消したいです。
環境
windows10
エディタは visual studio code
python3
やったこと
動画にぼかしを入れたいという事で
https://qiita.com/hitomatagi/items/12a2eceaf65f142ec3df
こちらのサイトにあるコードを少し書き換えて
python
1import cv2 2 3# cv2.cv.CV_FOURCC 4def cv_fourcc(c1, c2, c3, c4): 5 return (ord(c1) & 255) + ((ord(c2) & 255) << 8) + \ 6 ((ord(c3) & 255) << 16) + ((ord(c4) & 255) << 24) 7 8 9if __name__ == '__main__': 10 # 定数定義 11 ESC_KEY = 27 # Escキー 12 INTERVAL= 33 # 待ち時間 13 FRAME_RATE = 30 # fps 14 15 ORG_WINDOW_NAME = "org" 16 GAUSSIAN_WINDOW_NAME = "gaussian" 17 18 GAUSSIAN_FILE_NAME = "6608995824326151429.mp4" 19 20 DEVICE_ID = 0 21 22 # カメラ映像取得 23 cap = cv2.VideoCapture(DEVICE_ID) 24 25 # 保存ビデオファイルの準備 26 end_flag, c_frame = cap.read() 27 height, width, channels = c_frame.shape 28 rec = cv2.VideoWriter(GAUSSIAN_FILE_NAME, \ 29 cv_fourcc('X', 'V', 'I', 'D'), \ 30 FRAME_RATE, \ 31 (width, height), \ 32 True) 33 34 # ウィンドウの準備 35 cv2.namedWindow(ORG_WINDOW_NAME) 36 cv2.namedWindow(GAUSSIAN_WINDOW_NAME) 37 38 # 変換処理ループ 39 while end_flag == True: 40 # ガウシアン平滑化 41 g_frame = cv2.GaussianBlur(c_frame, (15, 15), 10) 42 43 # フレーム表示 44 cv2.imshow(ORG_WINDOW_NAME, c_frame) 45 cv2.imshow(GAUSSIAN_WINDOW_NAME, g_frame) 46 47 # フレーム書き込み 48 rec.write(g_frame) 49 50 # Escキーで終了 51 key = cv2.waitKey(INTERVAL) 52 if key == ESC_KEY: 53 break 54 55 # 次のフレーム読み込み 56 end_flag, c_frame = cap.read() 57 58 # 終了処理 59 cv2.destroyAllWindows() 60 cap.release() 61 rec.release()
こちらを実行すると
OpenCV: FFMPEG: tag 0x44495658/'XVID' is not supported with codec id 12 and format 'mp4 / MP4 (MPEG-4 Part 14)' OpenCV: FFMPEG: fallback to use tag 0x7634706d/'mp4v'
このようなエラーが出ます。
エラー内容をググると
https://teratail.com/questions/149953
こちらのページを見つけ
読んでみると
拡張子を変更して、やってみるとうまくいく様な内容だと見受けられました。
質問
扱う拡張子が間違っているのでしょうか?
それともコード自体が間違っているのでしょうか?
教えて頂けると幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー