前提・実現したいこと
C#のコードからFFmpegに指示を出し、出力結果を.csvファイルに書き込みます。
ソースコードでは与えられた二つの動画を元にPSNRを測定し、実行結果の出力先をcsvファイルに指定します。
発生している問題・エラーメッセージ
コードを実行すると、コード自体は問題なく動きますが、肝心のcsvファイルが作成されません。
C#からのファイル出力コマンドは受け付けないのか、それともソースコードに不備があるのか見つけられませんでした。
ちなみに直接コマンドプロンプトに同じコマンドを入力すると無事にファイルが生成されます。
該当のソースコード
C#
1// 実際に使っているのはSystem.Diagnosticsのみです 2using System; 3using System.IO; 4using System.Diagnostics; 5using System.Collections; 6 7namespace calclate_PSNR_and_input_values_into_csvFile 8{ 9 class Program 10 { 11 static void Main() 12 { 13 new Func().CalcPSNR(@"C:\Original.mp4", @"C:\Target.mp4", @"C:\PSNR.csv"); 14 } 15 } 16 17 public class Func 18 { 19 static readonly string FFmpegPath = @"E:\FFmpeg\ffmpeg\bin\ffmpeg.exe"; 20 21 public void CalcPSNR(string originalMoviePath, string targetMoviePath, string outputFilePath) 22 { 23 var arguments = $"-i {originalMoviePath} -i {targetMoviePath} -filter_complex psnr -f null - 2> {outputFilePath}"; 24 using (var process = new Process()) 25 { 26 process.StartInfo = new ProcessStartInfo 27 { 28 FileName = FFmpegPath, 29 Arguments = arguments, 30 CreateNoWindow = true, 31 UseShellExecute = false, 32 }; 33 process.Start(); 34 process.WaitForExit(); 35 } 36 } 37 } 38}
補足情報(FW/ツールのバージョンなど)
参考にさせていただいたサイト:
2つの映像の画質評価をする PSNR
MS-DOS 画面の出力をファイルに保存する
ffmpegを用いて動画から画像を取り出す【C#】
Windows 10 Home Var.1903
Visual Studio 2019
回答2件
あなたの回答
tips
プレビュー