/**/ /// <summary> /// 视频(avi,mov等等格式)转换为flv格式视频 /// </summary> /// <param name="FromName">被转换的视频文件</param> /// <param name="ExportName">转换flv后的文件名</param> /// <param name="ExportName">视频大小的尺寸</param> /// <returns></returns> public string VideoConvertFlv( string FromName, string ExportName, string WidthAndHeight) ... { string ffmpeg=@"C:Inetpubwwwrootdemopic fmpeg.exe"; System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.Arguments = " -i " + Server.MapPath(FromName) + " -ab 56 -ar 22050 -b 500 -r 15 -s "+WidthAndHeight+" "+Server.MapPath(ExportName); try ...{ System.Diagnostics.Process.Start(startInfo); return ExportName; } catch(Exception err) ...{ return err.Message; } } /**/ /// <summary> /// 从视频画面中截取一帧画面为图片 /// </summary> /// <param name="VideoName">视频文件pic/guiyu.mov</param> /// <param name="WidthAndHeight">图片的尺寸如:240*180</param> /// <param name="CutTimeFrame">开始截取的时间如:"1"</param> /// <returns></returns> public string GetPicFromVideo( string VideoName, string WidthAndHeight, string CutTimeFrame) ... { string ffmpeg=@"C:Inetpubwwwrootdemopic fmpeg.exe"; string PicName =Server.MapPath(Guid.NewGuid().ToString().Replace("-","")+".jpg"); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.Arguments = " -i " + Server.MapPath(VideoName) + " -y -f image2 -ss "+CutTimeFrame+" -t 0.001 -s " + WidthAndHeight + " " + PicName ; try ...{ System.Diagnostics.Process.Start(startInfo); return PicName; } catch(Exception err) ...{ return err.Message; } } ffmpeg参数使用说明ffmpeg.exe - i F:闪客之家闪客之歌.mp3 - ab 56 - ar 22050 - b 500 - r 15 - s 32 0x240 f: 11 .flvffmpeg - i F: 1 .wmv - ab 56 - ar 22050 - b 500 - r 15 - s 32 0x240 f:test.flv使用 - ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如:转换文件格式的同时抓缩微图:ffmpeg - i " test.avi " - y - f image2 - ss 8 - t 0.001 - s 35 0x240 ' test.jpg ' 对已有flv抓图:ffmpeg - i " test.flv " - y - f image2 - ss 8 - t 0.001 - s 35 0x240 ' test.jpg ' - ss后跟的时间单位为秒Ffmpeg转换命令ffmpeg - y - i test.mpeg - bitexact - vcodec h263 - b 128 - r 15 - s 176x144 - acodec aac - ac 2 - ar 22500 - ab 24 - f 3gp test.3gp或者ffmpeg - y - i test.mpeg - ac 1 - acodec amr_nb - ar 8000 - s 176x144 - b 128 - r 15 test.3gpffmpeg参数设定解说 - bitexact 使用标准比特率 - vcodec xvid 使用xvid压缩 - s 32 0x240 指定分辨率 - r 29.97 桢速率(可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29. 97 ) 画面部分,选其一 - b < 比特率 > 指定压缩比特率,似乎ffmpeg是自动VBR的,指定了就大概是平均比特率,比如768,1500这样的就是原来默认项目中有的 - qscale < 数值 > 以 < 数值 > 质量为基础的VBR,取值0. 01 - 255 ,约小质量越好 - qmin < 数值 > 设定最小质量,与 - qmax(设定最大质量)共用,比如 - qmin 10 - qmax 31 - sameq 使用和源同样的质量 声音部分 - acodec aac 设定声音编码 - ac < 数值 > 设定声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2 - ar < 采样率 > 设定声音采样率,PSP只认24000 - ab < 比特率 > 设定声音比特率,前面 - ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换君默认比特率都较小,要听到较高品质声音的话建议设到160kbps( 80 )以上 - vol < 百分比 > 设定音量,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍 这样,要得到一个高画质音质低容量的MP4的话,首先画面最好不要用固定比特率,而用VBR参数让程序自己去判断,而音质参数可以在原来的基础上提升一点,听起来要舒服很多,也不会太大(看情况调整例子:ffmpeg - y - i " 1.avi " - title " Test " - vcodec xvid - s 368x208 - r 29.97 - b 1500 - acodec aac - ac 2 - ar 24000 - ab 128 - vol 200 - f psp - muxvb 768 " 1.*** " 解释:以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行。不过,前提是:要在ffmpeg所在的目录中执行(转换君所在目录下面的cores子目录)。参数: - y(覆盖输出文件,即如果1. *** 文件已经存在的话,不经提示就覆盖掉了) - i " 1.avi " (输入文件是和ffmpeg在同一目录下的1.avi文件,可以自己加路径,改名字) - title " Test " (在PSP中显示的影片的标题) - vcodec xvid(使用XVID编码压缩视频,不能改的) - s 368x208(输出的分辨率为368x208,注意片源一定要是16:9的不然会变形) - r 29.97 (帧数,一般就用这个吧) - b 1500 (视频数据流量,用 - b xxxx的指令则使用固定码率,数字随便改,1500以上没效果;还可以用动态码率如: - qscale 4和 - qscale 6 ,4的质量比6高) - acodec aac(音频编码用AAC) - ac 2 (声道数1或2) - ar 24000 (声音的采样频率,好像PSP只能支持24000Hz) - ab 128 (音频数据流量,一般选择32、 64 、 96 、 128 ) - vol 200 ( 200 % 的音量,自己改) - f psp(输出psp专用格式) - muxvb 768 (好像是给PSP机器识别的码率,一般选择384、512和768,我改成1500,PSP就说文件损坏了) " 1.*** " (输出文件名,也可以加路径改文件名)P.S. 版主机器强劲的话,可以多开几个批处理文件,让它们并行处理。 E:ffmpeg.exe - i I: 1 .wmv - b 360 - r 25 - s 32 0x240 - hq - deinterlace - ab 56 - ar 22050 - ac 1 D: 2 .flv