Mercurial > mplayer.hg
comparison DOCS/zh/video.html @ 9614:05b3a03fdd8f
Sync by <hephooey@fastmail.fm>.
author | diego |
---|---|
date | Mon, 17 Mar 2003 10:05:22 +0000 |
parents | 883f38591d47 |
children | 0fe056bdb135 |
comparison
equal
deleted
inserted
replaced
9613:a9ed435367e8 | 9614:05b3a03fdd8f |
---|---|
57 | 57 |
58 | 58 |
59 <P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> | 59 <P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> |
60 | 60 |
61 | 61 |
62 <P>并非所有CPU都支持MTRR。比如较老的K6-2[266MHz左右,步进值0]不支持MTRR,但是步进值12的就支持(用'<CODE>cat /proc/cpuinfo</CODE>'命令检查)。</P> | 62 <P>并非所有CPU都支持MTRR。比如较老的K6-2[266MHz左右,步进值0]不支持MTRR,但是步进值12的就 |
63 支持(用'<CODE>cat /proc/cpuinfo</CODE>'命令检查)。</P> | |
63 | 64 |
64 <H4><A NAME="normal">2.3.1.2 传统显卡的视频输出</A></H4> | 65 <H4><A NAME="normal">2.3.1.2 传统显卡的视频输出</A></H4> |
65 | 66 |
66 <H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> | 67 <H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> |
67 | 68 |
125 <H4><A NAME="xv_s3">2.3.1.2.1.2 S3显卡</A></H4> | 126 <H4><A NAME="xv_s3">2.3.1.2.1.2 S3显卡</A></H4> |
126 | 127 |
127 <P>S3 Savage3D应该能正常工作,不过对于Savage4,请使用XFree86 4.0.3或更新的版本(如果图象有问题,试试16bpp)。 | 128 <P>S3 Savage3D应该能正常工作,不过对于Savage4,请使用XFree86 4.0.3或更新的版本(如果图象有问题,试试16bpp)。 |
128 至于S3 Virge,虽然有xv支持,但是这种显卡实在太慢,因此你最好卖了它。</P> | 129 至于S3 Virge,虽然有xv支持,但是这种显卡实在太慢,因此你最好卖了它。</P> |
129 | 130 |
130 <P><B>注意</B>:目前不清楚Savage结构的那个部分缺少YV12支持,而是用驱动进行转换的(很慢)。如果你怀疑你的显卡,找一个新的驱动,或者在mplayer-users的邮件列表上礼貌的询问支持MMX/3DNow的驱动。</P> | 131 <P><B>注意</B>:目前不清楚Savage结构的那个部分缺少YV12支持,而是用驱动进行转换的(很慢)。如果你怀疑你的显卡,找一 |
132 个新的驱动,或者在mplayer-users的邮件列表上礼貌的询问支持MMX/3DNow的驱动。</P> | |
131 | 133 |
132 | 134 |
133 <H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia显卡</A></H4> | 135 <H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia显卡</A></H4> |
134 | 136 |
135 <P>nVidia在Linux下不是很好的选择(nVidia认为,这<A HREF="users_against_developers.html#nvidia">并非真实情况</A>).. | 137 <P>nVidia在Linux下不是很好的选择(nVidia认为,这<A HREF="users_against_developers.html#nvidia">并非真实情况</A>).. |
167 EndSection</P> | 169 EndSection</P> |
168 | 170 |
169 | 171 |
170 <H4><A NAME="xv_trident">2.3.1.2.1.6 Trident显卡</A></H4> | 172 <H4><A NAME="xv_trident">2.3.1.2.1.6 Trident显卡</A></H4> |
171 | 173 |
172 <P>如果你想要在Trident显卡上使用xv,它在4.1.0下不工作,尝试XFree最新的CVS或者等候XFree 4.2.0。最新的CVS加入了Cyberblade XP显卡的全屏Xv支持。</P> | 174 <P>如果你想要在Trident显卡上使用xv,它在4.1.0下不工作,尝试XFree最新的CVS或者等候XFree 4.2.0。最新的CVS加入 |
175 了Cyberblade XP显卡的全屏Xv支持。</P> | |
173 | 176 |
174 <H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4> | 177 <H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4> |
175 | 178 |
176 <P>如果你想在一块基于Kyro的显卡(例如Hercules Prophet 4000XT)上使用Xv,你应该从<A HREF="http://www.powervr.com/">PowerVR的网站</A>上下载驱动。</P> | 179 <P>如果你想在一块基于Kyro的显卡(例如Hercules Prophet 4000XT)上使用Xv,你应该从<A |
180 HREF="http://www.powervr.com/">PowerVR的网站</A>上下载驱动。</P> | |
177 | 181 |
178 | 182 |
179 <H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> | 183 <H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> |
180 | 184 |
181 <H5>引言</H5> | 185 <H4>引言</H4> |
182 | 186 |
183 <P>这部分文档试图花些篇幅来解释DGA大概是什么以及MPlayer的DGA视频输出驱动能干什么(和不能干什么)。</P> | 187 <P>这部分文档试图花些篇幅来解释DGA大概是什么以及MPlayer的DGA视频输出驱动能干什么(和不能干什么)。</P> |
184 | 188 |
185 | 189 |
186 <H5>DGA是什么</H5> | 190 <H4>DGA是什么</H4> |
187 | 191 |
188 <P>DGA是Direct Graphics Access的简称,是一种使程序绕过X-服务器直接修改帧缓冲显存的方法。从技术角度说这是通过把帧缓冲显存映射到你的处理器的内存范围之内。 | 192 <P>DGA是Direct Graphics Access的简称,是一种使程序绕过X-服务器直接修改帧缓冲显存的方法。从技术角度说 |
189 只有你有超级用户权限的时候内核才允许这种操作。用root登录或者给MPlayer的执行文件设置SUID位(推荐使用!)可以做到这一点。</P> | 193 这是通过把帧缓冲显存映射到你的处理器的内存范围之内。只有你有超级用户权限的时候内核才允许这种操作。用root登录或者 |
194 给MPlayer的执行文件设置SUID位(推荐使用!)可以做到这一点。</P> | |
190 | 195 |
191 <P>DGA有两种版本: DGA1用于XFree 3.x.x和DGA2从XFree 4.0.1开始引入。</P> | 196 <P>DGA有两种版本: DGA1用于XFree 3.x.x和DGA2从XFree 4.0.1开始引入。</P> |
192 | 197 |
193 <P>DGA1只提供了前述的帧缓冲直接操作功能。你不得不使用XVidMode扩展来切换视频信号的分辨率。</P> | 198 <P>DGA1只提供了前述的帧缓冲直接操作功能。你不得不使用XVidMode扩展来切换视频信号的分辨率。</P> |
194 | 199 |
195 <P>DGA2结合了XVidMode扩展的特性而且也允许切换显示的色彩深度。因此,虽然一般使用32位色X服务器,你也能切换到15位色深,反之亦然。</P> | 200 <P>DGA2结合了XVidMode扩展的特性而且也允许切换显示的色彩深度。因此,虽然一般使用32位色X服务器,你也能切换到15位色深,反之亦然。</P> |
196 | 201 |
197 <P>然而DGA也有一些弊端。它似乎有些依赖于你使用的图形芯片和X服务器中控制该芯片的视频驱动。因此,它并不是对所有的系统都起作用。</P> | 202 <P>然而DGA也有一些弊端。它似乎有些依赖于你使用的图形芯片和X服务器中控制该芯片的视频驱动。因此,它并不是对所有的系统都起作用。</P> |
198 | 203 |
199 | 204 |
200 <H5>为MPlayer安装DGA支持</H5> | 205 <H4>为MPLAYER安装DGA支持</H4> |
201 | 206 |
202 <P>首先确保X装载了DGA扩展,察看/var/log/XFree86.0.log:</P> | 207 <P>首先确保X装载了DGA扩展,察看/var/log/XFree86.0.log:</P> |
203 | 208 |
204 <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> | 209 <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> |
205 | 210 |
223 | 228 |
224 <P>现在使用<CODE>-vo dga</CODE>选项,开始使用(如此希望:))! | 229 <P>现在使用<CODE>-vo dga</CODE>选项,开始使用(如此希望:))! |
225 你也应该尝试看看<CODE>-vo sdl:dga</CODE>选项能否正常工作。它快得多。</P> | 230 你也应该尝试看看<CODE>-vo sdl:dga</CODE>选项能否正常工作。它快得多。</P> |
226 | 231 |
227 | 232 |
228 <H4><A NAME="dga_resolution">2.3.1.2.2.4 切换分辨率</A></H4> | 233 <H4><A NAME="dga_modelines">切换分辨率</A></H4> |
229 | 234 |
230 <P>DGA驱动允许切换输出信号的分辨率。这样能避免使用(缓慢的)软件缩放同时又提供全屏图象。理想情况下,它将精确切换成视频数据的分辨率(除了为了保持长宽比), | 235 <P>DGA驱动允许切换输出信号的分辨率。这样能避免使用(缓慢的)软件缩放同时又提供全屏图象。理想情况下,它将精确切换成视频数据 |
231 但是X服务器仅允许切换到<CODE>/etc/X11/XF86Config</CODE>(XFree 4.0.X使用<CODE>/etc/X11/XF86Config-4</CODE>用于区别)中预定义的分辨率。 | 236 的分辨率(除了为了保持长宽比),但是X服务器仅允许切换到<CODE>/etc/X11/XF86Config</CODE>(XFree 4.0.X使 |
232 它们被所谓的modelines定义并且依赖于你的视频硬件的能力。X服务器启动时扫描这个配制文件并且禁用那些不适用于你的硬件的modelines。你能通过X11的log文件找出 | 237 用<CODE>/etc/X11/XF86Config-4</CODE>用于区别)中预定义的分辨率。它们被所谓的modelines定义并且依赖于你的视频硬件的 |
233 哪些方式可用。它能在这里找到: | 238 能力。X服务器启动时扫描这个配制文件并且禁用那些不适用于你的硬件的modelines。你能通过X11的log文件找出哪些方式可用。它能 |
234 <CODE>/var/log/XFree86.0.log</CODE>。</P> | 239 在这里找到:<CODE>/var/log/XFree86.0.log</CODE>。</P> |
235 | 240 |
236 <P>下面的例子对于一块Riva128芯片工作良好,使用X server的驱动模块<CODE>nv.o</CODE>。</P> | 241 <P>下面的例子对于一块Riva128芯片工作良好,使用X server的驱动模块<CODE>nv.o</CODE>。</P> |
237 | 242 |
238 <PRE> | 243 <PRE> |
239 Section "Modes" | 244 Section "Modes" |
247 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan | 252 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan |
248 EndSection | 253 EndSection |
249 </PRE> | 254 </PRE> |
250 | 255 |
251 | 256 |
252 <H5>DGA & MPLAYER</H5> | 257 <H4>DGA & MPLAYER</H4> |
253 | 258 |
254 <P>MPlayer在有两种方法使用DGA:SDL驱动能使用它(-vo sdl:dga),DGA驱动(-vo dga)页使用它。上面说的内容对两者都有效; | 259 <P>MPlayer在有两种方法使用DGA:SDL驱动能使用它(-vo sdl:dga),DGA驱动(-vo dga)页使用它。上面说的内容对两者都有效; |
255 在下列的几段中我将解释MPlayer中DGA驱动是如何工作的。</P> | 260 在下列的几段中我将解释MPlayer中DGA驱动是如何工作的。</P> |
256 | 261 |
257 | 262 |
258 <H5>特性</H5> | 263 <H4>特性</H4> |
259 | 264 |
260 <P>DGA驱动通过命令行中的-vo dga选项调用。默认操作是转换成与原来的视频尽可能接近的分辨率。它将忽略-vm和-fs选项(开启视频模式切换和全屏方式) | 265 <P>DGA驱动通过命令行中的-vo dga选项调用。默认操作是转换成与原来的视频尽可能接近的分辨率。它将忽略-vm和-fs选项(开启视频模式切换和全屏方式) |
261 -- 它总试图通过切换显示模式尽可能多的覆盖你的屏幕,这样阻碍你的CPU使用一个单一的附加的周期来放大图像。 | 266 -- 它总试图通过切换显示模式尽可能多的覆盖你的屏幕,这样阻碍你的CPU使用一个单一的附加的周期来放大图像。 |
262 如果你不喜欢它选择的模式你能强迫它选择最接近于你通过-x和-y选项规定的分辨率的模式。使用-v选项,DGA驱动将在一大堆别的东西中打印出你 | 267 如果你不喜欢它选择的模式你能强迫它选择最接近于你通过-x和-y选项规定的分辨率的模式。使用-v选项,DGA驱动将在一大堆别的东西中打印出你 |
263 当前XF86-Config文件支持的所有分辨率的列表。 | 268 当前XF86-Config文件支持的所有分辨率的列表。 |
264 如果是DGA2你也能通过使用-bpp选项强迫它使用一定的色彩深度。有效的色深是15,16,24和32。这取决于你的硬件对这些色深是否本地支持, | 269 如果是DGA2你也能通过使用-bpp选项强迫它使用一定的色彩深度。有效的色深是15,16,24和32。这取决于你的硬件对这些色深是否本地支持, |
265 还是通过某种(有可能很慢)的转化来完成的。</P> | 270 还是通过某种(有可能很慢)的转化来完成的。</P> |
271 | 276 |
272 <P>双重缓冲可以用-double选项开启也可以用-nodouble选项禁止。目前缺省选项是禁用双重缓冲。屏幕显示功能(OSD)在使用DGA驱动模式时必须打开双重缓冲功能。 | 277 <P>双重缓冲可以用-double选项开启也可以用-nodouble选项禁止。目前缺省选项是禁用双重缓冲。屏幕显示功能(OSD)在使用DGA驱动模式时必须打开双重缓冲功能。 |
273 然而,使用双重缓冲可能导致较大的速度下降(在我的K6-II+ 525上它多占用20%的CPU时间!),下降程度取决于DGA操作你的硬件的方法。</P> | 278 然而,使用双重缓冲可能导致较大的速度下降(在我的K6-II+ 525上它多占用20%的CPU时间!),下降程度取决于DGA操作你的硬件的方法。</P> |
274 | 279 |
275 | 280 |
276 <H5>速度问题</H5> | 281 <H4>速度问题</H4> |
277 | 282 |
278 <P>一般来说,DGA帧缓冲至少应该跟X11驱动一样快同时还有全屏图象的附加好处。对MPlayer打印出的百分比速度的评价应该小心, | 283 <P>一般来说,DGA帧缓冲至少应该跟X11驱动一样快同时还有全屏图象的附加好处。对MPlayer打印出的百分比速度的评价应该小心, |
279 比如X11驱动它们并不包括X-服务器真正绘制所用的时间。开一个终端连到你的机器的串口上运行top命令看看你的机器真正在干什么...</P> | 284 比如X11驱动它们并不包括X-服务器真正绘制所用的时间。开一个终端连到你的机器的串口上运行top命令看看你的机器真正在干什么...</P> |
280 | 285 |
281 <P>一般来说,使用DGA相对“普通的”使用X11所产生的速度提高高度依赖于你的显卡,以及X-服务器中它的模块做了多少优化。</P> | 286 <P>一般来说,使用DGA相对“普通的”使用X11所产生的速度提高高度依赖于你的显卡,以及X-服务器中它的模块做了多少优化。</P> |
285 <P>即使你的显卡自身就支持32bit色深,使用24bit的色深也是个好主意,因为它被32/32方式少传输25%的数据。</P> | 290 <P>即使你的显卡自身就支持32bit色深,使用24bit的色深也是个好主意,因为它被32/32方式少传输25%的数据。</P> |
286 | 291 |
287 <P>我曾见过一些AVI文件能在Pentium MMX 266上播放。AMD K6-2 CPU在400 MHZ以上的应该可以工作。</P> | 292 <P>我曾见过一些AVI文件能在Pentium MMX 266上播放。AMD K6-2 CPU在400 MHZ以上的应该可以工作。</P> |
288 | 293 |
289 | 294 |
290 <H5>已知的BUG</H5> | 295 <H4>已知的BUG</H4> |
291 | 296 |
292 <P>嗯,据一些XFree的开发者说,DGA像头野兽。他们告诉你不要使用它。并非对任何芯片的驱动它的操作都是没有瑕疵的。</P> | 297 <P>嗯,据一些XFree的开发者说,DGA像头野兽。他们告诉你不要使用它。并非对任何芯片的驱动它的操作都是没有瑕疵的。</P> |
293 | 298 |
294 <UL> | 299 <UL> |
295 <LI>在XFree 4.0.3的nv.o有一个bug导致奇怪的颜色。</LI> | 300 <LI>在XFree 4.0.3的nv.o有一个bug导致奇怪的颜色。</LI> |
303 | 308 |
304 | 309 |
305 <H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> | 310 <H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> |
306 | 311 |
307 <P>SDL(Simple Directmedia Layer)基本上是一种统一的视频/音频接口。使用它的程序只要知道SDL,而不需要了解SDL实际上使用的视频或音频驱动。 | 312 <P>SDL(Simple Directmedia Layer)基本上是一种统一的视频/音频接口。使用它的程序只要知道SDL,而不需要了解SDL实际上使用的视频或音频驱动。 |
308 例如使用SDL的Doom移植能在svgalib,aalib,X,fbdev,和其他东西上使用,你仅需要用环境变量SDL_VIDEODRIVER规定(例如)使用的视频驱动。嗯,至少在理论上。</P> | 313 例如使用SDL的Doom移植能在svgalib,aalib,X,fbdev,和其他东西上使用,你仅需要用环境变量SDL_VIDEODRIVER规定(例如)使用的视频驱 |
314 动。嗯,至少在理论上。</P> | |
309 | 315 |
310 <P>在MPlayer中,我们使用它的X11驱动的软件缩放功能,用于不支持XVideo的芯片/显卡,直到我们做出我们自己的(更快,更好)的软件缩放代码。 | 316 <P>在MPlayer中,我们使用它的X11驱动的软件缩放功能,用于不支持XVideo的芯片/显卡,直到我们做出我们自己的(更快,更好)的软件缩放代码。 |
311 同时我们使用它的aalib输出,但是现在我们自己的更合适的了。它的DGA模式比我们的好,直到最近。现在明白了? :)</P> | 317 同时我们使用它的aalib输出,但是现在我们自己的更合适的了。它的DGA模式比我们的好,直到最近。现在明白了? :)</P> |
312 | 318 |
313 <P>它对一些buggy的驱动/显卡也有帮助,例如视频跳跃(不是系统缓慢的问题),或者音频延迟。</P> | 319 <P>它对一些buggy的驱动/显卡也有帮助,例如视频跳跃(不是系统缓慢的问题),或者音频延迟。</P> |
314 | 320 |
315 <P>SDL视频输出支持在电影下面,(如果出现)的黑条上显示字幕。</P> | 321 <P>SDL视频输出支持在电影下面,(如果出现)的黑条上显示字幕。</P> |
316 | 322 |
317 <P><B>这里是一些关于SDL输出的控制选项:</B></P> | 323 <P><B>这里是一些关于SDL输出的控制选项:</B></P> |
318 | 324 |
319 <DL> | 325 <DL> |
320 <DT><CODE>-vo sdl:name</CODE></DT> | 326 <DT><CODE>-vo sdl:name</CODE></DT> |
321 <DD>规定使用的sdl视频驱动(例如aalib,dga,x11)</DD> | 327 <DD>规定使用的sdl视频驱动(例如aalib,dga,x11)</DD> |
322 | 328 |
323 <DT><CODE>-ao sdl:name</CODE></DT> | 329 <DT><CODE>-ao sdl:name</CODE></DT> |
324 <DD>规定使用的sdl音频驱动(例如dsp,esd,arts)</DD> | 330 <DD>规定使用的sdl音频驱动(例如dsp,esd,arts)</DD> |
325 | 331 |
326 <DT><CODE>-noxv</CODE></DT> | 332 <DT><CODE>-noxv</CODE></DT> |
327 <DD>禁用XVideo硬件加速</DD> | 333 <DD>禁用XVideo硬件加速</DD> |
328 | 334 |
329 <DT><CODE>-forcexv</CODE></DT> | 335 <DT><CODE>-forcexv</CODE></DT> |
330 <DD>尝试强制XVideo加速</DD> | 336 <DD>尝试强制XVideo加速</DD> |
331 | 337 |
332 </DL> | 338 </DL> |
333 | 339 |
334 <TABLE BORDER=0> | 340 <TABLE BORDER=0> |
335 <TR><TD COLSPAN=4><P><B>SDL控制键:</B></P></TD></TR> | 341 <TR><TD COLSPAN=4><P><B>SDL控制键:</B></P></TD></TR> |
336 <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>切换全屏/窗口方式</TD></TR> | 342 <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>切换全屏/窗口方式</TD></TR> |
337 <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>循环切换可用的全屏方式</TD></TR> | 343 <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>循环切换可用的全屏方式</TD></TR> |
338 <TR><TD></TD><TD><CODE>W与S</CODE></TD><TD></TD><TD>*和/的映射(音量控制)</TD></TR> | 344 <TR><TD></TD><TD><CODE>W与S</CODE></TD><TD></TD><TD>*和/的映射(音量控制)</TD></TR> |
339 </TABLE> | 345 </TABLE> |
340 | 346 |
341 <H5>已知的BUG:</H5> | 347 <H4>已知的BUG:</H4> |
342 | 348 |
343 <UL> | 349 <UL> |
344 <LI>在sdl:aalib控制台驱动下按下的键将永远重复。(使用-vo aa!)它是SDL中的bug,我无法改变它(用SDL 1.2.1测试)。</LI> | 350 <LI>在sdl:aalib控制台驱动下按下的键将永远重复。(使用-vo aa!)它是SDL中的bug,我无法改变它(用SDL 1.2.1测试)。</LI> |
345 <LI>不要在GUI中使用SDL!它不会像预想的那样工作。</LI> | 351 <LI>不要在GUI中使用SDL!它不会像预想的那样工作。</LI> |
346 </UL> | 352 </UL> |
347 | 353 |
348 | 354 |
349 <H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> | 355 <H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> |
350 | 356 |
351 <H5>安装</H5> | 357 <H4>安装</H4> |
352 | 358 |
353 <P>你必须安装svgalib和它的开发包来使MPlayer编译它的SVGAlib驱动(自动检测,但是也能强制使用), | 359 <P>你必须安装svgalib和它的开发包来使MPlayer编译它的SVGAlib驱动(自动检测,但是也能强制使用), |
354 别忘了编辑/etc/vga/libvga.config来配合你的显卡&监视器。</P> | 360 别忘了编辑/etc/vga/libvga.config来配合你的显卡&监视器。</P> |
355 | 361 |
356 <H5>注意</H5> | 362 <H4>注意</H4> |
357 | 363 |
358 <P>一定不要用-fs选项,因为它将导致使用软件缩放,速度会很慢,如果你确实需要,使用<CODE>-sws 4</CODE>选项, | 364 <P>一定不要用-fs选项,因为它将导致使用软件缩放,速度会很慢,如果你确实需要,使用<CODE>-sws 4</CODE>选项, |
359 质量会有点差,但是无论如何它更快。</P> | 365 质量会有点差,但是无论如何它更快。</P> |
360 | 366 |
361 <H5>EGA(4BPP)支持</H5> | 367 <H4>EGA(4BPP)支持</H4> |
362 | 368 |
363 <P>SVGAlib结合了EGAlib,使得MPlayer有可能用16种颜色播放任何电影,下列的配制中可以使用:</P> | 369 <P>SVGAlib结合了EGAlib,使得MPlayer有可能用16种颜色播放任何电影,下列的配制中可以使用:</P> |
364 | 370 |
365 <UL> | 371 <UL> |
366 <LI>EGA显卡和EGA显示器: 320x200x4bpp,640x200x4bpp,640x350x4bpp</LI> | 372 <LI>EGA显卡和EGA显示器: 320x200x4bpp,640x200x4bpp,640x350x4bpp</LI> |
393 <P>FBdev输出有些除了以前说过的参数外的附加参数:</P> | 399 <P>FBdev输出有些除了以前说过的参数外的附加参数:</P> |
394 | 400 |
395 <DL> | 401 <DL> |
396 <DT><CODE>-fb</CODE></DT> | 402 <DT><CODE>-fb</CODE></DT> |
397 <DD>规定使用的帧缓冲设备(/dev/fb0)</DD> | 403 <DD>规定使用的帧缓冲设备(/dev/fb0)</DD> |
398 | 404 |
399 <DT><CODE>-fbmode</CODE></DT> | 405 <DT><CODE>-fbmode</CODE></DT> |
400 <DD>使用的模式名(按照/etc/fb.modes文件)</DD> | 406 <DD>使用的模式名(按照/etc/fb.modes文件)</DD> |
401 | 407 |
402 <DT><CODE>-fbmodeconfig</CODE></DT> | 408 <DT><CODE>-fbmodeconfig</CODE></DT> |
403 <DD>模式的配置文件方式(默认为/etc/fb.modes)</DD> | 409 <DD>模式的配置文件方式(默认为/etc/fb.modes)</DD> |
404 | 410 |
405 <DT><CODE>-monitor_hfreq</CODE></DT> | 411 <DT><CODE>-monitor_hfreq</CODE></DT> |
406 <DT><CODE>-monitor_vfreq</CODE></DT> | 412 <DT><CODE>-monitor_vfreq</CODE></DT> |
407 <DT><CODE>-monitor_dotclock</CODE></DT> | 413 <DT><CODE>-monitor_dotclock</CODE></DT> |
408 <DD><STRONG>重要的</STRONG>参数,参见<CODE>example.conf</CODE></DD> | 414 <DD><STRONG>重要的</STRONG>参数,参见<CODE>example.conf</CODE></DD> |
409 </DL> | 415 </DL> |
439 make</CODE></P></LI> | 445 make</CODE></P></LI> |
440 <LI>然后创建<CODE>/dev/mga_vid</CODE>设备: | 446 <LI>然后创建<CODE>/dev/mga_vid</CODE>设备: |
441 <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> | 447 <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> |
442 <P>然后这样加载驱动</P> | 448 <P>然后这样加载驱动</P> |
443 <P><CODE>insmod mga_vid.o</CODE></P></LI> | 449 <P><CODE>insmod mga_vid.o</CODE></P></LI> |
444 <LI>你应该使用<CODE>dmesg</CODE>命令检查显存大小的检测结果。如果不对,那么使用mga_ram_size选项(先<CODE>rmmod mga_vid</CODE>),以MB为单位指定显卡的显存大小: | 450 <LI>你应该使用<CODE>dmesg</CODE>命令检查显存大小的检测结果。如果不对,那么使用mga_ram_size选项(先<CODE>rmmod |
451 mga_vid</CODE>),以MB为单位指定显卡的显存大小: | |
445 <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> | 452 <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> |
446 <LI>为了使它在需要时自动地加载/卸载,首先在<CODE>/etc/modules.conf</CODE>的末尾加上下面这一行: | 453 <LI>为了使它在需要时自动地加载/卸载,首先在<CODE>/etc/modules.conf</CODE>的末尾加上下面这一行: |
447 <P><CODE>alias char-major-178 mga_vid</CODE></P> | 454 <P><CODE>alias char-major-178 mga_vid</CODE></P> |
448 <P>然后把<CODE>mga_vid.o</CODE>模块复制到<CODE>/lib/modules/<kernel version>/somewhere</CODE>下的适当位置。</P> | 455 <P>然后把<CODE>mga_vid.o</CODE>模块复制到<CODE>/lib/modules/<kernel version>/somewhere</CODE>下的适当位置。</P> |
449 <P>然后运行</P> | 456 <P>然后运行</P> |
495 | 502 |
496 <P><B>下列的命令行选项能够使用:</B></P> | 503 <P><B>下列的命令行选项能够使用:</B></P> |
497 <DL> | 504 <DL> |
498 <DT><CODE>-aaosdcolor=V</CODE></DT> | 505 <DT><CODE>-aaosdcolor=V</CODE></DT> |
499 <DD>改变OSD颜色</DD> | 506 <DD>改变OSD颜色</DD> |
500 | 507 |
501 <DT><CODE>-aasubcolor=V</CODE></DT> | 508 <DT><CODE>-aasubcolor=V</CODE></DT> |
502 <DD>改变字幕颜色 | 509 <DD>改变字幕颜色 |
503 <P><I>V的值可以是:(0/正常,1/暗色,2/粗体,3/粗体字体,4/反转,5/特殊) </I></P></DD> | 510 <P><I>V的值可以是:(0/正常,1/暗色,2/粗体,3/粗体字体,4/反转,5/特殊) </I></P></DD> |
504 </DL> | 511 </DL> |
505 | 512 |
506 <P><B>AAlib自身也提供了大量的选项。这里是一些重要的:</B></P> | 513 <P><B>AAlib自身也提供了大量的选项。这里是一些重要的:</B></P> |
507 <DL> | 514 <DL> |
508 <DT><CODE>-aadriver</CODE></DT> | 515 <DT><CODE>-aadriver</CODE></DT> |
509 <DD>设置推荐aa的驱动( X11,curses,Linux )</DD> | 516 <DD>设置推荐aa的驱动( X11,curses,Linux )</DD> |
510 | 517 |
511 <DT><CODE>-aaextended</CODE></DT> | 518 <DT><CODE>-aaextended</CODE></DT> |
512 <DD>使用所有的256个字符</DD> | 519 <DD>使用所有的256个字符</DD> |
513 | 520 |
514 <DT><CODE>-aaeight</CODE></DT> | 521 <DT><CODE>-aaeight</CODE></DT> |
515 <DD>使用8比特的ASCII</DD> | 522 <DD>使用8比特的ASCII</DD> |
516 | 523 |
517 <DT><CODE>-aahelp</CODE></DT> | 524 <DT><CODE>-aahelp</CODE></DT> |
518 <DD>列出所有的aalib选项</DD> | 525 <DD>列出所有的aalib选项</DD> |
519 </DL> | 526 </DL> |
520 | 527 |
521 <P>注意:渲染效果是十分消耗CPU的,特别是使用AA-on-X(在X上使用aalib),在标准的非帧缓冲控制台上的CPU消耗是最小的, | 528 <P>注意:渲染效果是十分消耗CPU的,特别是使用AA-on-X(在X上使用aalib),在标准的非帧缓冲控制台上的CPU消耗是最小的, |
522 用SVGATextMode设置一个大的文本模式,然后再欣赏电影!(大力神显卡的第二个接口就不错:))(但我建议你用<CODE>-vop 1bpp</CODE>选项在hgafb上获得图象;)</P> | 529 用SVGATextMode设置一个大的文本模式,然后再欣赏电影!(大力神显卡的第二个接口就不错:))(但我建议你用<CODE>-vop |
530 1bpp</CODE>选项在hgafb上获得图象;)</P> | |
523 | 531 |
524 <P>如果你的计算机速度不足以渲染所有帧就使用<CODE>-framedrop</CODE>选项</P> | 532 <P>如果你的计算机速度不足以渲染所有帧就使用<CODE>-framedrop</CODE>选项</P> |
525 | 533 |
526 <P>在终端中播放电影时使用Linux驱动你将会得到更好的速度和画面质量,不要用curses(<CODE>-aadriver Linux</CODE>)。 | 534 <P>在终端中播放电影时使用Linux驱动你将会得到更好的速度和画面质量,不要用curses(<CODE>-aadriver Linux</CODE>)。 |
527 但是为此你需要<CODE>/dev/vcsa<terminal></CODE>的写权限。那是aalib不能自动检测的,但vo_aa会尝试搜索最佳模式, | 535 但是为此你需要<CODE>/dev/vcsa<terminal></CODE>的写权限。那是aalib不能自动检测的,但vo_aa会尝试搜索最佳模式, |
541 </BLOCKQUOTE> | 549 </BLOCKQUOTE> |
542 | 550 |
543 <P>因此,你有可能通过这个驱动得到电视输出。<BR> | 551 <P>因此,你有可能通过这个驱动得到电视输出。<BR> |
544 (我猜想电视至少经常地是使用独立的头或者独立的输出)。</P> | 552 (我猜想电视至少经常地是使用独立的头或者独立的输出)。</P> |
545 | 553 |
546 <H5>优点:</H5> | 554 <H4>优点</H4> |
547 | 555 |
548 <UL> | 556 <UL> |
549 <LI><B>即使Linux不能识别</B>你的视频硬件你或许还能看电影。</LI> | 557 <LI><B>即使Linux不能识别</B>你的视频硬件你或许还能看电影。</LI> |
550 <LI>你不需要在你的Linux上安装任何图形相关的东西(像X11(或者叫XFree86),fbdev诸如此类)。这个驱动能从<B>文本方式</B>运行。</LI> | 558 <LI>你不需要在你的Linux上安装任何图形相关的东西(像X11(或者叫XFree86),fbdev诸如此类)。这个驱动能从<B>文本方式</B>运行。</LI> |
551 <LI>你有机会获得<B>可用的电视输出</B>。(至少已知ATI的显卡可以)。</LI> | 559 <LI>你有机会获得<B>可用的电视输出</B>。(至少已知ATI的显卡可以)。</LI> |
552 <LI>这个驱动调用<B>int 10h</B>中断因此它不是模拟器 -- 它<B>实时</B>调用<B>真正的</B>BIOS中的<B>真正的</B>功能。(效果不错 -- 按vm86方式)。</LI> | 560 <LI>这个驱动调用<B>int 10h</B>中断因此它不是模拟器 -- 它<B>实时</B>调用<B>真正的</B>BIOS中的<B>真正的</B>功能。(效果不错 -- |
561 按vm86方式)。</LI> | |
553 <LI>你可以对它使用Vidix,这样能加速视频显示<B>同时</B>也加快电视输出!(ATI显卡推荐)</LI> | 562 <LI>你可以对它使用Vidix,这样能加速视频显示<B>同时</B>也加快电视输出!(ATI显卡推荐)</LI> |
554 <LI>如果你有VESA VBE 3.0+,而且在什么地方(配置文件,或者命令行)设置了<CODE>monitor_hfreq</CODE>, | 563 <LI>如果你有VESA VBE 3.0+,而且在什么地方(配置文件,或者命令行)设置了<CODE>monitor_hfreq</CODE>, |
555 <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE>你将获得可能的最高的刷新率。 | 564 <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE>你将获得可能的最高的刷新率。 |
556 (使用一般的计时公式)。要启用这个特性你必须设定你的显示器的<B>所有</B>选项。</LI> | 565 (使用一般的计时公式)。要启用这个特性你必须设定你的显示器的<B>所有</B>选项。</LI> |
557 </UL> | 566 </UL> |
558 | 567 |
559 <H5>缺点:</H5> | 568 <H4>缺点</H4> |
560 | 569 |
561 <UL> | 570 <UL> |
562 <LI>它只能在<B>x86系统</B>上工作。</LI> | 571 <LI>它只能在<B>x86系统</B>上工作。</LI> |
563 <LI>它只能由<B>root</B>使用。</LI> | 572 <LI>它只能由<B>root</B>使用。</LI> |
564 <LI>它目前只能用在<B>Linux</B>上。</LI> | 573 <LI>它目前只能用在<B>Linux</B>上。</LI> |
565 </UL> | 574 </UL> |
566 | 575 |
567 <P>使用<B>GCC 2.96</B>就不要使用这个驱动!它不能工作!</P> | 576 <P>使用<B>GCC 2.96</B>就不要使用这个驱动!它不能工作!</P> |
568 | 577 |
569 <H5>可用于VESA命令行选项</H5> | 578 <H4>可用于VESA命令行选项</H4> |
570 <DL> | 579 <DL> |
571 <DT><CODE>-vo vesa:opts</CODE></DT> | 580 <DT><CODE>-vo vesa:opts</CODE></DT> |
572 <DD>当前能识别的: <B>dga</B>强迫dga方式,<B>nodga</B>禁用dga方式。在dga模式下你可以通过使用<CODE>-double</CODE>选项来使用双重缓冲。注意:你能省略这些参数来开启<B>自动检测</B>dga方式。</DD> | 581 <DD>当前能识别的:<B>dga</B>强迫dga方式,<B>nodga</B>禁用dga方式。在dga模式下你可以通过使用<CODE>-double</CODE>选项来使用 |
582 双重缓冲。注意:你能 省略这些参数来开启<B>自动检测</B>dga方式。</DD> | |
573 </DL> | 583 </DL> |
574 | 584 |
575 <H5>已知的问题和绕过办法</H5> | 585 <H4>已知的问题和绕过办法</H4> |
576 | 586 |
577 <UL> | 587 <UL> |
578 <LI>如果你在你的Linux机器上安装了<B>NLS</B>并且从文本方式运行VESA驱动,那么MPlayer终止后你将看到<B>ROM字体</B>而不是本地的字体。 | 588 <LI>如果你在你的Linux机器上安装了<B>NLS</B>并且从文本方式运行VESA驱动,那么MPlayer终止后你将看到<B>ROM字体</B>而不是本地的字体。 |
579 你可以重新加载本地的字体例如在Mandrake中使用<B><I>setsysfont</I></B>。</BR> | 589 你可以重新加载本地的字体例如在Mandrake中使用<B><I>setsysfont</I></B>。</BR> |
580 (<B>提示:</B>相同的工具也用于fbdev的地方化)。</LI> | 590 (<B>提示:</B>相同的工具也用于fbdev的地方化)。</LI> |
605 <P>如果你调整不到你设定的模式,检查XFree86的输出。有些驱动不能使用低分辨率视频方式所需要的低的像素频率。</P> | 615 <P>如果你调整不到你设定的模式,检查XFree86的输出。有些驱动不能使用低分辨率视频方式所需要的低的像素频率。</P> |
606 | 616 |
607 | 617 |
608 <H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> | 618 <H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> |
609 | 619 |
610 <H5>引言</H5> | 620 <H4>引言</H4> |
611 | 621 |
612 <P>VIDIX是<B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>的缩写。<BR> | 622 <P>VIDIX是<B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>的缩写。<BR> |
613 VIDIX被设计和引入作为快速的用户空间驱动的接口提供类似mga_vid为了Matrox显卡提供的这样视频性能的。它也十分易于移植。</P> | 623 VIDIX被设计和引入作为快速的用户空间驱动的接口提供类似mga_vid为了Matrox显卡提供的这样视频性能的。它也十分易于移植。</P> |
614 | 624 |
615 <P>这个接口被设计来作为一个将存在的视频加速接口(就是mga_vid,rage128_vid,radeon_vid,pm3_vid )统一到一个固定的系统的尝试。 | 625 <P>这个接口被设计来作为一个将存在的视频加速接口(就是mga_vid,rage128_vid,radeon_vid,pm3_vid )统一到一个固定的系统的尝试。 |
616 它给芯片提供BES(BackEnd scalers)或OV(Video Overlays)之类的高层接口。它不为那些图像服务器该做的事情提供底层接口。 | 626 它给芯片提供BES(BackEnd scalers)或OV(Video Overlays)之类的高层接口。它不为那些图像服务器该做的事情提供底层接口。 |
617 (我不想跟X11开发组在切换图像模式上竞争)。即这接口的主要目的是充分提高视频播放的速度。</P> | 627 (我不想跟X11开发组在切换图像模式上竞争)。即这接口的主要目的是充分提高视频播放的速度。</P> |
618 | 628 |
619 <H5>用法</H5> | 629 <H4>用法</H4> |
620 | 630 |
621 <UL> | 631 <UL> |
622 <LI>你能使用独立的视频输出驱动:<CODE>-vo xvidix</CODE><BR> | 632 <LI>你能使用独立的视频输出驱动:<CODE>-vo xvidix</CODE><BR> |
623 这个驱动被设计为使用VIDIX技术的X11的前端。它要求X服务器而且仅仅只能在X服务器下工作。注意,由于它绕过X的驱动直接 | 633 这个驱动被设计为使用VIDIX技术的X11的前端。它要求X服务器而且仅仅只能在X服务器下工作。注意,由于它绕过X的驱动直接 |
624 访问硬件,显存中的暂存的图像可能被破坏。你可以通过设置XF86Config中的device部分的"VideoRam"选项限制X使用的显存大小 | 634 访问硬件,显存中的暂存的图像可能被破坏。你可以通过设置XF86Config中的device部分的"VideoRam"选项限制X使用的显存大小 |
627 <CODE>-vo vesa:vidix</CODE>(<B>只用于Linux</B>)和<CODE>-vo fbdev:vidix</CODE></LI> | 637 <CODE>-vo vesa:vidix</CODE>(<B>只用于Linux</B>)和<CODE>-vo fbdev:vidix</CODE></LI> |
628 </UL> | 638 </UL> |
629 | 639 |
630 实际上什么视频输出驱动与<B>VIDIX</B>配合使用并不重要。 | 640 实际上什么视频输出驱动与<B>VIDIX</B>配合使用并不重要。 |
631 | 641 |
632 <H5>要求</H5> | 642 <H4>要求</H4> |
633 | 643 |
634 <UL> | 644 <UL> |
635 <LI>视频显卡应该工作于图形方式(我所以写<B>应该</B>只是因为我在文本方式下测试了它 -- 它能工作但是输出效果很可怕 ;) 对它还是使用AAlib)。<BR> | 645 <LI>视频显卡应该工作于图形方式(我所以写<B>应该</B>只是因为我在文本方式下测试了它 -- 它能工作但是输出效果很可怕 ;) 对它还是使用AAlib)。<BR> |
636 <I>注意:每个人能通过注释掉vo_vesa驱动的模式切换部分的方式尝试这个技巧。</I></LI> | 646 <I>注意:每个人能通过注释掉vo_vesa驱动的模式切换部分的方式尝试这个技巧。</I></LI> |
637 <LI>MPlayer的视频输出驱动应该知道活动的视频方式和能够告诉达到VIDIX副驱动服务器的一些视频特性。</LI> | 647 <LI>MPlayer的视频输出驱动应该知道活动的视频方式和能够告诉达到VIDIX副驱动服务器的一些视频特性。</LI> |
638 </UL> | 648 </UL> |
639 | 649 |
640 <H5>使用方法</H5> | 650 <H4>使用方法</H4> |
641 | 651 |
642 <P>当VIDIX被用作<B>副驱动</B>时(<CODE>-vo vesa:vidix</CODE>)视频方式的配置由视频输出设备执行(简单来说就是<B>vo_server</B>)。 | 652 <P>当VIDIX被用作<B>副驱动</B>时(<CODE>-vo vesa:vidix</CODE>)视频方式的配置由视频输出设备执行(简单来说就是<B>vo_server</B>)。 |
643 因此,你能对MPlayer使用与vo_server同样的命令行指令。此外,它能使用<CODE>-double</CODE>作为全局的参数。 | 653 因此,你能对MPlayer使用与vo_server同样的命令行指令。此外,它能使用<CODE>-double</CODE>作为全局的参数。 |
644 (我建议至少在使用ATI显卡时对VIDIX使用这个参数)。<BR> | 654 (我建议至少在使用ATI显卡时对VIDIX使用这个参数)。<BR> |
645 至于<CODE>-vo xvidix</CODE>:目前它能识别下列的选项: <CODE>-fs -zoom -x -y -double</CODE>。</P> | 655 至于<CODE>-vo xvidix</CODE>:目前它能识别下列的选项: <CODE>-fs -zoom -x -y -double</CODE>。</P> |
658 | 668 |
659 <P>VIDIX是一项新技术所以它极有可能在你的系统上不能正常工作。在这种情况下,你唯一的解决办法是移植它(主要是libdha)。 | 669 <P>VIDIX是一项新技术所以它极有可能在你的系统上不能正常工作。在这种情况下,你唯一的解决办法是移植它(主要是libdha)。 |
660 但它在X11能正常工作的那些系统的上有正常工作的希望。</P> | 670 但它在X11能正常工作的那些系统的上有正常工作的希望。</P> |
661 <P>因为VIDIX需要对硬件直接访问,所以你或者以root运行它,或者给MPlayer的二进制程序设置SUID位(<B>警告:这有安全风险</B>)。或者,你 | 671 <P>因为VIDIX需要对硬件直接访问,所以你或者以root运行它,或者给MPlayer的二进制程序设置SUID位(<B>警告:这有安全风险</B>)。或者,你 |
662 可以使用一个特别的内核模块,像这样:</P> | 672 可以使用一个特别的内核模块,像这样:</P> |
663 | 673 |
664 <OL> | 674 <OL> |
665 <LI>下载svgalib的<A HREF="http://www.arava.co.il/matan/svgalib/">开发版本</A>(比如1.9.17)。</LI> | 675 <LI>下载svgalib的<A HREF="http://www.arava.co.il/matan/svgalib/">开发版本</A>(比如1.9.17),<Br> |
666 <LI><B>或者</B>从<A | 676 <B>或者</B><BR> |
667 HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2">这里</A>.下载一个Alex做的 | 677 从<A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2">这里</A>.下载一个Alex做的 |
668 供MPlayer使用的版本(不需要svgalib的源代码就可以编译)。</LI> | 678 供MPlayer使用的版本(不需要svgalib的源代码就可以编译)。</LI> |
669 <LI>编译<CODE>svgalib_helper</CODE>目录中的模块(如果你是从svgalib的网页上下载的源代码,可以在<CODE>svgalib-1.9.17/kernel/</CODE>目 | 679 <LI>编译<CODE>svgalib_helper</CODE>目录中的模块(如果你是从svgalib的网页上下载的源代码,可以在<CODE>svgalib-1.9.17/kernel/</CODE>目 |
670 录下找到它),然后insmod。</LI> | 680 录下找到它),然后insmod。</LI> |
671 <LI>把<CODE>svgalib_helper</CODE>目录移到<CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> | 681 <LI>把<CODE>svgalib_helper</CODE>目录移到<CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> |
672 <LI>如果你是从svgalib的站点下载的源代码需要:删掉<CODE>libdha/Makefile</CODE>中包含"svgalib_helper"字符串 | 682 <LI>如果你是从svgalib的站点下载的源代码需要:删掉<CODE>libdha/Makefile</CODE>中包含"svgalib_helper"字符串 |
699 | 709 |
700 | 710 |
701 <H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs显卡</A></H4> | 711 <H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs显卡</A></H4> |
702 | 712 |
703 <P>尽管有一个用于3DLabs GLINT R3和Permedia3芯片的驱动,但没有人测试过,所以欢迎报告信息。</P> | 713 <P>尽管有一个用于3DLabs GLINT R3和Permedia3芯片的驱动,但没有人测试过,所以欢迎报告信息。</P> |
704 | 714 |
705 <H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> | 715 <H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> |
706 | 716 |
707 <P><I>"DirectFB是设计用于嵌入系统的图形库。它能利用最小的资源开销提供最大的硬件加速效果。"</I> -- 引自<A | 717 <P><I>"DirectFB是设计用于嵌入系统的图形库。它能利用最小的资源开销提供最大的硬件加速效果。"</I> -- 引自<A |
708 HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> | 718 HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> |
709 | 719 |
719 | 729 |
720 <H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox(dfbmga)</A></H4> | 730 <H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox(dfbmga)</A></H4> |
721 | 731 |
722 <P>请阅读<A HREF="#directfb">DirectFB的一般介绍部分</A>来了解概要信息。</P> | 732 <P>请阅读<A HREF="#directfb">DirectFB的一般介绍部分</A>来了解概要信息。</P> |
723 | 733 |
724 <P>这个视频输出驱动将开启Matrox G400显卡上的CRTC2(第二个接口),显示<B>独立于</B>第一个接口的视频。</P> | 734 <P>这个视频输出驱动将开启Matrox G400/G450/G550显卡上的CRTC2(第二个接口),显示<B>独立于</B>第一个接口的视频。</P> |
725 | 735 |
726 <P>使其工作的方法可以在<A HREF="tech/directfb.txt">技术部分</A>和直接从Ville Syrjala的<A | 736 <P>使其工作的方法可以在<A HREF="../tech/directfb.txt">技术部分</A>和直接从Ville Syrjala的<A |
727 HREF="http://www.sci.fi/~syrjala/directfb/readme.txt">主页</A>获得。</P> | 737 HREF="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">主页</A>获得。</P> |
728 | 738 |
729 <P>注意:我们没能让它工作,但是有人做到了。不管怎样,将CRTC2代码移植到<B>mga_vid</B>的工作正在进行中。</P> | 739 <P>注意:我们没能让它工作,但是有人做到了。不管怎样,将CRTC2代码移植到<B>mga_vid</B>的工作正在进行中。</P> |
730 | 740 |
731 <H4><A NAME="mpegdec">2.3.1.3 MPEG解码器</A></H4> | 741 <H4><A NAME="mpegdec">2.3.1.3 MPEG解码器</A></H4> |
732 | 742 |
747 ./configure --with-extraincdir=<DVB source directory>/ost/include | 757 ./configure --with-extraincdir=<DVB source directory>/ost/include |
748 </PRE> | 758 </PRE> |
749 | 759 |
750 <P>然后正常编译安装。</P> | 760 <P>然后正常编译安装。</P> |
751 | 761 |
752 <H5>使用方法</H5> | 762 <H4>使用方法</H4> |
753 | 763 |
754 <P>硬件解码(播放标准的MPEG1/2文件)使用下列命令:</P> | 764 <P>硬件解码(播放标准的MPEG1/2文件)使用下列命令:</P> |
755 | 765 |
756 <PRE> | 766 <PRE> |
757 mplayer -ao mpegpes -vo mpegpes file.mpg|vob | 767 mplayer -ao mpegpes -vo mpegpes file.mpg|vob |
758 </PRE> | 768 </PRE> |
759 | 769 |
760 <P>MPEG1的软件解码或转化为其他格式使用下列命令:</P> | 770 <P>MPEG1的软件解码或转化为其他格式使用下列命令:</P> |
761 | 771 |
762 <PRE> | 772 <PRE> |
763 mplayer -ao mpegpes -vo mpegpes -vop lavc yourfile.ext | 773 mplayer -ao mpegpes -vo mpegpes yourfile.ext |
764 mplayer -ao mpegpes -vo mpegpes -vop fame,expand yourfile.ext | 774 mplayer -ao mpegpes -vo mpegpes -vop expand yourfile.ext |
765 </PRE> | 775 </PRE> |
766 | 776 |
767 <P>注意到,DVB显卡只支持高度为288或576的PAL格式或者240或480的NTSC格式。你<B>必须</B>对其它的高度进行重新缩放, | 777 <P>注意到,DVB显卡只支持高度为288或576的PAL格式或者240或480的NTSC格式。你<B>必须</B>对其它的高度进行重新缩放, |
768 通过在<CODE>-vop</CODE>选项中使用<CODE>scale=width:height</CODE>指定你想要宽度和高度。DVB显卡可以接受多种宽度, | 778 通过在<CODE>-vop</CODE>选项中使用<CODE>scale=width:height</CODE>指定你想要宽度和高度。DVB显卡可以接受多种宽度, |
769 像720,704,640,512,480,352等等,而且在水平方向上可以硬件缩放,所以大多数情况下你不需要作水平缩放。 | 779 像720,704,640,512,480,352等等,而且在水平方向上可以硬件缩放,所以大多数情况下你不需要作水平缩放。 |
770 例如对于512x384(宽高比4:3)的DivX使用下列命令:</P> | 780 例如对于512x384(宽高比4:3)的DivX使用下列命令:</P> |
771 | 781 |
772 <PRE> | 782 <PRE> |
773 mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576 | 783 mplayer -ao mpegpes -vo mpegpes -vop scale=512:576 |
774 </PRE> | 784 </PRE> |
775 | 785 |
776 <P>如果你使用宽银幕电影而你把它放大到整个屏幕的高度,你可以使用<CODE>expand=w:h</CODE>插件来增加黑带。 | 786 <P>如果你使用宽银幕电影而你把它放大到整个屏幕的高度,你可以使用<CODE>expand=w:h</CODE>插件来增加黑带。 |
777 为了看640x384分辨率的DivX,使用下列命令:</P> | 787 为了看640x384分辨率的DivX,使用下列命令:</P> |
778 | 788 |
779 <PRE> | 789 <PRE> |
780 mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi | 790 mplayer -ao mpegpes -vo mpegpes -vop expand=640:576 file.avi |
781 </PRE> | 791 </PRE> |
782 | 792 |
783 <P>如果你的CPU对于播放720x576的DivX太慢,尝试横向缩放:</P> | 793 <P>如果你的CPU对于播放720x576的DivX太慢,尝试横向缩放:</P> |
784 | 794 |
785 <PRE> | 795 <PRE> |
800 <P>为了在PAL电视上播放非25fps的电影或者因为CPU太慢,加上<CODE>-framedrop</CODE>选项。</P> | 810 <P>为了在PAL电视上播放非25fps的电影或者因为CPU太慢,加上<CODE>-framedrop</CODE>选项。</P> |
801 | 811 |
802 <P>为了保持DivX文件的宽高比并获得最理想的缩放参数(硬件水平缩放和软件垂直缩放并且保持正确宽高比),使用最新的dvbscale插件:</P> | 812 <P>为了保持DivX文件的宽高比并获得最理想的缩放参数(硬件水平缩放和软件垂直缩放并且保持正确宽高比),使用最新的dvbscale插件:</P> |
803 | 813 |
804 <PRE> | 814 <PRE> |
805 for 3:4 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale | 815 for 3:4 TV: -vop expand=-1:576:-1:-1:1,scale=-1:0,dvbscale |
806 for 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 | 816 for 16:9 TV: -vop expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 |
807 </PRE> | 817 </PRE> |
808 | 818 |
809 <H5>将来</H5> | 819 <H4>将来</H4> |
810 | 820 |
811 <P>如果你有使用问题或想要了解特性通告或者参加这个问题的讨论,加入我们的<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A>的邮件列表。 | 821 <P>如果你有使用问题或想要了解特性通告或者参加这个问题的讨论,加入我们的<A |
822 HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A>的邮件列表。 | |
812 请记住列表的语言是英语。</P> | 823 请记住列表的语言是英语。</P> |
813 | 824 |
814 <P>在未来你可以期待使用DVB显卡的自带OSD特性显示OSD和字幕,还有更流畅的非25fps电影播放和实时的MPEG2和MPEG4转换(部分的解压)。</P> | 825 <P>在未来你可以期待使用DVB显卡的自带OSD特性显示OSD和字幕,还有更流畅的非25fps电影播放和实时的MPEG2和MPEG4转 |
826 换(部分的解压)。</P> | |
815 | 827 |
816 <H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> | 828 <H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> |
817 | 829 |
818 <P>TODO: 什么人应该在这里添加一些信息。</P> | 830 <P>MPlayer支持使用Creative DXR2卡的硬件加数功能</P> |
831 | |
832 <P>首先你要正确安装DXR2的驱动。你可以在<A HREF="http://dxr2.sourceforge.net/">DXR2资源中心</A>这个站点找到驱动和 | |
833 安装方法。</P> | |
834 | |
835 <H4>用法</H4> | |
836 <DL> | |
837 <DT><CODE>-vo dxr2</CODE></DT> | |
838 <DD>启动TV输出</DD> | |
839 <DT><CODE>-vo dxr2:x11</CODE>或<CODE>-vo dxr2:xv</CODE></DT> | |
840 <DD>启动X11的叠加输出</DD> | |
841 <DT><CODE>-dxr2 <option1:option2:...></CODE></DT> | |
842 <DD>这个选项用来控制DXR2驱动</DD> | |
843 </DL> | |
844 | |
845 <P>DXR2使用的叠加芯片质量很差但它默认的设置应该对所有人都适用。OSD可能可以通过使用colorkey的绘制方法在叠加(不能 | |
846 用于TV)输出中实现。使用默认的colorkey设定你可能获得各种效果,一般情况下你可能看到colorkey环绕在字符周围或者其它 | |
847 可笑的效果。但只要你适当的调节colorkey的设定你应该可以获得可接受的效果。</P> | |
848 | |
849 <P>默认选项参见manpage。</P> | |
819 | 850 |
820 <H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> | 851 <H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> |
821 | 852 |
822 <P>MPlayer支持Creative DXR3和Sigma Designs Hollywood Plus卡的硬件加速播放。这些卡都使用SigmaDesigns的 | 853 <P>MPlayer支持Creative DXR3和Sigma Designs Hollywood Plus卡的硬件加速播放。这些卡都使用SigmaDesigns的 |
823 em8300 MPEG解码芯片</P> | 854 em8300 MPEG解码芯片</P> |
824 | 855 |
825 <P>首先,你将需要正确地安装DXR3/H+的驱动,版本至少0.12.0或者更新的。你能在<A | 856 <P>首先,你将需要正确地安装DXR3/H+的驱动,版本至少0.12.0或者更新的。你能在<A |
826 HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for Linux</A>的站点找到驱动和安装指导。Configure应该自动检测到你的显卡, | 857 HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for Linux</A>的站点找到驱动和安装指导。Configure应该自动检测到你的显卡, |
827 编译应该没有任何问题。</P> | 858 编译应该没有任何问题。</P> |
828 | 859 |
829 <H5>用法</H5> | 860 <H4>用法</H4> |
830 | 861 |
831 <DL> | 862 <DL> |
832 <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> | 863 <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> |
833 <DD><CODE>overlay</CODE>激活overlay而不是电视输出。你必须有一个正确配置的的overlay设置来正常工作。最简单的配置overlay | 864 <DD><CODE>overlay</CODE>激活overlay而不是电视输出。你必须有一个正确配置的的overlay设置来正常工作。最简单的配置overlay |
834 的方法是先运行autocal。然后运行mplayer使用dxr3输出而不打开overlay,运行dxr3view。在dxr3view中你可以调整overlay设置 | 865 的方法是先运行autocal。然后运行mplayer使用dxr3输出而不打开overlay,运行dxr3view。在dxr3view中你可以调整overlay设置 |
857 <DD>em8300不能工作在采样率低于44100Hz的情况。如果采样率在44100Hz之下,在44100Hz和48000Hz中选择最接近的一个。 | 888 <DD>em8300不能工作在采样率低于44100Hz的情况。如果采样率在44100Hz之下,在44100Hz和48000Hz中选择最接近的一个。 |
858 例如对使用22050Hz的电影,因为44100Hz/2 = 22050,所以使用44100Hz,如果是24000Hz就使用48000Hz,因为48000Hz/2 = 24000如此等等。 | 889 例如对使用22050Hz的电影,因为44100Hz/2 = 22050,所以使用44100Hz,如果是24000Hz就使用48000Hz,因为48000Hz/2 = 24000如此等等。 |
859 这对于数字音频输出不起作用(<CODE>-ac hwac3</CODE>)。</DD> | 890 这对于数字音频输出不起作用(<CODE>-ac hwac3</CODE>)。</DD> |
860 | 891 |
861 <DT><CODE>-vop lace/fame</CODE></DT> | 892 <DT><CODE>-vop lace/fame</CODE></DT> |
862 <DD>要在em8300上观看非MPEG的内容(例如DivX或者RealVideo)你必须设置一个libavcodec(lavc)或者libfame(fame)之类的MPEG1视频滤镜 | 893 <DD><B>(自动插入)</B>要在em8300上观看非MPEG的内容(例如DivX或者RealVideo)你必须设置一个libavcodec(lavc)或者libfame(fame)之类的MPEG1视频滤镜 |
863 目前lavc有更好的速度还有更高的图像质量,除非你使用时遇到问题,建议你使用他。<CODE>-vop lavc/fame</CODE>的进一步的信息可以 | 894 目前lavc有更好的速度还有更高的图像质量,除非你使用时遇到问题,建议你使用他。<CODE>-vop lavc/fame</CODE>的进一步的信息可以 |
864 参考man page。<BR> | 895 参考man page。<BR> |
865 强烈推荐使用lavc。目前没有办法设置em8300的fps,这表示它将固定在29.97fps。因为这个强烈推荐你使用<CODE>-vop | 896 强烈推荐使用lavc。目前没有办法设置em8300的fps,这表示它将固定在29.97fps。因为这个强烈推荐你使用<CODE>-vop |
866 lavc=<quality>:25</CODE>,特别是当你使用prebuffering的时候。那么为什么是25而不是29.97?嗯,原因是当使用29.97 | 897 lavc=<quality>:25</CODE>,特别是当你使用prebuffering的时候。那么为什么是25而不是29.97?嗯,原因是当使用29.97 |
867 的时候图像有一些跳跃。目前我们还不知道原因。如果你把它设置成25到27之间的值是图像就稳定了。目前我们能做的就是接受这个事实。</DD> | 898 的时候图像有一些跳跃。目前我们还不知道原因。如果你把它设置成25到27之间的值是图像就稳定了。目前我们能做的就是接受这个事实。</DD> |
868 | 899 |
869 <DT><CODE>-vop lavc,expand=-1:-1:-1:-1:1</CODE></DT> | 900 <DT><CODE>-vop expand=-1:-1:-1:-1:1</CODE></DT> |
870 <DD>尽管DXR3的驱动能把一些OSD放到MPEG1/2/4的视频上,它比MPlayer的传统的OSD的质量差的多,并且还有一些刷新的问题。 | 901 <DD>尽管DXR3的驱动能把一些OSD放到MPEG1/2/4的视频上,它比MPlayer的传统的OSD的质量差的多,并且还有一些刷新的问题。 |
871 上面的命令行将先把输入的视频转换成MPEG4(这是必须的,对不起),然后使用一个扩展滤镜,不进行任何缩放(-1:默认值),只是把正常的OSD | 902 上面的命令行将先把输入的视频转换成MPEG4(这是必须的,对不起),然后使用一个扩展滤镜,不进行任何缩放(-1:默认值),只是把正常的OSD |
872 放到图像上(最后的那个"1"的作用)。</DD> | 903 放到图像上(最后的那个"1"的作用)。</DD> |
873 | 904 |
874 <DT><CODE>-ac hwac3</CODE></DT> | 905 <DT><CODE>-ac hwac3</CODE></DT> |
1000 <I>fbdev</I>的输出设备。</P> | 1031 <I>fbdev</I>的输出设备。</P> |
1001 | 1032 |
1002 <P>目前第一个CRTC不能传送到第二个头。内核的matroxfb驱动的作者 -- Petr Vandrovec -- 可能正在努力支持 | 1033 <P>目前第一个CRTC不能传送到第二个头。内核的matroxfb驱动的作者 -- Petr Vandrovec -- 可能正在努力支持 |
1003 它,使用把第一个CRTC的输出同时显示在两个头上的方法,像目前G400推荐的一样,看上面的部分。</P> | 1034 它,使用把第一个CRTC的输出同时显示在两个头上的方法,像目前G400推荐的一样,看上面的部分。</P> |
1004 | 1035 |
1005 <P>需要的内核补丁和howto的细节可以从<A | 1036 <P>需要的内核补丁和howto的细节可以从<A |
1006 HREF="http://www3.sympatico.ca/dan.eriksen/matrox_tvout">http://www3.sympatico.ca/dan.eriksen/matrox_tvout</A>下载。</P> | 1037 HREF="http://www3.sympatico.ca/dan.eriksen/matrox_tvout">http://www3.sympatico.ca/dan.eriksen/matrox_tvout</A>下载。</P> |
1007 | 1038 |
1008 <H5><A NAME="tv-out_ati">2.3.1.5.3 ATI显卡</A></H5> | 1039 <H4><A NAME="tv-out_ati">2.3.1.5.3 ATI显卡</A></H4> |
1009 | 1040 |
1010 <H5>引言</H5> | 1041 <H4>引言</H4> |
1011 <P>ATI目前不想对他的任何一种电视输出芯片提供Linux下的支持,由于他们授权的Macrovision技术。</P> | 1042 <P>ATI目前不想对他的任何一种电视输出芯片提供Linux下的支持,由于他们授权的Macrovision技术。</P> |
1012 | 1043 |
1013 <H5>ATI显卡在Linux上电视输出的支持情况</H5> | 1044 <H4>ATI显卡在Linux上电视输出的支持情况</H4> |
1014 | 1045 |
1015 <UL> | 1046 <UL> |
1016 <LI><B>ATI Mach64 </B>:<A HREF="http://gatos.sf.net">gatos</A>支持。</LI> | 1047 <LI><B>ATI Mach64 </B>:<A HREF="http://gatos.sf.net">gatos</A>支持。</LI> |
1017 <LI><B>ASIC Radeon VIVO </B>:<A HREF="http://gatos.sf.net">gatos</A>支持。</LI> | 1048 <LI><B>ASIC Radeon VIVO </B>:<A HREF="http://gatos.sf.net">gatos</A>支持。</LI> |
1018 <LI><B>Radeon</B>和<B>Rage128</B>:MPlayer支持!查阅<a href="#vesa">VESA驱动</a>和<A HREF="#vidix">VIDIX</A>两节。</LI> | 1049 <LI><B>Radeon</B>和<B>Rage128</B>:MPlayer支持!查阅<a href="#vesa">VESA驱动</a>和<A HREF="#vidix">VIDIX</A>两节。</LI> |
1023 <P>在其它显卡上,只能使用<a href="#vesa">VESA驱动</a>,没有VIDIX可用。但需要强大的CPU。</P> | 1054 <P>在其它显卡上,只能使用<a href="#vesa">VESA驱动</a>,没有VIDIX可用。但需要强大的CPU。</P> |
1024 | 1055 |
1025 <P>你唯一需要做的事情 -- <B>在启动你的电脑之前插上电视连接器的插头</B>因为视频BIOS只在自举期间初始化一次。</P> | 1056 <P>你唯一需要做的事情 -- <B>在启动你的电脑之前插上电视连接器的插头</B>因为视频BIOS只在自举期间初始化一次。</P> |
1026 | 1057 |
1027 | 1058 |
1028 <H5><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H5> | 1059 <H4><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H4> |
1029 | 1060 |
1030 <P>查阅<A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">这个网址</A>。</P> | 1061 <P>查阅<A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">这个网址</A>。</P> |
1031 | 1062 |
1032 <H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> | 1063 <H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> |
1033 | 1064 |
1038 中你的显卡的Device部分:</P> | 1069 中你的显卡的Device部分:</P> |
1039 | 1070 |
1040 <PRE> | 1071 <PRE> |
1041 Section "Device" | 1072 Section "Device" |
1042 Identifier "GeForce" | 1073 Identifier "GeForce" |
1043 VendorName "ASUS" | 1074 VendorName "ASUS" |
1044 BoardName "nVidia GeForce2/MX 400" | 1075 BoardName "nVidia GeForce2/MX 400" |
1045 Driver "nvidia" | 1076 Driver "nvidia" |
1046 #Option "NvAGP" "1" | 1077 #Option "NvAGP" "1" |
1047 Option "NoLogo" | 1078 Option "NoLogo" |
1048 Option "CursorShadow" "on" | 1079 Option "CursorShadow" "on" |
1049 | 1080 |
1050 Option "TwinView" | 1081 Option "TwinView" |
1051 Option "TwinViewOrientation" "Clone" | 1082 Option "TwinViewOrientation" "Clone" |
1052 Option "MetaModes" "1024x768,640x480" | 1083 Option "MetaModes" "1024x768,640x480" |
1053 Option "ConnectedMonitor" "CRT, TV" | 1084 Option "ConnectedMonitor" "CRT, TV" |
1054 Option "TVStandard" "PAL-B" | 1085 Option "TVStandard" "PAL-B" |
1055 Option "TVOutFormat" "Composite" | 1086 Option "TVOutFormat" "Composite" |
1056 | 1087 |
1057 EndSection | 1088 EndSection |
1058 </PRE> | 1089 </PRE> |