天天看点

.Net 玩视频

由于平台的特点 用.net做视频网站的不多 作为兴趣研究下

背景

经常上土豆 youku的朋友可能会发现播放的视频格式大多是flv格式的 那么我们先来扫盲下flv

FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。

但是用户手上的资源未必都是flv格式,所以需要格式转换。这里介绍2款工具

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。

mencoder 是一款命令行方式的视频处理软件,mencoder支持几乎所有的格式的视频转换,可以将任意格式转换到任意格式,转换功能可以说是相当强大。目前市面上流行的格式转换器,都是基于mencoder开发的GUI,比如暴风转码,格式工厂等。可以说转换器能办到的,mencoder都能办到,但mencoder能办到的,转换器就不一定能办到了。

不过FFmpeg和在mencoder在应用领域还是有些区别

网摘:

1,在实际的使用当中,ffmpeg 在 Redhat与Suse Linux 下面都运行正常,但是我在Suse Linux 10 上面压缩rm与 rmvb 视频时,压出来的片子声音不正常。在其他参数都完全一样的情况下使用Redhat 压缩,居然是正常的。看来 Suse 对企业应用比较好,但是对多媒体的应用(偏向个人方面)还是 Redhat 比较好一些。

2,ffmpeg 也可以压缩视频,不过,效果可是比mencoder 差好些。所以,基本上我只使用 ffmpeg 来抓取视频中的图片。可以使用 ffmpeg-php 这个开源项目程序来抓取任何一帧的图片,这样,我们就可以很方便地大致了解这个视频的内容了。

3,ffmpeg 压缩一个 wmv 文件,可能使用不到一分钟,但是 mencoder 却压缩了好几分钟,由于 mencoder 需要计算更多东西,所以,需要花更多的时间。

4,mencoder 支持的视频格式非常多,如常见的 wmv,avi,mpg,rm,rmvb,mov,3gp,mp4 等,大约有上百种,不过,我还无法一一测试,估计也是没有问题的。而ffmpeg 不支持 rm与rmvb 格式。

5,做为视频压缩,对机器的要求是比较高的,对系统资源的占用比较大,主要是对CPU与磁盘IO要求高。前两天压缩一个视频,使用 宝德 PR2700D 用了4分钟,使用宝德 PR4800 用了12分钟,使用一台 Dell 2950 上面的 Vmware 虚拟机使用了大约8分钟。综合来看,最好是CPU强一些,内存不要小于2GB,磁盘的IO要快一些。

实践

上述2款工具都有对应的win平台版本 那么我们只需要用.net启动软件进程就可以了 很简单 需要花功夫的是对工具各种复杂参数的把握

先上个简单的demo

我们选举一个很简单的视频 windows自带的示例视频 可以在目录C:\WINDOWS\clock.avi找到

每秒换一个数字

ffmpeg 压缩一个 视频 文件,可能使用不到一分钟,但是 mencoder 却压缩了好几分钟,由于 mencoder 需要计算更多东西,所以,需要花更多的时间。ffmpeg 也可以压缩视频,不过,效果可是比mencoder 差好些。并且ffmpeg对","wmv", "rmvb", "rm" 的效果不是很好,所以考虑的性能以及功能,"asf", "avi", "mpg", "3gp", "mov" 类型和截图功能使用ffmepg,"wmv", "rmvb", "rm"类型使用mencoder实现

所以我们这里用ffmpeg来转换

到输出目录中确认下我们转换的视频是否可用

我们再试试截图功能

我们截取2秒后和4秒后的 按照视频进度 应该截取到3和5 这2个数字

OK 貌似很顺利

下面给出具体的参数配置

ffmpeng

<a href="http://blog.51cto.com/dubing/796592#">expand source</a>

附demo 随笔之作 不工整比较丑陋就不直接贴项目了 未加密 有兴趣的同学直接反编译看吧

ffmpeng和mencoder的工具在网上搜一下 然后按照程序里的目录存放就可以了 

本文转自 熬夜的虫子  51CTO博客,原文链接:http://blog.51cto.com/dubing/796592

继续阅读