视频批量转换为FLV的工作中,完全是因为项目中用到流媒体服务器管理发布视频。原始的数据可能是.mpg、.avi等格式的,这就需要大量的转换工作量,批量转换工具的需求很明显了。
原始准备使用外面的专门的视频转换软件Total Video Converter,该软件的功能真的很强大的,可是在批量处理上不是方便(需要一个个地将视频选中),但它的转换功能真的很强大。
领导的意思是自己搞视频批量转换,将其作为项目中辅助功能,当然也可能单独的辅助工具软件。
工作开始了,经过查找相关资料,确定使用FFmpeg作为后台解码支持软件的。网上资料很多的,但真正解决问题的很少。 我在使用过程中遇到很多问题,先罗列一下:
1.FFmpeg转换支持的格式??
2.FFMPEG的转成FLV的参数设置问题??(主要:保证转换和压缩的质量,跟原始数据量的丢失尽可能少)
3.FFMPEG的转换信息的输出问题:无法捕捉输出信息??(这个问题一直拖到最后才找到原因解决了)
考虑尽可能支持更多的视频格式,针对ffmpeg不支持的格式(rm、rmvb等)决定同时采用Mencoder转换支持软件。根据我看的相关资料Mencoder支持转换的视频格式是相当多的,后来几乎想舍弃ffmpeg,全部采用Mencoder来处理转换。由于Mencoder的转换速度较慢,决定采用两种FFMPEG 和Mencoder,优先采用FFmpeg转换。
Mencoder也涉及到参数设置要搞明白关键参数的意义,才能保证转换质量。Mencoder遇到的最大问题是,自己下载的软件包只有Mplayer.exe,原来以为就是用它来进行转换了,结果总是报参数错误。折腾半天,最后发现是自己下载的Mencoder包有问题,只要Mplayer.exe,没有需要的转换程序mencoder.exe,即:真正读取参数实现转换的是mencoder.exe,不是Mplayer.exe。希望大家如果有人要用Mencoder转换视频,别犯我的错误。
就实现视频转换功能来看,网上很多代码,稍微改一下就能用。既然有时间整了,就想钻的深点,至少搞清参数问题,也能保证自己的视频转换质量了。
自己只是从应用角度和使用心态上研究使用FFmpeg和Mencoder的,真的很佩服做出这些开源软件的程序员们,也对他们的工作表示感谢,以后有机会能继续深入学习FFmpeg和Mencoder的精髓。