public void Convert2DvdMpeg(Mencoder.RegionType regType, string videoToConvertFilePath, string outputFilePath) { // http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-vcd-dvd.html StringBuilder cmd = new StringBuilder(); // mencoder.exe cmd.Append("-srate"); cmd.Append(" "); cmd.Append("48000"); cmd.Append(" "); cmd.Append("-af"); cmd.Append(" "); cmd.Append("lavcresample=48000"); cmd.Append(" "); cmd.Append("-noautosub"); cmd.Append(" "); cmd.Append("-oac"); // audio codec option cmd.Append(" "); cmd.Append("lavc"); // use builtin audio codec cmd.Append(" "); cmd.Append("-aid"); cmd.Append(" "); cmd.Append("0"); cmd.Append(" "); cmd.Append("-ovc"); // video codec option cmd.Append(" "); cmd.Append("lavc"); // use builtin video codec cmd.Append(" "); cmd.Append("-of"); cmd.Append(" "); cmd.Append("mpeg"); cmd.Append(" "); cmd.Append("-mpegopts"); cmd.Append(" "); cmd.Append("format=dvd:tsaf"); cmd.Append(" "); cmd.Append("-ofps"); cmd.Append(" "); if (regType == Mencoder.RegionType.PAL) { cmd.Append("25"); } else if (regType == Mencoder.RegionType.NTSC) { cmd.Append("30000/1001"); } cmd.Append(" "); cmd.Append("-vf"); cmd.Append(" "); if (regType == Mencoder.RegionType.PAL) { cmd.Append("scale=720:576,harddup"); } else if (regType == Mencoder.RegionType.NTSC) { cmd.Append("scale=720:480,harddup"); } cmd.Append(" "); cmd.Append("-lavcopts"); cmd.Append(" "); if (regType == Mencoder.RegionType.PAL) { cmd.Append("vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9"); } else if (regType == Mencoder.RegionType.NTSC) { cmd.Append("vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9"); } cmd.Append(" "); cmd.Append("-o"); cmd.Append(" "); cmd.Append('"' + outputFilePath + '"'); cmd.Append(" "); cmd.Append('"' + videoToConvertFilePath + '"'); Convert(cmd.ToString()); }
public Task Convert2DvdMpegAsync(Mencoder.RegionType regType, string videoToConvertFilePath, string outputFilePath) { return(Task.Run(() => Convert2DvdMpeg(regType, videoToConvertFilePath, outputFilePath))); }