summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-10.html
blob: 636696e9ba24b221485c6af031dadaa50658e78c (plain)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE>Installing and using MythTV: Configuring mythfrontend.</TITLE>
 <LINK HREF="mythtv-HOWTO-11.html" REL=next>
 <LINK HREF="mythtv-HOWTO-9.html" REL=previous>
 <LINK HREF="mythtv-HOWTO.html#toc10" REL=contents>
</HEAD>
<BODY>
<A HREF="mythtv-HOWTO-11.html">Next</A>
<A HREF="mythtv-HOWTO-9.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc10">Contents</A>
<HR>
<H2><A NAME="s10">10.</A> <A HREF="mythtv-HOWTO.html#toc10">Configuring mythfrontend.</A></H2>

<P>Once you have completed configuration of your backend systems, the next
step is to configure the frontend client.  </P>
<P>When you start mythfrontend for the first time, it will attempt to connect
to a configuration database on the local machine.  If there is none, a
"Database Configuration" screen will appear, and you will need to fill in
some details.  The "Host name" field needs the backend or database server's
IP address or DNS name, and the User or password fields may need to be set
to match your database user accounts.  After editing those fields, press
Enter twice to write these configurations on your local machine, and attempt
to connect to the database.  If you make any mistakes, the screens will pop
up again.</P>
<P>Now that mythfrontend has started up, you should have a number of
buttons/choices.  Before doing anything, go to TV, then to Setup and
configure the frontend client.
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>:  You should go through the various setup screens in
mythfrontend before using any other modules to ensure that the the database
is correctly initialized.</CAPTION>
</FIGURE>
</P>
<H2><A NAME="ss10.1">10.1</A> <A HREF="mythtv-HOWTO.html#toc10.1">General</A>
</H2>

<P>The General screen has configuration items that don't really fit anywhere
else.  The first few configuration items ask you to indicate the number of
seconds to record before or after a program, which is useful if the
broadcast network or your system clock are out of sync and will help prevent
you missing the beginning or end of a program.  </P>
<P>To change the value, use the left and right arrow keys to increment and
decrement the number of seconds.  When you're satisfied with the result, use
the down arrow to put the input focus on the Next button or press RETURN to
continue to the next page.</P>
<P>The next page has a number of options to do with how channels are displayed
on your system.  The help text will give you more information.  Move the
focus to Next and press the space bar to continue.</P>
<P>The last General page sets up some final configuration items.  See the help
text for more information.</P>

<H2><A NAME="ss10.2">10.2</A> <A HREF="mythtv-HOWTO.html#toc10.2">Appearance</A>
</H2>

<P>This set of screens is mostly concerned with how MythTV will look on your
system.  From here, you can choose different themes and set the resolution
of your system.</P>

<H2><A NAME="ss10.3">10.3</A> <A HREF="mythtv-HOWTO.html#toc10.3">Program Guide</A>
</H2>

<P>Fairly self explanatory.  Note that the alternate program guide does not
use the same font settings as defined in Appearance, so if the EPG is
unreadable this is where you make the adjustments to fonts, number of
elements displayed, etc.</P>

<H2><A NAME="deinterlace_"></A> <A NAME="ss10.4">10.4</A> <A HREF="mythtv-HOWTO.html#toc10.4">Playback </A>
 </H2>

<P>The one configuration item which may cause problems on your system is the
"Deinterlace playback" setting.  MythTV uses a linear blend algorithm for
deinterlacing, which will improve how the image looks on your screen. 
Deinterlacing requires that your processor support SSE. (Streaming SIMD
Extensions, aka "MMX2").  Early Intel Celeron (those that don't use the
Coppermine 0.18um core and are usually &lt;600MHz), Pentium Pro and Pentium II
CPUs do not have SSE, so make sure you haven't enabled deinterlacing if
your processor doesn't support it. If you enable it, and your processor
doesn't support SSE, you will get "Illegal Instruction" errors.</P>
<P>To determine if you've got SSE on an Intel processor, you can:
<BLOCKQUOTE><CODE>
<PRE>
$ cat /proc/cpuinfo
[snip]
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr sse
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Notice the <B>sse</B> at the end of the line - this tells you that this
processor will be able to deinterlace correctly.</P>
<P>On an AMD processor, look for "3dnow" in the cpuinfo line; "3dnow" is AMD's
implementation of SSE instructions, so if your processor has 3dnow you
shouldn't have any issues with deinterlacing.</P>
<H3>Video Filters</H3>

<P>MythTV provides a means of employing video filters while recording and
during playback. These filters can be used to improve or modify the video
image, including hiding the effects of an interlaced image or reducing the
impact of noise in a poor video signal. The following is a brief
introduction to introduce you to the filters that are available in MythTV
version 0.20 and higher.</P>
<H3>Applying filters</H3>

