示例#1
0
        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());
        }
示例#2
0
 public Task Convert2DvdMpegAsync(Mencoder.RegionType regType, string videoToConvertFilePath, string outputFilePath)
 {
     return(Task.Run(() => Convert2DvdMpeg(regType, videoToConvertFilePath, outputFilePath)));
 }