

Unityで開発を行っております。  
OSX向けアプリにffmpegを組み込みたく思い、macPCにffmpegをインストールして、  
以下のようなコードを作成いたしました。

[code]

    private IEnumerator ffmpeg( string a_path )
    {
     input = "\'"+a_path+"\'";
     output = "\'"+UnityEngine.Application.persistentDataPath + "/work/"+"hoge.mp4"+"\'";
    
     string ffmpegExePath = "ffmpeg ";
     Process process = new Process();
    
    
     string option = "-i";
     option += " "+input;
     option += " -vf";
     option += " scale=480:270";
     option += " -an";
     option += " -preset veryfast";
     option += " -tune film";
     option += " -crf 23";
     option += " -threads 2";
     option += " "+output;
    
     string l_cmd = ffmpegExePath + option;
     
     process.StartInfo.FileName = "/bin/bash";
     process.StartInfo.Arguments = "-c \" " + l_cmd + " \"";
     process.StartInfo.CreateNoWindow = true;
     process.StartInfo.UseShellExecute = false;
     process.StartInfo.RedirectStandardError = true;
     process.StartInfo.RedirectStandardOutput = true;
     
     process.EnableRaisingEvents = true;
     process.ErrorDataReceived += new DataReceivedEventHandler(ProcessErrorDataReceived);
     process.OutputDataReceived += new DataReceivedEventHandler(ProcessOutputDataReceived);
     process.Exited += new EventHandler(ProcessExited);
     
     process.Start();
     process.BeginOutputReadLine();
     process.BeginErrorReadLine();
    }
    
[/code]

しかし、

[code]

    /bin/bash:  ffmpeg -i '/Users/hoge/dev/unity/動画テスト　5%u20106　圧縮.mp4' -vf scale=480:270 -an -preset veryfast -tune film -crf 23 -threads 2 '/Users/hoge/Library/Application Support/HOGE/HOGE App/work/hoge.mp4' : No such file or directory
    
[/code]

とエラーが返ってまいります。  
「ffmpeg -i」からのコマンドをコピペしてターミナルで確認した際はffmpegが起動することを確認しております。

l_cmdを「ffmpeg -version」に変更してバージョンを確認できるか試したところ「/bin/bash: ffmpeg: command not
found」と返ってきており、  
ffmpegをコマンドとして認識していないのではないかと考えられます。

こちら「ffmpeg」を呼び出すにはどうしたらよろしいのでしょうか。  
現在確認はUnityエミュレーター上で行っております。

Unityバージョンは「2020.3.1f1」を使用しております。

よろしくお願い致します。

追記  
インストールしたffmpegは呼び出すことができるよになったのでダウンロードしたバイナリファイルをStreamingAssetsフォルダに入れて試したのですがPermission
deniedが出て起動できませんでした。  
こちら何かご存じでしょうか。

[code]

    string ffmpegExePath = Application.streamingAssetsPath + "/KirinUtil/ffmpeg_mac/ffmpeg";
    
[/code]

と変更して試しました。  
よろしくお願いします。


CC BY-SA 4.0
2021-04-14T04:21:37.383
75258
2021-04-14T12:28:03.170
2021-04-14T12:28:03.170
29606
29606
question
macos unity2d ffmpeg
OSX向けアプリからffmpegが呼び出せない

[code]

     string ffmpegExePath = "ffmpeg ";
    
[/code]

の`ffmpeg`を`which`等で取得できるフルパスに書き替えてみてはいかがでしょうか？  
（どうやってインストールしたのか解りませんが、例えば  
/usr/local/bin/ffmpeg  
等です。


CC BY-SA 4.0
2021-04-14T04:53:25.700
75260
2021-04-14T04:53:25.700
14745
75258
answer