-1

我在我的项目中添加了一个 ffmpeg.exe,但它是 64 位版本。我在我的项目中对文件属性做了:总是内容和复制。

但是当我的兄弟尝试运行需要 ffmpeg.exe 的项目时,程序崩溃了,因为他得到了 windows xp 32bit。

这就是我在代码中使用 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

其次,我如何检测或检查用户是否有 32 位以便运行/使用 ffmpeg.exe 32 位以及用户是否有 Windows 64 位使用 64 位?

4

2 回答 2

3

要包含 ffmpeg 两次,只需创建子目录 - X86\ffmpeg.exe 和 x64\ffmpeg.exe 并调用相应的子目录。

要查看您的操作系统是否支持 64 位,请使用System.Environment.Is64BitOperatingSystem

于 2013-06-07T19:25:05.423 回答
0

如何以编程方式检测您是否在 64 位 Windows 上运行

http://blogs.msdn.com/b/oldnewthing/archive/2005/02/01/364563.aspx

于 2013-06-07T19:26:22.743 回答