<P>One or more filters can be included in a "filter chain". The filters to
be used are identified in a "filter string". A filter string is a group of
filter names and parameters separated by commas.  To include parameters, the
filter name is followed by "=" and the parameter information. There should
be no spaces in the filter string. Here is an example filter string:</P>
<P>With parameters: <CODE>kerneldeint=10:1,denoise3d=12</CODE></P>
<P>Without: <CODE>kerneldeint,denoise3d</CODE></P>
<P>Recording filters are set for each individual channel. These may be used
when encoding in software (MPEG-4, RTjpeg) but do not apply when using a
capture card with hardware encoding such as those supported by the ivtv
driver, DVB, HDTV or MJPEG cards. You can run MythTV's "setup" program and
select the "Channel Editor". On the first page for each channel, you can
enter a filter string in the box titled "Video filters". If you are running
"mythweb" on your web server, you can click on "Settings" then "Channels"
and enter filter strings in the "videofilters" column.</P>
<P>Playback filters are per-host and apply to any recording you watch from the
frontend where filters have been applied. Playback filtering can only
work with software decoding so the viaslice, xvmc, and ivtv outputs ignore
filters entirely. From "mythfrontend" go to Setup->TV Settings->Playback.
Enter your filter string in the box titled "Custom Filters".</P>

<H3>Currently Available Filters</H3>

<P>"Deinterlace Playback" checkbox.</P>
<P>This implements special behavior needed for the "bobdeint" filter but can
also be used to choose any of the deinterlace filters. If you prefer, you
may leave this unchecked and include any of the deinterlace filters, other
than "bobdeint", in your custom filter chain.</P>
<P>o The "invert" filter</P>
<P>Invert ignores any parameters and inverts the pixel values of the video
frames.  In other words, a negative image. This would rarely be useful but
may be a good example to verify that your filter strings take effect.</P>
<P>o The "linearblend" filter</P>
<P>It is a simple deinterlacing filter that ignores parameters and works by
blending adjacent lines.  It replaces combing in interlaced video with a
less distracting "ghost" image.</P>
<P>o The "bobdeint" filter</P>
<P>This filter splits the interlaced image into two separate fields that
can be line doubled then displayed at twice the frame rate. If the
display is at the same refresh rate as the recording (59.92Hz NTSC or
50Hz PAL) this will cause each refresh to show objects in motion in
a new position with no jagged edges. However, if the display is not
synchronous, it will cause flickering or the appearance of the picture
moving up and down by one line.</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>: This filter requires the frame rate to be doubled
and therefore can only be used with the "Deinterlace Playback" checkbox.
Do not include this in your filter chain.</CAPTION>
</FIGURE>
</P>
<P>o The "kerneldeint" filter</P>
<P>Kerneldeint is a more complex deinterlacing filter which applies a filter
kernel using input from several lines.  It generally removes combing without
a "ghost" image, sometimes leaving a faint outline of the image from the
other field. It is considered to be less distracting to watch than
linearblend or no filter at all. It accepts one or two integer parameters
separated by a colon.</P>
<P>The first parameter is the filter threshold and defaults to 12. Adjacent
lines differing by more than the threshold value are filtered. The second
option defaults to 0.  If set to a non-zero value, it will cause the filter
to skip chroma, and filter only the luminance.  It may be useful on some
capture cards which do not capture the chroma fields of interlaced video
correctly.</P>
<P>o The "onefield" filter</P>
<P>This is a simple one-field deinterlacing filter that uses only one field of
the interlaced video.  By default it keeps the top field, though passing the
parameter "bottom" will cause it to keep the bottom field instead.</P>
<P>This filter is primarily useful for those who display 1080i HDTV signals
with a video mode that has 540 pixels vertically.  The advantage over other
deinterlacing filters is that scenes with motion never show combing or
ghosting.</P>
<P>o The "adjust" filter</P>
<P>This filter adjusts the digital values for luma and chroma to ensure that
they will fall within the ranges specified in the ITU-R601 standard. By
default, this corrects a known problem for the luma range used by bt8x8
chips which causes video to look washed out. If parameters are passed, there
need to be exactly six. However, passing a single parameter of "-1" will
disable the filter.</P>
<P>1: luma minimum input value (int)
2: luma maximum input value (int)
3: luma gamma correction (float)
4: chroma minimum input value (int)
5: chroma maximum input value (int)
6: chroma gamma correction (float)</P>
<P>The default bt8x8 correction values are equivalent to
"16:253:1.0:2:253:1.0".  Output ranges are fixed at ITU-R601 values (16-235
luma, 16-240 chroma).</P>
<P><B>NOTE</B>: If it is not already specified in the filter chain, this
filter will be automatically applied when recording with the "bttv" driver.</P>
<P>o The "quickdnr" filter</P>
<P>A fast temporal denoiser. This can take 1, 2 or 4 parameters, each being a
value from "0" for the least filtering to "255" for the greatest filtering.
With one parameter, the filter will compute the values it should use for all
of its variables. Two parameters will set the filter strength for luma and
chroma independently. If you are interested in how the algorithm works, you
may examine the source code to see how four parameter are used.</P>
<P>o The "denoise3d" filter</P>
<P>A slower denoiser that applies a spatial and temporal low-pass filter. The
spatial filter can remove some noise that quickdnr can't, but a more
powerful CPU is needed.  This filter accepts 3 float parameters:</P>
<P>
<UL>
<LI>luma spatial filter strength</LI>
<LI>chroma spatial filter strength</LI>
<LI>luma temporal filter strength</LI>
</UL>
</P>
<P>Reasonable defaults will be selected for omitted parameters.  The chroma
temporal filter strength is calculated from the other filter strengths.</P>
<P>o The "crop" filter</P>
<P>Covers edges of video with black bars.  This helps improve video quality
when the edges of the frame are distorted. By default, this removes 16
pixels from each edge. This can optionally take four parameters representing
top:left:bottom:right. The number times 16 is the number of pixels to remove
so, for example, the default is "=1:1:1:1".</P>
<P>o The "forceyv12" and "forceyuv422p" filters</P>
<P>These force the filter manager to use the given format.  You can use one of
these at the head of a filter chain to change the capture format. The most
likely use would be forceyuv422p to use YUV422P capture on cards with known
chroma interlacing problems with YV12.</P>
<P>There are some filters included in the MythTV source code that should 
not be used:</P>
<P>o The "forcergb24" and "forceargb32" filters</P>
<P>The two RGB formats should not be used because there is no conversion filter
for them yet.</P>
<P>o The "convert" filter</P>
<P>It exists but don't use it.  The filter manager uses this filter
automatically when it is unable to match the input/output formats of two
adjacent filters.</P>
<P>o The "postprocess" filter</P>
<P>While this exists in MythTV source code, it is currently not recommended for
use.</P>

