友情链接:.NET项目开发者博客

ffmpeg.exe的使用

       

        ffmpeg.exe是一个源于Linux的工具软件,是FLV视频转换器,可以轻易地实现FLV向其它格式avi、asf、 mpeg的转换或者将其它格式转换为flv。

        视频转码(Video Transcoding)是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码,再编码的过程,因此转换前后的码流可能遵循相同的视频编码标准,也可能不遵循相同的视频编码标准。

         从上传视频到用户能看到上传的视频为止,它需要在服务器内部经历复杂的过程,下图就是一段视频在服务器内部挣扎的过程:

       

     一般我们在使用此项技术(要引入ffmpeg文件)的时候,通常另配置一台视频转码的服务器,我们就从上传视频开始来模拟它在服务器内部的处理过程:

一、用户上传视频文件:Asp.net为了防止过大的http恶意请求阻塞网站,限定了每次上传文件最大4M,如果上传的文件不大,则先把它保存在内存中,如果文件过大,就会保存在磁盘中。为了保证安全,我们可以只对上传的ashx文件夹添加独立的web.config。其配置如下:

<system.web>

<HttpRuntime  maxRequestLength="204800"  requestLengthDiskThreshold="1024"/>

</system.web>

       首先,我们需要上传视频,视频上传前台代码部分如下:

     

视频上传到服务器的代码如下:

 

 视频上传成功之后,会将上传视频的内容保存在数据库中,并将它的状态信息设置为“已经上传到服务器上”另外会将它的信息通

过url传参的形式上传到解码服务器上,视频在解码服务器上的处理过程如下:

  

                      由于会经常有视频文件进行上传,我们的服务器需要不停的判断是否有新的视频进行转码操作,所以我们可以通过采用网站应

                      用程序启动的时候调用启动线程的方法。在Global.asax.cs文件的Application_Start方法下启动线程,启动方式为

                      ConverterMgr.Instance.Start();

                      将视频文件进行转码之后,将数据库中的视频的状态更新为"转换完成”,将转码视频文件的信息回交给原来的服务器,也是通

                      过url传参的形式,在一般程序中进行处理,原因是一般处理程序不走页面生命周期,执行效率高。

  

                  接收到内容以后,我们可以使用Dreamweaver CS3插入flash文件(这样做比在.aspx文件中做要简单),播放文件,后台代码

                  为:

                    

           我们从网站上看到的视频就可以这样来做了。

     

posted @ 2013-04-11 01:23  千年老妖  Views(6570)  Comments(2Edit  收藏  举报
友情链接:.NET项目开发者博客