当前位置: 代码迷 >> ASP >> asp调用mencoder 生成FLV 的命令?解决办法
  详细解决方案

asp调用mencoder 生成FLV 的命令?解决办法

热度:259   发布时间:2012-03-09 21:42:54.0
asp调用mencoder 生成FLV 的命令?
<%
'///////////////////对上传文件进行格式的转换
mencoder=server.MapPath( "mencoder.exe ")
ffmpeg=server.MapPath( "ffmpeg.exe ")

'///////////////////产生随机数
randomize  
ranNum=int(900*rnd)+100  

'//////////////////路径
videoPath1=server.MapPath(session( "videoPath1 "))
flvPath1=server.MapPath(session( "SavePath "))& "\ "&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum& ".flv "

FileExt1=session( "FileExt ")

Set   WshShell1   =   server.CreateObject( "Wscript.Shell ")
'/////////////ffmpeg处理部分
        if   FileExt1= "wmv "   or   FileExt1= "asf "   or   FileExt1= "avi "   then
                str1=ffmpeg& "   -i   "&videoPath1& "   -ab   16   -ar   22050   -b   150   -r   15   -s   320x240   "&flvPath1& " "
                fileName=session( "SavePath ")&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
                Isffmpeg1=WshShell1.Run(str1,1,ture)

'//////////////mencoder处理部分
        elseif   FileExt1= "3gp "   or   FileExt1= "rm "   or   FileExt1= "rmvb "   or   FileExt1= "mp4 "   then
fileName=session( "SavePath ")&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
str1=mencoder& "   "&videoPath1& "   -o   "&flvPath1& "   -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=150:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1   -vf   scale=370:355   -ofps   12   -srate   22050 "
Isffmpeg1=WshShell1.Run(str1,1,ture)

        else
fileName=session( "fileName ")
        end   if


Set   WshShell1   =   Nothing
session( "fileName1 ")=fileName
response.write   fileName
response.redirect   "mvplay.asp "
'//////////////////对上传文件进行格式转换结束
%>


转换wmv格式时是调用ffmpeg没问题。但转换rm或rmvb时   生成的FLV文件只有0K,
直接在翕令提示符下输入命令,出现的错误为:connot   initialize   muxer

哪位高手用过mencoder帮忙分析一下,或者给段参数吧!!
如果谁有好的源码   发一份给我可以吗?   email:   swboy@126.com

------解决方案--------------------
今年最火的就是在线视频网站了。

这些网站都是.flv文件。.flv文件可以支持边下载边播放,而且占用空间比较小。

现在就有一个问题,如何让网站用户 不论上传什么文件,都自动转换为.flv文件?

我前几天稍微学习了一点点这方面的东西。

转换主要用到了两个控件。

1:mEncoder。2:ffmpeg

ffmpeg可以很方便的把大部分视频格式转换为.flv格式的。但是不支持.rm,.rmvb的。所以需要用mEncoder把.rm或者.rmvb直接转换为.flv的。但是我没有转换成功过,所以我只能先转换为.avi的,然后再用ffmpeg转换为.flv。

ffmpeg.asp
:

<%
Server.ScriptTimeout=0
str=server.MapPath( "ffmpeg1.exe ")
video=server.MapPath( "xyx.AVI ")
flv=server.MapPath( "xyx.flv ")
Set WshShell = server.CreateObject( "Wscript.Shell ")
str=str& " -i "&video& " -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 "&flv
  相关解决方案