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

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

ただいまの
回答率

88.91%

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 297

aguroshou0413

score 10

前提・実現したいこと

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/16 18:19

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

    キャンセル

+1

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/15 00:41 編集

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

    キャンセル

  • 2020/07/15 00:44

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

    キャンセル

  • 2020/07/15 21:01

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

    キャンセル

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

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