<H3>Usage Considerations</H3>

<P>There are trade-offs to consider when deciding if it would be wise to use
a filter. Any processing will modify the original image so you should assess
if the filter has made a noticeable improvement to the picture in order to
justify the impact of the processing.  Adding any filter will inherently
increase CPU usage. The impact can vary dramatically depending on your CPU
type and speed, the resolution of the recording, which filters you are using
and other factors. You can only determine what is right for you through
experimentation. However, as a starting point, here are some filter strings
that you may find useful:</P>
<P>For typical broadcast stations:      "kerneldeint,quickdnr"</P>
<P>For stations with poor signal quality: "linearblend,denoise3d=12"</P>
<P>For synchronous TV-out: check Deinterlace with "Bob (2x framerate)"</P>

<H2><A NAME="Recording"></A> <A NAME="ss10.5">10.5</A> <A HREF="mythtv-HOWTO.html#toc10.5">Recording </A>
</H2>

<P>Depending on your capture card, MythTV offers different video encoders. 
The following types of hardware encoding cards are supported:
<UL>
<LI>MJPEG - Zoran-based cards; see 
<A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A></LI>
<LI>MPEG-2 - iTVC15/16 based cards (Hauppauge PVR-250/PVR-350); see 
<A HREF="http://ivtvdriver.org">http://ivtvdriver.org</A> </LI>
<LI>HDTV - pcHDTV cards; see 
<A HREF="http://pchdtv.com">http://pchdtv.com</A> and
the Air2PC-ATSC-PCI see 
<A HREF="http://www.cyberestore.com/product_info.php?cPath=28&amp;products_id=103">http://www.cyberestore.com/product_info.php?cPath=28&amp;products_id=103</A></LI>
<LI>DVB - cards supporting DVB; see 
<A HREF="http://linuxtv.org">http://linuxtv.org</A></LI>
</UL>

For cards without hardware encoding capabilities (all cards supported by
V4L not listed above), Myth includes two methods for software encoding:
RTjpeg and MPEG-4.  RTjpeg has significantly fewer CPU demands than MPEG-4,
but it generates larger files than MPEG-4 for a given recording.</P>
<P>For DVB and HDTV cards, no further configuration is required after
setting up the card using the 'mythtv-setup' program.
For all other cards, configuration is done through MythFrontend. 
Selecting 'Recording Profiles' from the 'TV Settings' screen will list
the profiles currently available for the cards in your system. 
Depending on what types of cards you have installed you may see:
<BLOCKQUOTE><CODE>
<PRE>
(Create new profile group)
Software Encoders
Hardware MPEG Encoders
Hardware MJPEG Encoders
Transcoders
</PRE>
</CODE></BLOCKQUOTE>

