最近公司做一个项目,开发一个视频站点。项目需求中有很多视频转换的需求,如:格式转换(flv,Mp4),视频水印,视频截图,视频合成,获取视频的基本信息(时间戳,视频大小等)。经过网络的收集资料以及自己的一些研究,总算完成了这一系类功能。这里就将编写程序遇到困难和获得的经验拿出来和大家分享一下,后面会详细介绍并贴上源码,希望一起改进一起完善。
1、使用引擎:ffmpeg (也考虑过Mencoder,不过这个转换有点慢,而且格式有限制,就没去研究了),
2、下载地址:http://ffmpeg.org/download.html(根据不同的需求下载不同的版本,我本地测试下载windows 32位,服务器是64位)
3、格式转换:ffmpeg可以将视频转码成很多格式,如:flv、mp4等,不过我们的项目不仅需要在web端播放,而且在移动设备上也能播放,所以为了方便等其它要求统一转码成MP4。
4、视频水印:使用ffmpeg给视频打水印非常简单,一个命令即可搞定,但是很多情况下,水印参数没设置好会影响视频的质量,后面我会做详细的讲解。
5、ffmpeg参数:事先去了解他的参数对后面的操作非常有必要,网络上很多,这里不做解释,后面也有参数介绍。
6、其它说明:因为ffmpeg 是命令行工具,在C#只能用Process调用,所以要获取当前的转换进度、获取什么时候完成转换,还是需要一些相关设置。我这里所有的视频转换操作,写成了一个windows服务,直接注册到服务器,5分钟检测并转换一次,web程序不参与视频的操作。
噢啦!今天先介绍到这里。