質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

2239閲覧

[OpenCV for Unity] VideoWriter関数で動画を保存する際に、Zoomのバーチャル動画背景として読み込めるコーデック(.mp4または.mov)に変更したいです。

aguroshou0413

総合スコア20

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/07/14 15:24

編集2020/07/14 16:44

前提・実現したいこと

https://teratail.com/questions/277345?reply=true
こちらの質問の続きのような質問になります。

Unityを用いてZoomのバーチャル動画背景を生成するツールを作ろうと考えています。
OpenCV for UnityというアセットのVideoWriter関数を用いてUnityの画面を録画し、動画を保存しています。

発生している問題・エラーメッセージ

現在はZoomのバーチャル動画背景として読み込ませるための拡張子である.mp4と.mov形式で動画を出力できるのですが、コーデックかなにかの設定に問題があるようでして、Zoomのバーチャル動画背景に読み込ませることができません。

↓Zoomで動画が読み込めなかったときのエラー文です。

サポートされていない形式です。別のファイルをアップロードしてください。

試したこと

https://mediaarea.net/MediaInfoOnline

こちらのサイトで動画のコーデックを確認できるようでして、

  • OpenCV for UnityのVideoWriter関数の引数にMJPEG(.aviの拡張子 Zoomには対応していない拡張子です)

Codec ID : MJPG

  • OpenCV for UnityのVideoWriter関数の引数にMP4V(.mp4の拡張子)

Codec ID : mp4v-20

  • OpenCV for UnityのVideoWriter関数の引数にmp4v(.movの拡張子)

Codec ID : mp4v-20
コーデックはこのようになっていました。

https://cloudconvert.com/mp4-converter
こちらのコーデックを変換できるサイトを使用して、OpenCV for UnityのVideoWriter関数で作成した動画を.mp4に変換したところ、Zoomのバーチャル動画背景として読み込ませることができました。
Codec ID : avc1
コーデックはこのようになっていました。
コーデックを変換できるサイトを使用すればZoomに読み込めるのですが、VideoWriter関数で作成した動画をそのままZoomで読み込ませたいです。なので、VideoWriter関数で作成する動画をCodec ID : avc1などとしなければなりません。
そのようなことはOpenCV for Unityでできるのでしょうか。

補足情報(FW/ツールのバージョンなど)

動画のコーデックを確認できるサイトで表示された情報を貼っておきます。(長文になってしまっております。すみません…。)

  • OpenCV for UnityのVideoWriter関数の引数にMJPEG(.aviの拡張子 Zoomには対応していない拡張子です)

Codec ID : MJPG

General Complete name : sample111.avi Format : AVI Format/Info : Audio Video Interleave File size : 27.6 MiB Duration : 2 s 67 ms Overall bit rate : 112 Mb/s Writing application : Lavf58.29.100 Video ID : 0 Format : JPEG Codec ID : MJPG Duration : 2 s 67 ms Bit rate : 112 Mb/s Width : 2 560 pixels Height : 1 440 pixels Display aspect ratio : 16:9 Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Compression mode : Lossy Bits/(Pixel*Frame) : 1.011 Stream size : 27.5 MiB (100%)
  • OpenCV for UnityのVideoWriter関数の引数にMP4V(.mp4の拡張子)

Codec ID : mp4v-20

General Complete name : sample.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/mp41) File size : 3.79 MiB Duration : 3 s 67 ms Overall bit rate mode : Variable Overall bit rate : 10.4 Mb/s Writing application : Lavf58.29.100 Video ID : 1 Format : MPEG-4 Visual Format profile : Simple@L1 Format settings, BVOP : No Format settings, QPel : No Format settings, GMC : No warppoints Format settings, Matrix : Default (H.263) Codec ID : mp4v-20 Duration : 3 s 67 ms Bit rate mode : Variable Bit rate : 10.4 Mb/s Maximum bit rate : 221 Mb/s Width : 2 560 pixels Height : 1 440 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Compression mode : Lossy Bits/(Pixel*Frame) : 0.094 Stream size : 3.79 MiB (100%) Writing library : Lavc58.54.100
  • OpenCV for UnityのVideoWriter関数の引数にmp4v(.movの拡張子)

Codec ID : mp4v-20

General Complete name : sample.mov Format : MPEG-4 Format profile : QuickTime Codec ID : qt 0000.02 (qt ) File size : 3.97 MiB Duration : 3 s 34 ms Overall bit rate mode : Variable Overall bit rate : 11.0 Mb/s Writing application : Lavf58.29.100 Video ID : 1 Format : MPEG-4 Visual Format profile : Simple@L1 Format settings, BVOP : No Format settings, QPel : No Format settings, GMC : No warppoints Format settings, Matrix : Default (H.263) Codec ID : mp4v-20 Duration : 3 s 34 ms Bit rate mode : Variable Bit rate : 11.0 Mb/s Maximum bit rate : 221 Mb/s Width : 2 560 pixels Height : 1 440 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Compression mode : Lossy Bits/(Pixel*Frame) : 0.099 Stream size : 3.97 MiB (100%) Writing library : Lavc58.54.100
  • コーデックを変換できるサイトで.mp4に変換した動画(Zoomに読み込ませることができるものです)
General Complete name : sample (1).mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/avc1/mp41) File size : 1.07 MiB Duration : 3 s 67 ms Overall bit rate : 2 934 kb/s Writing application : Lavf58.20.100 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L5 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, Reference frames : 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 3 s 67 ms Bit rate : 2 930 kb/s Width : 2 560 pixels Height : 1 440 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.026 Stream size : 1.07 MiB (100%) Writing library : x264 core 157 Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=45 / lookahead_threads=7 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00 Codec configuration box : avcC

もし何か必要な情報などがありましたらご質問をお願いします。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

OpenCV for Unityには、H.264がもとからサポートされているようでして、以下のプログラムに書き換えるだけでZoomのバーチャル動画背景として読み込ませることができました。

C#

1//.mp4の拡張子 2//Codec ID: avc1 3writer.open(savePath, VideoWriter.fourcc('H', '2', '6', '4'), 30, new Size(Screen.width, Screen.height));

bboydaisukeさん
yumetodoさん
皆さんのアドバイスがなければ、解決することはできませんでした。
これで引き続き開発をすすめることが出来ます。
本当にありがとうございました。

投稿2020/07/15 12:00

aguroshou0413

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yumetodo

2020/07/16 09:19

お、H.264がもとからサポートされていましたか、それは良かったです。
guest

0

zoom が mp4 じゃないとダメと言っているなら、多分 H.264 でエンコードしないといけないんじゃないかと思います。

ref. https://blog.shikoan.com/opencv-h264/

投稿2020/07/14 15:38

編集2020/07/14 15:39
bboydaisuke

総合スコア5275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bboydaisuke

2020/07/14 15:42 編集

「読み込める」としている動画は x264 を使ってエンコードされているので、多分 H.264 でエンコードしたらいけると思います。
yumetodo

2020/07/14 15:44

でも普通にOpenCVビルドするときに付いてくるffmpegってx264有効になってないと思うんだよなぁ・・・ ビルド力が試されそう。
aguroshou0413

2020/07/15 12:01

みなさんのコメントのおかげで、無事に解決することが出来ました。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問