背景
经常上土豆 youku的朋友可能会发现播放的视频格式大多是flv格式的 那么我们先来扫盲下flv
FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。
更多参考百科 http://baike.baidu.com/view/364757.htm
但是用户手上的资源未必都是flv格式,所以需要格式转换。这里介绍2款工具
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
更多参考百科 http://baike.baidu.com/view/856526.htm
mencoder 是一款命令行方式的视频处理软件,mencoder支持几乎所有的格式的视频转换,可以将任意格式转换到任意格式,转换功能可以说是相当强大。目前市面上流行的格式转换器,都是基于mencoder开发的GUI,比如暴风转码,格式工厂等。可以说转换器能办到的,mencoder都能办到,但mencoder能办到的,转换器就不一定能办到了。
更多参考百科 http://baike.baidu.com/view/3353694.htm
不过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找到