void OnEnable()
        {
            m_yuvReader = new YUVReader();

            // launch
            var exec = Path.Combine(Environment.GetEnvironmentVariable(KEY), EXE);
            m_ffmpeg = FFMpegLauncher.Launch(exec, "-i \"{0}\" -f yuv4mpegpipe -", Source);
            if (m_ffmpeg == null)
            {
                Debug.LogWarning("fail to launch ffmpeg");
                return;
            }

            m_stdOutDisposable = m_ffmpeg.StdOut.BeginRead(new Byte[8192], (b, c) => m_yuvReader.Push(new ArraySegment<byte>(b, 0, c)));
            m_stdErrDisposable = m_ffmpeg.StdErr.BeginRead(new Byte[1024], (b, c) => OnRead(m_error, b, c));
        }
 void OnDisable()
 {
     Debug.Log("kill");
     if (m_ffmpeg != null)
     {
         m_ffmpeg.Dispose();
         m_ffmpeg = null;
     }
     if(m_stdOutDisposable!= null)
     {
         m_stdOutDisposable.Dispose();
         m_stdOutDisposable = null;
     }
     if(m_stdErrDisposable!= null)
     {
         m_stdErrDisposable.Dispose();
         m_stdErrDisposable = null;
     }
 }