发布时间:2011-07-24 09:50:43作者:知识屋
随着高清视频的逐渐流行,对于 H264 解码器的性能要求也越来越高。 由于缺乏厂商支持,FFmpeg 中的 ffh264 解码器由于解码效率不高,使得一些 CPU 配置较低的机子无法进行高清回放。如果你为此困扰,请参看 Linux 下高清视频回放 一文。本文将介绍如何将以 CoreAVC for Linux 应用到 MPlayer 中。
如果您的显卡不支持 nVidia 显卡独有的 GPU 解码 VDPAU(或者由于各种错误无法使用,如本人),而且 FFmpeg-mt 的 git 慢如牛速(怨念……还是本人……),此时 CoreAVC for Linux 成为了唯一的选择。全文将以 CoreAVC for Linux 维基为基础, 以Fedora 10 i386 系统为例介绍如何在 Linux 下使用 CoreAVC 解码器(亦可用于 X86_64 架构)。
需求条件:
1. CoreAVC 1.7 以上专业版及注册码
需要在 CoreAVC 购买,花费$15,可以拜托有 PayPal 的朋友代购……
2.Mplayer 的近期 SVN 版本,1.0rc2 不行。
推荐下载 MPlayer 每日更新的 SVN export 版本,速度比 svn 快。
3.必要的工具和开发包
su -c 'yum install subversion gcc make p7zip-plugins libXv-devel pulseaudio-libs-devel alsa-libs-devel libogg-devel ccache'
最后的 ccache 不是必须,但强烈推荐!
假设与该过程有关的 CoreAVC 安装文件和 MPlayer 源代码包都放在一个目录下,比如用户主目录下的 Build 目录下:
mkdir -pv $HOME/Build
其他目录也可以,只要自己别找不到东西了~
1.在 Build 目录下使用 svn 获得最新的 CoreAVC for Linux :
svn checkout linux.googlecode.com/svn/trunk/ coreavc-for-linux
2.上一步完成后会在当前目录下生成一个名为 coreavc-for-linux 的目录,进入它:
cd coreavc-for-linux
3.安装 dshowserver。
i386 平台可以直接:
make -C dshowserver
如果没有提示错误的话就可以安装:
su -c 'cp -v dshowserver/dshowserver /usr/local/bin'
su -c 'cp -v dshowserver/registercodec /usr/local/bin'
X86_64 平台的建议从这里下载已经编译好的,解压缩后同样使用上面的命令复制到 /usr/local/bin 下。
4.安装 CoreAVCDecoder.ax 解码器。
返回 Build 目录,假设 CoreAVC 安装文件保存在此目录下:
cd $HOME/Build
使用 7z 解压 CoreAVC 安装文件
7z x coreavc_professional_edition-setup.exe CoreAVCDecoder.ax
无错误的话可以在当前目录下找到名为 CoreAVCDecoder.ax 的文件。
现在 MPlayer 等播放器对于附件的二进制编码器的默认安装目录是 codecs,为了和官方维基尽量保持一致,在此创建由 codecs 指向 win32 的符号联结:
su -c 'ln -vs /usr/lib/codecs /usr/lib/win32'
复制 CoreAVCDecoder.ax 到此目录。
su -c 'cp -v CoreAVCDecoder.ax /usr/lib/win32/'
5.注册 CoreAVCDecoder.ax
如果之前没有使用过 MPlayer 的话,需要创建用户配置文件目录,使用过的话可以跳过:
mkdir-pv $HOME/.mplayer
将保存 MPlayer 配置信息的 $HOME/.mplayer 目录关联为注册表:
export REGISTRY=$HOME/.mplayer/registry32
输入注册码,用你获得的注册码替代下面命令中的 55555-55555-CORE-55555-55555,注意双引号需要保留:
registercodec -r $REGISTRY -k "HKLMSoftwareCoreCodecCoreAVC ProSerial" -v "55555-55555-CORE-55555-55555"
6.用 dshowserver 测试是否注册成功:
dshowserver -c CoreAVCDecoder.ax -s 1280x720 -g 09571a4b-f1fe-4c60-9760de6d310c7c31 -b 12 -f 0x34363248 -o 0x30323449
得到的输出结果应该是:
No id specified, assuming test mode
Opening device
len: 992
ProductVersion: 1.7.0
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete
如果使用的是 1.9.0 版本的 CoreAVC 的话,输出结果应该是:
No id specified, assuming test mode
Opening device
Called unk_IsDebuggerPresent
len: 992
&n
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能