The '(Create new profile group)' option will allow you to create custom
profiles in case you have multiple backends.  Note that custom profiles
are per backend and card type.  If you have 2 MPEG-2 encoders in a given
backend system, creating a custom profile will affect both of them.  This
option should not be needed otherwise.</P>
<P>The 'Transcoders' group is a little different from the others.  Selecting
this group will result in a menu with the following options: 'RTjpeg/MPEG-4'
and 'MPEG-2'.  These types indicate what transcoder options will be used for
a given input type (i.e. the 'MPEG-2' settings would be used to transcode
MPEG-2 files into MPEG-4.  The source of the MPEG-2 stream (DVB, HDTV, or
PVR-x50) does not matter. Configuration of the options is the same as below
(although any resolution settings will be ignored).</P>
<P>Selecting any of the other options will show a new screen with a list of
four profiles:
<UL>
<LI>Default</LI>
<LI>Live TV</LI>
<LI>Low Quality</LI>
<LI>High Quality</LI>
</UL>
</P>
<P>The Default profile will be used for any recording which does not otherwise
have a specific profile assigned. The 'Live TV' profile will be used when
watching TV.  The remaining two profiles are available for customizing to
allow for more precise control over what quality is used for a given
program.</P>
<P>Selecting a profile will allow you to adjust the relevant options for that
card.  The most significant setting is the recording resolution, but you can
also choose encoding format, audio format, and tweak other encoder specific
properties.</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>: although the width and height can be changed to almost
anything, if you start MythTV and don't see video or you get "segmentation
fault" errors, it is likely that the video4linux (v4l) subsystem did not
like the height and width parameters specified.  It's best to leave the
default as-is until you're sure that MythTV is operational.</CAPTION>
</FIGURE>
</P>
<P>See the 
<A HREF="mythtv-HOWTO-23.html#capture_resolution_">What capture resolution should I use? How does video work?</A> section for more information.</P>

<H2><A NAME="ss10.6">10.6</A> <A HREF="mythtv-HOWTO.html#toc10.6">Xbox Frontends</A>
</H2>

<P>MythTV is able to control the LED on the Xbox to indicate backend
recording status.  </P>
<P>To control the LED, you will need the <B>blink</B> program from the
xbox-linux project, which is installed as <CODE>/bin/led</CODE> on GentooX.  On
Xebian (the new Ed's Debian) you must install it yourself.  On other
distributions it may or may not be installed as a program called
<B>blink</B> and should be located in your path.  (Type <CODE>which
blink</CODE> to see if the program is available.) If you do not have
<B>blink</B>, you may obtain it from the Xbox-Linux project site at 
<A HREF="http://xbox-linux.sf.net/">http://xbox-linux.sf.net/</A>. The
program you need is part of the <CODE>eds_i2c_staff</CODE> module in CVS.  Note
the spelling.</P>
<P>Once you have installed <B>blink</B> you will need to set permissions. 
<B>blink</B> needs write permission to the i2c device to function
properly.  There are three methods to accomplish this.  First, you could run
<CODE>mythfrontend</CODE> as root, which is the simplest method, but could
potentially be a security risk.  Next, you may make the <B>blink</B>
binary setuid root, which allows non-privileged users to run a program with
root capability.  This is done by typing the command:
<BLOCKQUOTE><CODE>
<PRE>
$ su
# chmod u+s /path/to/blink
</PRE>
</CODE></BLOCKQUOTE>

The final technique would be to set the <CODE>/dev/i2c/0</CODE> device read/write
for all users, but this is the least preferred method.</P>
<P>Now it's time to setup MythTV for Xbox hardware.  Enter Setup -> General. 
On the second page check the 'Enable Xbox Hardware' option.  Upon reentering
the settings, you should have a new option named 'Xbox'.  Within this option
you may select the distribution, LED colors for recording and the update
interval.  If you select GentooX as the distribution <B>led</B> will be
used as the <B>blink</B> binary name, otherwise, <B>blink</B> is used. 
Colors should be self explanatory.  The update interval determines how often
the frontend should poll the backend to determine if the status has changed.</P>

<HR>
<A HREF="mythtv-HOWTO-11.html">Next</A>
<A HREF="mythtv-HOWTO-9.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc10">Contents</A>
</BODY>
</HTML>