internal void Execute(string[] cmd)
        {
#if UNITY_IOS && !UNITY_EDITOR
            execute(cmd, cmd.Length, IOSCallbacFunc);
#elif UNITY_ANDROID && !UNITY_EDITOR
            pluginClass.Call(
                "Process",
                unityClass.GetStatic <AndroidJavaObject>("currentActivity"),  //Context
                cmd,
                new AndroidCallback());
#elif UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_EDITOR
            StandaloneProxy.Execute(string.Join(" ", cmd));
#else
            Debug.LogWarning("FFmpeg is not implemented for " + Application.platform);
#endif
        }
        //------------------------------

        void Start()
        {
#if UNITY_IOS && !UNITY_EDITOR
            //IOS implementation doesn't need initialization
#elif UNITY_ANDROID && !UNITY_EDITOR
            unityClass  = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            pluginClass = new AndroidJavaObject("com.botvinev.max.unityplugin.VideoProcessing");
            pluginClass.Call(
                "Begin",
                unityClass.GetStatic <AndroidJavaObject>("currentActivity"), //Context
                new AndroidCallback());
#elif UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_EDITOR
            StandaloneProxy.Begin(StandaloneCallback);
#else
            Debug.LogWarning("FFmpeg is not implemented for " + Application.platform);
#endif
        }