今朝(https://qiita.com/wirsind55/items/98328600991fcf6218ce)の続編である。
やりたいことはUnity上でCameraの動画キャプチャを取ってavi保存すること。
有料のもの(OpenCV for Unity)使えばいけんじゃないかとたかを括っていたが、いけない。。
コードは最小限にしてみて下記のとおり。
ScreenCapture.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OpenCVForUnity;
using OpenCVForUnity.VideoioModule;
using OpenCVForUnity.VideoModule;
using OpenCVForUnity.CoreModule;
public class ScreenCapture : MonoBehaviour
{
    public Camera _targetCamera;
    private VideoWriter _videoWriter;
    private int cnt = 0;
    
    // Start is called before the first frame update
    void Start()
    {
        _videoWriter = new VideoWriter(@"output.avi",  VideoWriter.fourcc('D', 'I', 'V', 'X'), 30.0, new Size(448, 448), true);
    }
    // Update is called once per frame
    void Update()
    {
        CaptchaScreen();
        cnt.ToString() + ".png");
        cnt++;
        if(cnt >= 500)
            _videoWriter.Dispose();
    }
    public void CaptchaScreen()
    {
        Mat srcMat = new Mat (new Size(448, 448), CvType.CV_8UC4);
        _videoWriter.write(srcMat);
    }
}
結果として、new VideoWriterでoutput.aviは作成されているけど、
その後のwriteが効いておらず作成されたaviファイルのファイルサイズは0のままで破損状態という扱いになる。
それまでに何か間違っているのでしょうか。。。
いかんせんUnity、OpenCVの記事はそこまで多くないし分からない。
誰か教えて下さい。
だいぶハマってしまったので、この方法は一旦あきらめ、別の手段に移ります(画像を大量生産して、その後でOpenCVで画像を動画にする)。
以上、しゅん。
⇒ コメント欄にて解決されました