在ASP.Net中实现flv视频转换的代码

2019-05-12 09:29:29刘景俊


       //必须创建可以自动转换完成以后,结束进程的代码
       return p.StandardOutput.ReadToEnd();        //從輸出流取得命令執行結果
   }



------------------------------------
另一种方法: 用MEncoder转换视频文件为Flv 

mencoder 转换视频注意事项


1、下载 mencoder.exe 和 mplayer.exe 
2、将mencoder.exe 所在文件夹,加入环境变量Path里面 ,如C:mplayer
3、微软键+R,输入cmd,命令行打入如下语法
mencoder d:test.avi -o d:testflv.flv -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=100:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=512:-3 -ofps 12 -srate 22050

语法说明:
mencoder d:test.avi -o d:testflv.flv   //将D:test.avi 输出到 d:testflv.flv, 参数 -o 代表输出路径
-of lavf    //参数 -of :输出文件的格式,flv文件是属于lavf格式
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames    //lavf格式的参数设置,对于转换flv格式,最好加上这个长句。意思是不用bframes。

-oac mp3lame   //输出音频编码器,这里用的mp3lame
-lameopts abr:br=56   //是专门针对mp3lame的参数设置,abr:br=56,是设置音频比特率为56

-ovc lavc  //输出视频编码器



//视频编码器的设置:
-lavcopts 

vcodec=flv:    //指定视频编码器为flv
vbitrate=500:  //指定视频比特率为500 ,低品质为150kb/s,中等品质为400kb/s,高品质为700kb/s
mbd=2:         //宏模块选择算法,值为0~2默认为0,值越大转换越缓慢,但在品质和文件大小方面有好处
mv0:           //编译每个宏模块并选择最好的一个,当mbd=0时无效;
trell:         //会稍微增加品质,mbd>0时效果更明显;
v4mv:          //量子化网格搜索,对每8×8block找到最优化编码
cbp:           //只能和trell一期使用,评估失真的图像块编码;
last_pred=3:   //与上一帧相比的移动数量预测,值为0~99,1~3比较合适,大于3时对品质的提高已经无关紧要,但却会降低速度;