プロジェクトに ffmpeg.exe を 1 つ追加しましたが、これは 64 ビット バージョンです。私は自分のプロジェクトのファイル プロパティで行いました: Content と Copy always 。
しかし、兄弟が ffmpeg.exe を必要とするプロジェクトを実行しようとしたとき、彼は Windows XP 32 ビットを取得したため、プログラムがクラッシュしました。
これは、コードで ffmpeg.exe を使用する方法です:
public void Start(string pathFileName, int BitmapRate)
{
string outPath = pathFileName;
p = new NamedPipeServerStream(pipename, PipeDirection.Out, 1, PipeTransmissionMode.Byte);
b = new byte[1920 * 1080 * 3]; // some buffer for the r g and b of pixels of an image of size 720p
ProcessStartInfo psi = new ProcessStartInfo();
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.FileName = ffmpegFileName;
psi.WorkingDirectory = workingDirectory;
psi.Arguments = @"-f rawvideo -pix_fmt bgr0 -video_size 1920x1080 -i \\.\pipe\mytestpipe -map 0 -c:v libx264 -r " + BitmapRate + " " + outPath;
//psi.RedirectStandardOutput = true;
process = Process.Start(psi);
process.EnableRaisingEvents = false;
p.WaitForConnection();
}
質問は次のとおりです。プロジェクトに別のffmpeg.exeを追加するにはどうすればよいですか、今回は32ビットですが、問題はプロジェクトにすでにffmpeg.exeがあることです
2番目に、ユーザーが32ビットを使用してffmpeg.exe 32ビットを実行/使用するかどうか、およびユーザーがWindows 64ビットを使用している場合は64ビットを使用するかどうかを検出または確認するにはどうすればよいですか?