VP8 正式开源发布及我的支持VP8编码的ffmpeg编译版

小编辑 发布于 2010/05/20 21:36
阅读 4K+
收藏 4

年初Google正式收 购了On2公司,关于On2的VP系列视频编码器将实现开源的说法就被广泛地提出来。On2大概在08年底就放出了关于VP8的几篇王婆卖瓜的文章,但是 一直都没有放出任何一个能压制VP8的软件。直到昨天(5月19日),也就是Google完成On2收购后的整整3个月,Google终于发布了其新 WebM项目(http://www.webmproject.org/),而其中最重要的部分就是libvpx,也就是一个开源的VP8编码解码器。另 外,Google在MKV格式的基础上,为libvpx开发了一个新的专用封包格式WebM。但是经过实际测试,VP8不仅同样支持普通的MKV封包格 式,甚至也能支持老的AVI封包格式(目前来看VP8不支持B帧,因此比xvid、x264之类广泛使用B帧的编码器更兼容AVI)。
libvpx 通过一个专门制定的、类似BSD协议的WebM协议发布,目前开源社区对它的态度尚没有完全确定的迹象,在一星期内对libvpx的支持应该不会正式进入 ffmpeg和mplayer的源码树。Google官方发布了libvpx的源码及ffmpeg/mplayer支持libvpx、以及通过修改已有的 MKV支持来支持WebM的patch(http://code.google.com/p/webm/downloads/list)。

我 今天下午在MinGW 4.3.3 TDM-1平台成功编译了libvpx和支持libvpx、WebM的ffmpeg、mplayer。ffmpeg 使用vp8压制视频的参数为-vcodec libvpx_vp8, 标准的-b、 -g参数可用,其他可用参数可以参考vp8的四个preset(我一起打在压缩包中了),如果用ffmpeg
默认设置,一定要加上-qmax 51,默认的qmax(31)对于VP8来说Q值无法满足码率控制的需求。libvpx_vp8支持的封装格式据我实际测试,至少包括webm、mkv、 mov和avi。至于mencoder,因为困扰了很长时间的mingw gcc生成SSE指令不稳定的问题,我只能在禁用了SSE的mencoder中成功输出VP8视频部分的AVI文件,而且qmax不能大于31(这应该还 是mencoder的问题)。

Photobucket
ffmpeg  2pass 输出webm文件

Photobucket
mencoder 1pass输出VP8编码的AVI文件

Photobucket
mplayer 播放VP8编码的AVI

Photobucket
目前能下到的非开源VP8压缩程序Wildform Flix WebM,问题很多。

我的支持libvpx与WebM的ffmpeg、mplayer:http://cid- 66b9967ec9d22dd4.skydrive.live.com/self.aspx/.Public/yksoft1-ffmplayervp8.7z

我 试编码的VP8测试文件(可能不会存活很长时间,占空间较大):
http://cid-66b9967ec9d22dd4.skydrive.live.com/browse.aspx/.Public/VP8-Tests

我 粗略编码了一些文件,粗略觉得VP8比flv1、vp6和xvid都强,和frameref=1,关闭bframe和所有main、high profile功能的simple
H264完全可以一拼,但是和main、high的H264相比可能还有点差距。这是第一个发布版,也许在彻 底开源化后开源社区可以让它和Theora一样最终脱胎换骨,打败H264。

如果需要使用DirectShow框架的播放器播放WebM 文件和VP8编码的AVI文件,请安装Google的VP8 Directshow解码器vp8decoder.dll、WebM分离器webmsplit.dll、WebM源筛选器webmsource.dll。 可以从http://code.google.com/p/webm/downloads/list中下载 webmdshow-0.9.5.0-20100518.zip,然后手工安装。

原文转自:http://yksoft1.spaces.live.com/blog/cns!66B9967EC9D22DD4!1188.entry

加载中
0
tgh1981
tgh1981

我看见春哥...

0
乱弹

我是来拜春哥的

返回顶部
顶部