1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
|
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kmplayer '<application>KMPlayer</application>'>
<!ENTITY kappname "&kmplayer;"><!-- replace kmplayer here -->
<!ENTITY package "kdeextragear-2">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
<book lang="&language;">
<bookinfo>
<title>The &kmplayer; Handbook</title>
<authorgroup>
<author>
<firstname>Koos</firstname>
<surname>Vriezen</surname>
<affiliation>
<address><email>koos dot vriezen at gmail dot com</email></address>
</affiliation>
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
<copyright>
<year>2002</year>
<year>2006</year>
<year>2007</year>
<holder>Koos Vriezen</holder>
</copyright>
<!-- Translators: put here the copyright notice of the translation -->
<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
and in the FDL itself on how to use it. -->
<legalnotice>&FDLNotice;</legalnotice>
<date>2007-07-28</date>
<releaseinfo>0.06.00</releaseinfo>
<!-- Abstract about this handbook -->
<abstract>
<para>
&kmplayer; is an application that is a &kde; frontend to <application>MPlayer</application>, <application>Xine</application> and <application>GStreamer</application>.
</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>kdemultimedia</keyword>
<keyword>MPlayer</keyword>
<keyword>konqueror</keyword>
<keyword>video</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<para>
&kmplayer; is a simple frontend to <application>MPlayer</application>,
<application>Xine</application>, <application>GStreamer</application> and
<application>FFMpeg</application>. You can use it for watching all the movie
file formats that <application>MPlayer</application>,
<application>Xine</application> or <application>GStreamer</application>
supports as well as watching from <acronym>DVD</acronym>,
<acronym>VCD</acronym> or <acronym>TV</acronym> and <acronym>camera</acronym>.
</para>
<para>
The documentation for &kappname; was not finished when &kde; was
installed on this computer.</para> <para>If you need more help, please
check <ulink url="http://www.kde.org">The KDE Website</ulink> for
updates, or by submitting your question to
<ulink url="mailto:[email protected]">The &kde; User Mailing list</ulink>.
</para>
<para><emphasis>The &kde; Team</emphasis></para>
</chapter>
<chapter id="gui">
<title>The user interface</title>
<para>
The application window is made of so called dockable windows. There is always
the central view window. Optional there is the playlist window. And finally
there is an info window, that just shows itself when some information is there
to been shown.
</para>
<section id="playlistwindow">
<title>Playlist window</title>
<para>
The playlist window has as of this writing five categories, current item(s),
<guilabel>Optical Disks</guilabel>, <guilabel>Television</guilabel>,
<guilabel>Persistent Playlists</guilabel> and <guilabel>Most Recent</guilabel>.
When clicked on a category's text, it will show the contents below this line.
Of course there has to be contents, eg. see
<link linkend="tvsource"><acronym>TV</acronym> settings</link> for adding
content for the <guilabel>Television</guilabel> category. The
<guilabel>Most Recent</guilabel> category will fill itself when playing
locale media files or network <acronym>Url</acronym>s. This category can
hold 60 items of which the last 50 are under the <guilabel>More ..</guilabel>
branch.
</para>
<section>
<title>Persisent Playlists category</title>
<para>
It's possible to store your favorite links in the <guilabel>Bookmark</guilabel>
menu, but those are single items. If you want to create a list of items that
play after each other, than you should use the
<guilabel>Persistent Playlists</guilabel> category.
</para>
<para>
The easiest way to add an item in this list is to drag it from
<guilabel>Most Recent</guilabel> and drop it on
<guilabel>Persistent Playlists</guilabel>. As you will see, when dropped, a
pop-up menu appears where you can choose to add to this list or create a
new group. Top level items behave like a bookmark item, but items in groups
will play the whole group wherein they reside. Items in this category can
easily be moved, copied, added to a new group or deleted just by dragging this
item to another place in this category. Additionally there are
<guimenu>Delete item</guimenu>, <guimenu>Move up</guimenu> and
<guimenu>Move down</guimenu> items in the context menu (when clicking with
the right mouse button on an item).
</para>
<para>
Of course you can add groups to groups to get a deeper hierarchy. When clicked
on an item, its group and all its child groups will be copied to the current
category and playings starts at the clicked item position.
</para>
<section>
<title>Storage format</title>
<para>
The data is stored in
<filename>~/.kde/share/apps/kmplayer/playlist.xml</filename>, and its format
is like this example. See <link linkend="XML-editing">here</link> for
manipulating this data directly.
<programlisting>
<playlist>
<group title="feeds">
<item url="http://www.lugradio.org/episodes.rss"/>
<item url="http://science.nasa.gov/podcast.xml"/>
<item url="http://www.theworld.org/rss/tech.xml"/>
</group>
<group title="iradio">
<group title="sunny">
<item mplayeropts="-cache 256" url="http://www.swissgroove.ch/listen.m3u"/>
<item url="http://www.boombasticradio.com/shoutcast/64.pls"/>
</group>
<group title="rainy">
<item url="http://www.radioparadise.com/musiclinks/rp_64.m3u"/>
<item url="http://www.woxy.com/stream/wma64.asx"/>
<item url="http://radionigel.com/winmedia.asx"/>
<item url="rtsp://livestreams.omroep.nl/live/vpro/vpro3voor12radioalt.rm"/>
</group>
</group>
</playlist>
</programlisting>
Also note that for <application>MPlayer</application> custom options can be
set using the <computeroutput>mplayeropts</computeroutput> argument. &kmplayer;
searches for this option upwards in the tree, so you can set it for a whole
group and override it for a child group or item.
</para>
</section>
</section>
</section>
<section id="XML-editing">
<title>Direct XML editing</title>
<para>
The current, <guilabel>Television</guilabel> and
<guilabel>Persistent Playlists</guilabel> categories can also be manipulated
by editing their <acronym>XML</acronym> storage. Of course one can do that
when &kmplayer; is not running and editing the various files in
<filename>~/.kde/share/apps/kmplayer/</filename>, but also in the application
itself. Simply click on a catergory label, then choose <guimenu>View</guimenu>
and next <guimenu>Edit mode</guimenu>. You can also click on a child branch
and will then see only the <acronym>XML</acronym> contents of the branch.
</para>
<para>
After you have edited some <acronym>XML</acronym>, click on the
<guilabel>Sync with playlist</guilabel> and either deselect the
<guimenu>Edit mode</guimenu> item or click on another catergory.
<caution><para>
All changes are lost when leaving edit mode or selecting another branch without syncing with playlist.
</para></caution>
</para>
<para>
Because of the lazyness of &kmplayer;'s author(s), some features can only be
enabled by editing the XML.
</para>
</section>
</chapter>
<chapter id="settings">
<title>Settings</title>
<section>
<title>Intro/exit animation</title>
<para>
Disabling the starting/ending animation can be configured by editing <filename>~/.kde/share/config/kmplayerrc</filename> and modify
<programlisting>
[General Options]
No Intro=0
</programlisting>
the above option to '1'. Just add this option if it's not there yet.
</para>
<para>
It's also possible to set an alternative animation. &kmplayer; will look at resp. <filename>~/.kde/share/apps/kmplayer/intro.xml</filename> and <filename>~/.kde/share/apps/kmplayer/exit.xml</filename>. The format has to be a supported <acronym>XML</acronym> file.
</para>
<para>
The intro animation doesn't have to be a short one, because it will automatically end when another source is opened. Of course for the exit animation this would be a bit annoying, however the user can always end the application twice.
</para>
<para>
A simple example of an intro, showing your favorite photo can be
<programlisting>
<smil>
<body>
<img dur="indefinite" src="file:///home/koos/mum.gif" fit="meet"/>
</body>
</smil>
</programlisting>
In &kmplayer;'s source package, in the <filename>tests/</filename> are some examples of <acronym>SMIL</acronym> that &kmplayer; supports.
</para>
</section>
</chapter>
<chapter id="backends">
<title>The backend players</title>
<para>
&kmplayer; uses external programs to do the actual playing.
</para>
<section id="mplayer">
<title>MPlayer</title>
<para>
There is a configuration tab for MPlayer in &kmplayer;'s config dialog. Here
you can set MPlayer's path and it cache size for network stream, among other
things.
</para>
<para>
This player configuration name is <parameter>mplayer</parameter>.
</para>
<section id="mplayer-debug">
<title>Trouble shooting</title>
<para>
The best way to debug this backend is to start &kmplayer; from a console
application like konsole. Then start a movie with kmplayer and see the exact
commandline that is used to start mplayer in the console application.
Now copy/paste that to another console, remove the '-wid 12344' options, and
make it play. Probably it's just choosing the right -ao/-vo params. Also make
sure mplayer doesn't start default with a <acronym>GUI</acronym>.
</para>
<para>
Another debugging tool is the 'console' button in kmplayer's toolbar. Here you
can see the output from mplayer.
</para>
</section>
</section>
<section id="xine">
<title>Xine</title>
<para>
When configured &kmplayer; with Xine support, there will be configuration tab
for Xine in &kmplayer;'s config dialog. Here you can set various options.
These options are dynamic retrieved from the Xine library. Use context help to
get information on what these options do (ie. click on the question mark
button from the dialog title bar and then click on an option).
</para>
<para>
This player configuration name is <parameter>xine</parameter>.
</para>
<para>
The options are saved in
<filename>.kde/share/apps/kmplayer/xine_config</filename> as a text document.
</para>
<section id="xine-debug">
<title>Trouble shooting</title>
<para>
Basically the same way as trouble shooting
<link linkend="mplayer-debug">MPlayer</link>, with the application name of
<filename>kxineplayer</filename>.
</para>
</section>
</section>
<section id="gstreamer">
<title>GStreamer</title>
<para>
There is no configuration tab for GStreamer in &kmplayer;'s config dialog. The
common options for eg. <acronym>DVD</acronym> device are used when appropriate.
</para>
<para>
This player configuration name is <parameter>gstreamer</parameter>.
</para>
<section id="gstremaer-debug">
<title>Trouble shooting</title>
<para>
Basically the same way as trouble shooting
<link linkend="mplayer-debug">MPlayer</link>, with the application name of
<filename>kgstplayer</filename>.
</para>
</section>
</section>
<section id="npp">
<title>Browser plugin</title>
<para>
There is no configuration tab for this player in &kmplayer;'s config dialog.
Everything must be configured by manually editing the
<filename>~/.kde/share/config/kmplayerrc</filename> like with configuring the
<link linkend="backend-mimetype">backend per mimetype</link>. This is an
example how to let flash be played with the swfdec-mozilla plugin:
<programlisting>
[application/x-shockwave-flash]
player=npp
plugin=/usr/lib/mozilla/plugins/libswfdecmozilla.so
</programlisting>
</para>
<para>
You can play flash inside &kmplayer;, actually you can even paste the special
<parameter>embed</parameter> field for
<ulink url="http://www.youtube.com">YouTube</ulink> in the
<link linkend="XML-editing">playlist <acronym>XML</acronym></link>.
</para>
<para>
In order to let &kmplayer; play flash in HTML pages, you should make the
&kmplayer; plugin the service provider for the
<parameter>application/x-shockwave-flash</parameter> mimetype in KDE's
<guilabel>File Associations</guilabel> configuration dialog.
</para>
<para>
As in the above example, this player configuration name is
<parameter>npp</parameter>.
</para>
<section id="npp-debug">
<title>Trouble shooting</title>
<para>
Start Konqueror or &kmplayer; in a console application and look for errors
about loading the browser plugin library. The process started is called
<filename>knpplayer</filename>. If that doesn't give any errors, check
the backend output capturing inside &kmplayer; (<guimenu>View</guimenu>,
<guimenuitem>Console</guimenuitem>, or <guimenuitem>Console</guimenuitem>
from the popup menu).
</para>
</section>
</section>
<section id="backend-mimetype">
<title>Force backend player for a mimetype</title>
<para>
To configure to always use a given backend for a particular mimetype
(if detected of course) can be done by manually editing the
<filename>~/.kde/share/config/kmplayerrc</filename>. For example, let xine play
all ogg files:
<programlisting>
[audio/ogg]
player=xine
</programlisting>
</para>
</section>
</chapter>
<chapter id="sources">
<title>The playable sources</title>
<para>
&kmplayer; can play from various sources. These sources are listed in the Source menu.
</para>
<section id="tvsource">
<title>TV</title>
<para>
&kmplayer; can play from TV cards using <application>MPlayer</application> or <acronym>XVideo</acronym> (using <application>kxvplayer</application>). Before you can watch TV, you have to configure which device to use and the TV channels. You can use the scanner from the configure dialog for this or edit the config file manually.
</para>
<para>
The config file for TV settings is a <acronym>XML</acronym> file, located
<filename>~/.kde/share/apps/kmplayer/tv.xml</filename>. See
<link linkend="XML-editing">here</link> for manipulating this data directly.
The <acronym>XML</acronym> format is like this example:
<programlisting>
<tvdevices>
<device path="/dev/video0" width="320" height="240" name="BT878 video (Hauppauge (bt878))" audio=""
minwidth="48" minheight="32" maxwidth="924" maxheight="576" playback="0" xvport="240">
<input name="Television" id="0" tuner="1" norm="PAL" xvenc="0">
<channel name="Ned1" frequency="216"/>
<channel name="VCR" frequency="594.90"/>
</input>
<input name="Composite1" id="1" xvenc="7"/>
<input name="S-Video" id="2" xvenc="14"/>
<input name="Composite3" id="3"/>
</device>
<device path="/dev/video1" width="640" height="480" name="Philips 740 webcam" audio=""
minwidth="160" minheight="120" maxwidth="640" maxheight="480" playback="1">
<input name="Webcam" id="0"/>
</device>
</tvdevices>
</programlisting>
Note that <quote>input</quote> elements having channels, should have the <quote>tuner</quote> attribute set to <quote>1</quote>.
</para>
<para>
<acronym>XVideo</acronym> only uses the <quote>xvport</quote> and <quote>xvenc</quote> attributes and they can only be set by manually editing this file. The values of these two attributes can be retrieved by running <quote>kxvplayer</quote> in a terminal application like <quote>konsole</quote>. For every port, <quote>kxvplayer</quote> will output lines like below and the numbers can be set for the attributes mentioned.
<programlisting>
xvport 240
....
encoding: 0 PAL-television
encoding: 1 NTSC-television
encoding: 2 SECAM-television
....
</programlisting>
Also width and height attributes are ignored by the <acronym>XVideo</acronym> player. This player gets the sizes from the X server. One of the nice things of <acronym>XVideo</acronym> is that scaling is done in hardware, by the video card, so fullscreen support without CPU usage and without resolution change of your monitor. Also no annoying flicker when another window overlaps this video window.
</para>
<para>
See the VDR section for more information about using <acronym>XVideo</acronym>.
</para>
</section>
<section id="vdrsource">
<title>VDR</title>
<para>
To configure your VDR settings in kmplayer, see the Configure panel->Source->VDR->XVideo port panel. There should be ports detected, from which you should select one. You have to figure out what encoding you should use (eg. for western europe, that is PAL) and likely the correct one has a name with <quote>dvb</quote> in it.
</para>
<para>
For instance, I have a TV card, a DVB-S card and a webcam pluged into my system. With these, my settings are that there are three Ports. The first one has a long list of NTSC(-JP)/PAL(-M)/SECAM entries all saying something about television/composite/svideo (my TV card). The second one has NTSC-dvb/PAL-dvb/SECAM-dvb (my DVB-S card). And finally the third has only ntsc/pal (probably my webcam). I should therefore configure (just select it) the second port and second entry (PAL-dvb).
</para>
<para>
Because VDR support from kmplayer can only use <acronym>XVideo</acronym>, of course <acronym>XVideo</acronym> should work (and I believe for video devices, this way of viewing only works on linux). Also this only works on your first display (:0.0). So make sure <quote>videoforlinux</quote> extension works with the X server. For the XFree86 server, therefor in its configuration (<filename>/etc/X11/XF86Config</filename>) it should have
<programlisting>
Section "Module"
....
Load "v4l"
EndSection
</programlisting>
</para>
<para>
Unfortunately, when ever you update your video driver, you have to reconfigure this setting.
</para>
</section>
<section id="kmplayer_url">
<title>Commandline</title>
<para>
Internally for the sources, &kmplayer; uses distinct names. At the time of
this writing these are "dvdnavsource", "dvdsource", "exitsource",
"hrefsource", "introsource", "pipesource", "tvscanner", "tvsource",
"urlsource", "vcdsource" and "vdrsource". When activated, they mostly
starts playing the list of playable items.
</para>
<para>
You can activate a particular source with a <filename>kmplayer://</filename> type <acronym>URL</acronym>. Just set the host part as the source name and optional path part as extra arguments, so for a channel for the "vdrsource" this could look like <filename>kmplayer://vdrsource/22 MTV 2</filename>. Eg. this script starts kmplayer using "dvdnavsource" and using <acronym>DCOP</acronym> to play fullscreen.
<programlisting>
/bin/bash
kmplayer kmplayer://dvdnavsource/ &
PID=$!
sleep 2
dcop kmplayer-$PID KMediaPlayer toggleFullScreen
</programlisting>
For some sources this will not do much because they are not meant to be
for normal playing. For "pipesource" this is disabled because that
would be a bad security hole of course.
</para>
</section>
</chapter>
<chapter id="questionsanswersandtips">
<title>Questions, Answers, and Tips</title>
<qandaset id="faq">
<title>Frequently asked questions</title>
<qandaentry>
<question>
<para>Xine starts up slow, why does it have to benchmark my CPU all the time?</para>
</question>
<answer>
<para>
Note the answer below is outdated. <application>kxineplayer</application> saves it automatically to last value, so only the first time xine will do the CPU test.
</para>
<para>The <application>Xine</application> frontend for &kmplayer;, <application>kxineplayer</application>, uses <filename>~/.kde/share/apps/kmplayer/xine_config</filename> for its configuration. Settings for <application>Xine</application> are found in the configuration dialog <quote>General Options</quote>|<quote>Xine</quote>. (If you change an option here and save it, <filename>~/.kde/share/apps/kmplayer/xine_config</filename> will contain some explainations too). The CPU benchmarking is caused by the option <computeroutput>misc.memcpy_method</computeroutput> set to <computeroutput>probe</computeroutput>. To see which memcpy version works the fastest for you, enable <quote>Show Console Output</quote> from the <quote>View</quote> menu and look at the results from this benchmarking when you play something with Xine. Configure <computeroutput>misc.memcpy_method</computeroutput> with the method with the lowest time.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Any hints to make my CDROM less noisy when playing from it (not VCD://)?</para>
</question>
<answer>
<para>Sure, try <command>hdparm -E 8 /dev/cdrom</command> as root after mounting the device. But be sure to double check <filename>/dev/cdrom</filename> pointing to your CDROM drive.
</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="credits-and-licenses">
<title>Credits and Licenses</title>
<para>&kmplayer; copyright 2002,2003 Koos Vriezen</para>
&underFDL;
&underGPL;
</chapter>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->
|