程序核心如下:  System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(tool);
       
        FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        FilestartInfo.Arguments = " " + vFileName + " -o " + flv_file + " -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:mbd=2:mv0:trell:v4mv:cbp:last_pred=1:dia=-1:cmp=0:vb_strategy=1 -vf scale=" + widthOfFile + ":" +heightOfFile + " -ofps 12 -srate 22050";
        try
        {
            System.Diagnostics.Process.Start(FilestartInfo);
//需要延时或是什么的吗?
                   }
        catch
        {
            return "";
        } 我用上面程序做转换的时候,RM和RMVB的格式老是转换失败!不知道是怎么搞的,转换后的FLV文件老是显示0KB,打开也没内容.但是在做了大量实验后有一个RMVB的文件又能转换成功,头疼.所以我怀疑是我下的MENCODER.EXE有问题.但是感觉又不是.是不是需要延时呢?还是需要什么来的.希望遇到过的朋友帮我看看.谢

解决方案 »

  1.   

    上传文件后,你可以试试暂停一下程序,文件上传之后需要一段时间从内存中写到硬盘里。
    或者你改一下参数:
              FilestartInfo.Arguments = " " + vFileName + " -0 " + flv_file + " -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500 -vf scale=" + widthOfFile + ":" + heightOfFile + " -ofps 18 -srate 22050";
    少了几个参数,我的就可以,不知道你可不可以,试试咯。
    如果你还想对flv文件截图的话,那也要暂停程序一下。
    暂停:System.Threading.Thread.Sleep(10000);//时间为10秒