MVC3.0视频点播及上传格式转化

在MVC3.0中播放视频文件需要做一下配置:具体配置如下

View Code
1 <div class="vidoplay">
2 <div>
3 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"(提示电脑安装Adobe软件)
4 width="400" height="400">
5 <param name="movie" value="http://www.cnblogs.com/Content/Video/Flvplayer.swf" />(使用Flvplay播放器,此次是存放在程式中的路径)
6 <param name="quality" value="high" />(高品质视频)
7 <param name="allowFullScreen" value="true" />(支持全屏)
8 <param name="FlashVars" value="读取的视频文件" />
9 上面在IE下没问题,针对firefox采用下面的方式
10 <embed src="http://www.cnblogs.com/Content/Video/Flvplayer.swf" allowfullscreen="true"
11 flashvars="读取的视频文件" quality="high"
12 pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"
13 width="400" height="400"></embed>
14 </object>
15 </div>
16 </div>

 除此之外,还需要一些样式文件。同事在网上选了很多个,最终测试后选择这个,感谢同事!

视频点播的时候,我们从服务器上获取点播的视频,此时格式是.flv的。所以在上传视频的时候
   我们需要进行视频转化。推荐使用两个转换器:
  第一个:FLV视频转换 - ffmpeg.exe

    源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。注意:该转换器不支持 "wmv", "rm", "rmvb"格式的转化,但我们可以使

用第二个转化器,即:  

  第二个:mencoder.exe 被称为:”全能编码器“
 
  两者使用方法相同:

首先:引用相应的命名空间 using System.Diagnostics;(管理系统进程,事务日志等功能)
 
  其次:

转化 Code
 1 string ffmpegPath //ffmpeg.exe文件所在位置
2 string mencoderPath = //mencoder.exe文件所在位置
3
4 public static string upFile = 上传的视频文件
5 public static string imgFile = 抓张图片,显示在视频
6 public static string playFile = 转化后的文件,即:播放文件
7
8 (可以限制一下视频文件大小)
9
10 //根据不同类型的文件进行不同的转换
11
12 if (!fileName.ToUpper().EndsWith(".FLV"))
13
14 {
15 if (fileName.ToUpper().EndsWith(".WMV")) //利用mencoder.exe将wmv文件转换成flv文件
16 {
17 System.Diagnostics.ProcessStartInfo FilestartInfo= new System.Diagnostics.ProcessStartInfo(mencoderPath, argu);
18 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
19
20 System.Diagnostics.Process.Start(FilestartInfo);
21 CatchImg(fileName, imgFile);//抓张图片 (另写个方法)
22 }
23
24 if (fileName.ToUpper().EndsWith(".AVI")) //利用ffmpeg.exe将avi文件转换成flv文件
25 {
26 System.Diagnostics.ProcessStartInfo FilestartInfo= new System.Diagnostics.ProcessStartInfo(ffmpegPath, argu);
27 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
28
29 System.Diagnostics.Process.Start(FilestartInfo);
30 CatchImg(fileName, imgFile);//抓张图片 (另写个方法)
31 }
32 }

最后:将转化后的保存到服务器。

posted @ 2011-07-02 19:25  365lei  阅读(1287)  评论(0编辑  收藏  举报