2014-09-01 26 views
1

啓動過程與管道命令在Windows中,很容易通過CMD.EXE送管,我只是寫C#單在Linux

.FileName = "cmd.exe";

.Arguments = "d:\ifme\addons\ffmpeg\ffmpeg -i d:\Videos\sata.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - 2> nul | d:\ifme\addons\x265\x265lo -p medium --crf 28 -f 523 -o d:\ifme\temp\video.hevc --dither --y4m -";

但在Linux操作系統(Ubuntu的14.04。 1)I寫:

.FileName = "/bin/bash";

.Arguments = "-c /home/anime4000/Desktop/ifme/addons/ffmpeg/ffmpeg -i /home/anime4000/Videos/sata.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - 2> /dev/null | /home/anime4000/Desktop/ifme/addons/x265/x265lo -p medium --crf 28 -f 523 -o /home/anime4000/Desktop/ifme/temp/video.hevc --dither --y4m -";

FFmpeg錯誤,沒有指定命令

我用創建文件的方法:

System.IO.File.WriteAllText("cmd.sh", "/home/anime4000/Desktop/ifme/addons/ffmpeg/ffmpeg -i /home/anime4000/Videos/sata.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - 2> /dev/null | /home/anime4000/Desktop/ifme/addons/x265/x265lo -p medium --crf 28 -f 523 -o /home/anime4000/Desktop/ifme/temp/video.hevc --dither --y4m -");

.FileName = "sh";

.Arguments = "cmd.sh";

我得到了一個錯誤,是x265lo文件不存在,但文件在那裏執行權限

那麼,如何獲得適當的管道命令與C#單聲道?

注:x265lo是一個8位的BPP建設,x265hi是一個16位BPP的身材,因爲包含兩個X265不同的BPP

回答

1

(對不起,這應該是一個評論,但我沒有在這裏有足夠的聲譽。

strace -fv -s4096 -e trace=execve /path/to/your/program args-to-your-program 

一旦你做到了這一點,請更新您的問題:)

我不知道什麼是錯的特別,但你應該能夠確定如何單做這樣的事情要求你的shell與相關execve()行。