本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7581810
建立时间:2006年5月29日




[视频处理]flv视频转换和flash播放的解决方案笔记
软件技术

lhwork 发表于 2007/2/6 9:41:43

凌晨2点洗澡的时候,突然决定把flv的视频转换和在线播放的问题研究一下。于是在之后花了2小时进行Google,并在睡觉前初步试验成功。今天晚上对这些信息进行了一下整理,分享给大家。youtube火起来以后,国内外跟进的一大把,不过技术和流程上没有任何突破,基本上就是服务器自动对用户上传的视频进行压缩,压成可以用flash在线播放的flv,缩小尺寸并降低码率。然后再用Flash制作一个播放器,可以根据参数在线播放指定的flv视频,当然有些还会加上水印和跳自己网站等功能。转换工具可以选择ffmpeg和mencoder,这2个都是gnu项目,并且可以非常完美的在linux/Mac/Win32等平台下使用。不过ffmpeg支持的视频格式较少(不能很方便的支持rmvb,mov等,不过据说Google Video用的是这个),而mencoder则不能进行截图,所以可以考虑2者结合使用,mencoder负责转换,ffmpeg负责截图。关于下载和安装,ffmpeg烦一点,官方网站上只提供了svn,需要自己编译。具体可以参考这篇文章,Windows还需要装MinGW来MSYS模拟linux环境,偷懒的话可以直接找个编译好的版本,不过功能可能会不全。mencoder则很简单,本来就是mplayer的一部分,会装mplayer就成。注意把codecs都装全了首先通过mencoder把普通视频转化为flv格式,命令如下 代码 mencoder test.avi -o test.flv -of lavf -oac mp3lame -lameopts abr:br=32:mode=3 -ovc lavc -lavcopts vcodec=flv:vbitrate=150:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -vf scale=350:-3 -sws 2mencoder 的参数超级复杂,视音频压缩本身又是一门非常高深的学问,本人略知皮毛,下面只对自己了解的一些参数做些说明,详细解释请看手册 引用 test.avi 输入文件路径,是Mplayer能支持的格式即可-o test.flv输出路径-of lavf输出格式 lavf表示libavcodec-oac mp3lame输出音频编码方式,lame是最好的mp3编码器-lameopts abr:br=32:mode=3lame的选项abr代表平均码率,相对于cbr(固定码率)和vbr(可变码率,貌似不支持)br就是音频的码率,越高音质越好mode=3,0-3分别代表Stereo,Joint Stereo,Force ms_stereo,Mono(默认为自动,事实上1和3对文件大小的影响并不是很大)另外可选的还有 vol(音量,取值0-10,数值越大音量越大,不建议修改)等-srate 22050声音采样频率设置,也可以选11025,文件可以稍小一点-ovc lavc输出视频编码 lavc就是libavcodec-lavcoptslavc的的选项codec=flv flv格式压缩vbitrate=150 视频码率其他几个选项一概不懂,请看手册(一般来说看了还是不懂)-vf scale=350:-3 -sws 2缩放视频,指定宽度为350,高度按比例来。质量由-sws选项控制,具体看手册-ofps 23 设定帧数,缩小帧数对节约文件大小效果不明显,且可能造成画面声音同步。建议不设置mencoder压缩后生成的flv缺少meta信息,会造成播放时没有进度条等问题,需要再用flvmdi修复一下 代码 flvmdi test.flv生成后的flv通过MPC就可以预览。ffmpeg截图 代码 ffmpeg -i test.flv -ss 10 -vframes 1 -r 1 -ac 1 -ab 2 -s 320×240 -f image2 test.jpg-ss 10 就是说1秒后的那一帧然后生成flash视频播放器的话,网上例子很多,自己对Flash研究也不深,也就不多说了,要自定义播放器界面的参考这里唯一需要补充一下的是视频的smoothing属性,现在的在线播放器尺寸一般都回比实际压缩后的视频尺寸大一些,smoothing=true可以保证放大的质量(包括全屏后的),具体的文章见这里。很长时间没在技术方面做些研究了,难得在晚上可以清静些。我所了解的内容都已列出,也不会再作进一步研究,所以其他的问题就不要问我了,Google一下会比问我更有效率。


阅读全文(3231) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.336 second(s), page refreshed 144780160 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号