User Manual:Detailed configuration Backend

From MythTV Official Wiki
Jump to: navigation, search

This page is up-to-date to MythTV version 0.21, the current release is 0.27.3


This manual takes you through a detailed walk through into the various backend configuration options. Before doing this, a few ground concepts and terms should be explained so that the backend setup tasks sound logical to you:

With the backend of MythTV we mean the portion of the system that enables you to use capture devices as well as Scheduling Recordings on those cards, Commercial Detection, and transcoding. In short the backend process interacts with the Database and the hardware primarily.

As with the Mythfrontend, there can be multiple backends. One backend process is designated as the master backend. This is usually the first backend installed on a system. This backend is responsible for coordinating the activities of the other backends known as slaves. This is especially true for scheduling as the master backend will determine the best distribution of programs across all available tuners. Each backend can have any number of tuners. Commercial Detection can be distributed across different backends, thereby spreading the load of that process.

There is no requirement for direct user interaction with the backend. The backend can use local Hardware/File Storage or have it mounted from another system. If remotely mounted, network performance should be considered as there will be considerable traffic on the network as recordings are stored and retrieved by the backend process.

The backend and frontend communicate using their own Communications Protocol (Myth Protocol). The developer of Win Myth, a windows frontend to MythTV for playing recordings on Windows, has documented his workings on the protocol here. Work on defining the Myth Protocol is also being performed on this Wiki.}}

Running mythtv-setup

Configure the Myth backend like so

> /usr/bin/mythtv-setup

You will now see the GUI for MythTV to setup the backend server and in particular the channel tuning for our broadcast streams. You will need to set up:

  1. General — General Backend settings (most user can use the defaults) See the next section for detailed explanation.
  2. Capture Cards — Add and configure your capture devices here
  3. Video Sources — create guide data. This may require you to subscribe to an online service that provides programming information specific to your location and TV service.
  4. Input connections — tell your Capture Card(s) to which Video Source they should connect. (If you are setting up an IR blaster, you will need to add a script here that controls it.)
  5. Channel Editor — scan and configure your channels here
  6. Storage Groups — Configure which folders your recordings will be saved to.

Following we will discuss the general backend settings the other configuration items will be discussed in the next chapter.


The General settings is where you will set up the core settings of your backend. In case you are running a basic backend/frontend combined setup, you will most probably want to leave the default settings for most of this section, but in case your setup involves several separate backends and frontends, this is where you will determine the role of the backend you're currently configuring. There are two types of backends:

  • Master backend: you need at least one master backend on any MythTV setup
  • Slave backend: TODO, explain the role of slave backends...

Host Address Backend Setup

Host Address Backend Setup
Setting Default Value Settings Page's Description Additional Comments
IP address for mythtv Enter the IP address of this (backend) machine. Use an externally accessible address if you are going to be running a frontend or Slave Backend on a different machine than this one. (ie, not MythTV is made up of two major components, the Backend and the Frontend. If you run the Backend and Frontend on the same machine then you can leave the setting at its default value of This is referred to as the local loopback address which is reserved for networking within a single machine. If you run multiple frontends, or run frontends over network connections on different machines, then you will need to set this to the backend machines' static IP address. This value will be determined by your TCP/IP Network addressing scheme.
Port the server runs on 6543 Unless you’ve got a good reason to, don’t change this. As noted here you don't need to change this.
Port the server shows status on 6544 Port which the server will listen to for HTTP requests. Currently, it shows a little status information. You can connect to your MythTV box via a web browser at the machine's IP and this port. It shows some information on the status of the box but you should configure MythWeb for more advanced purposes.
Security Pin (Required) 0000 You will need to enter this PIN to authenticate to your backend. When using a remote frontend MythTV will auto discover your backend. For security you must enter this PIN into the frontend to gain access. This feature removes the need for manually configuring the $HOME/.mythtv/config.xml (or the deprecated mysql.txt). Use four zero's (0) to allow any client to connect and request database credentials. Leave the setting blank to forbid any client from receiving database credentials.
Master Server IP address The IP address of the master backend server. All frontend and non-master backend machines will connect to this server. If you only have one backend, this should be the same IP address as above. If you're running only a frontend, set the IP address for your backend here.
Port the master server runs on 6543 Port which the server will listen to for HTTP requests. Currently, it shows a little status information. If you're running only a frontend, set the port for your backend here.

Locale Settings

Locale Settings
Setting Default Value Settings Page's Description Additional Comments
TV format NTSC The standard to use for viewing TV. Other choices include: ATSC, PAL, SECAM, PAL-NC, PAL-M, PAL-N, NTSC-JP. Be sure to set to the proper format for your region.
VBI format None VBI stands for vertical blanking interval, the time between tracing the last line on the display and returning to the first, when the CRT's electron beam is turned off (blanked). The VBI is used to carry Teletext and Closed Captioning data. In TV broadcasting not all of the available lines in each frame of the picture are used. For example in CCIR systems (PAL and SECAM)25 lines per field (50 per frame) are specified for other uses. The remaining lines can be used for data broadcasting, and are typically used for closed caption or teletext. You may sometimes notice a squiggly black and white line or cube right at the top of the screen in a transmission; this is data being transmitted. In some countries, specific data broadcasting companies have exclusive rights on the use of the VBI lines. Options are None, PAL Teletext, NTSC closed caption
Channel frequency table us-cable Select the appropriate frequency table for your system. If you have an antenna, use a “-bcast” frequency. Other choices include: us-bcast, us-cable, us-cable-hrc, us-cable-irc, japan-bcast, japan-cable, europe-west, europe-east, italy, newzealand, australia, ireland, france, china-bcast, southafrica, argentina, australia-optus, singapore, malaysia, israel-hot-matav, try-all.
Time offset for XMLTV listings None If your local time zone does not match the time zone returned by XMLTV, use this setting to have mythfilldatabase adjust the program start and end times. None disables this feature, Auto automatically detects your local time zone. Leave this alone if you're an American using the SchedulesDirect XML service.

Miscellaneous Settings

Miscellaneous Settings
Setting Default Value Settings Page's Description Additional Comments
Master Backend Override Checked If enabled, the master backend will stream and delete files if it finds them in the video directory. Useful if you are using a central storage location, like a NFS share, and your slave backend isn’t running. This is the meat of the subject
Follow Symbolic links when deleting files Not checked This will cause Myth to follow symlinks when recordings and related files are deleted, instead of deleting the symlink and leaving the actual file. This is the meat of the subject
Delete Files Slowly Not checked Some filesystems use a lot of resource when deleting large recording files. This option makes Myth delete the file slowly on this backend to lessen the impact. Use this option if you experience video stutter while Myth deletes recordings in the background.
HD Ringerbuffer size (kb) 4700 The HD device ring buffer allows the backend to weather moments of stress. the larger the ring buffer, the longer the moments of stress can be. However, setting this too large can cause swapping, which is detrimental. The default setting should be used in normal conditions. If you experience crashes when watching HD try increase this. You may need a stronger signal to eliminate the errors.
Storage Group disk scheduler Balanced free space ???? Balanced free space is the recommended method for most users.
Miscellaneous Status Application blank External Application or script that outputs extra information for inclusion in the backend status page. See contrib/misc_status_info/README no comments.
Disable Firewire Reset Unchecked By default MythTV will reset the firewire bus when a firewire recorder stops responding to commands. But if this causes problems you can disable this here for Linux firewire recorders. no comments.

EIT Scanner Options

EIT Scanner Options
Setting Default Value Settings Page's Description Additional Comments
EIT transport timeout (mins) 5 Maximum time to spend waiting (in minutes) for listings data on one digital TV channel before checking for new listings data on the next channel.
Backend idle before EIT crawl (secs) 60 The minimum number of seconds after a recorder becomes idle to wait before MythTV begins collecting EIT listings data.

Shutdown/Wakeup Options

Shutdown/Wakeup Options
Setting Default Value Settings Page's Description Additional Comments
Startup command (empty) This command is executed right after starting the backend. As a parameter '$status' is replaced by either 'auto' if the machine was started or 'user' if a user switched it on. You may want to have post-startup tasks execute autonomously once the backend server has fully initialized. Use this parameter to specify a script that will get executed along with the backed server startup routines.
Block shutdown before client connected Checked If set, the automatic shutdown routine will be disabled until a client connects. If you have shutdown wakeup enabled, the backend will normally check to see if its busy before it shuts down. Of course if you have just turned your machine on manually then you don't want it to shut down before you have had a chance to start the frontend. Once the frontend has been started then the shutdown command will take effect as soon as the frontend closes down. This means that you only need to exit the frontend and the machine will go down. With MythTV 0.18 this created a problem with Mythweb, in that as soon as Mythweb connected to a backend which had no frontend process attached, it would think that a frontend connected then disconnected and consequently shut down. This has been fixed in 0.19.
Idle timeout (secs) 0 The amount of time the master backend idles before it shuts down all backends. Set to 0 to disable auto shutdown. MythTV can have multiple backends for the hardcore recording guy. Quite nice if you want to record lots of stuff at one time or if you are just a collector of all things broadcast. One of these backend machines will be designated as the Master Backend. This parameter controls how long the master backend idles, ie is not recording, transcoding or serving frontends before it decides to shut down all backends.
Max. wait for recording (min) 15 The amount of time the master backend waits for a recording. If it's idle but a recording starts within this time period, the backends won't shut down. You don't want the machine to think its idle only to find that by the time it has shut down it has to start again to record the next schedule. This parameter tells the system to wait a period of time just in case a recording is due.
Startup before rec. (secs) 120 The amount of time the master backend will be woken up before a recording starts. You often want to start a scheduled recording before it's actually scheduled according to the guide data. This is just in case it starts early or because you need to allow your machine time to boot in a wake up to record scenario. This parameter sets how much time you want to start the backend before the scheduled recording.
Wakeup time format hh:mm yyyy-MM-dd The format of the time string passed to the 'setWakeuptime Command' as $time. See QT::QDateTime.toString() for details. Set this parameter to be the same as that expected by the BIOS clock.
Command to set Wakeup Time Blank The command used to set the time (passed as $time) to wake up the master backend. This command needs to call an external script. Here is an example command '
sudo /usr/bin/mythsettime $time

where mythsettime is an external script that sets the wakeup command parameters in the bios. Here is the mythsettime script contents

 sudo echo $1 > /home/mythtv/myth.time
 sudo echo $1 > /proc/acpi/alarm
Server halt command sudo /sbin/halt -p The command used to halt the backends. This command needs to call an external script. Here is an example command '
 sudo /usr/sbin/mythshutdown

where mythshutdown is an external script that shuts the machine down. Here is the mythshutdown script contents

 sudo /sbin/halt -p
Pre Shutdown check-command Blank A command executed before the backends would shutdown. The return value determines if the backends can shutdown. 0 - yes, 1 - restart idling, 2 - reset the backends to wait for a frontend. On a single combined frontend/backend "/usr/bin/mythshutdown --check" will do. Your machines may be doing other things such as Samba file sharing or streaming music that are not MythTV related. In this case you will want to have script here that checks stuff before it shuts down.

If you want to run a check on both master and slave backend, you can use the following script for /usr/local/bin/ on the master backend. In this case it does not shutdown if someone is logged in on the machines.

 ps_who=`who | grep -v mythtv | grep -c ':'`
 if [ $ps_who != 0 ]; then
   echo "User logged in" >> $logfile  
 #run the next check on master backend only. Slave backend hostname is hardcoded...
 ping -c 3 slavebackend > /dev/null
 if [ $errorlvl == 0 ]; then
   echo "slave backend is up" >> $logfile
   ssh slavebackend /usr/local/bin/
   if [ $? === 1 ]; then
     echo "slave backend not ready for shutdown yet" >> $logfile
 /usr/bin/mythshutdown --check
 if [ $? == 1 ]; then
   echo "mythshutdown builtin checks prevent shutdown" >> $logfile
 exit $exstate

after setting up ssh authentication without passwords from master backend to slave backend.

WakeOnLan settings


Reconnect wait time (secs):

Count of reconnect tries:

Wake Command

Wake command for slaves:

Job Queue (Host-Specific)

Maximum simultaneous jobs on this backend:

Run Jobs only on original recording host

Job Queue Check frequency (in seconds)

Job Queue Start Time:

Job Queue End Time:

CPU Usage

Allow Commercial Detection jobs

Allow Transcoding jobs

Allow User Job #1 jobs

Allow User Job #2 jobs

Allow User Job #3 jobs

Allow User Job #4 jobs

Job Queue (Global)

Job Queue (Global)
Setting Default Value Settings Page's Description Additional Comments
Run Jobs only on original recording backend If set, jobs in queue will be required to run on the backend that made the original recording.
Start Auto-commercial Detection jobs when the recording starts If set and Auto Commercial Detection is ON for a recording, the detection job will be started as soon as the recording starts. NOT recommended on underpowered systems.
Commercial Detector command mythcommflag The program used to detect commercials in a recoding. The Defaults is 'mythcommflag' if this setting is empty. List of arguments.

Equivalent default command: mythcommflag -j %JOBID% -V %VERBOSELEVEL%

Transcoder command mythtranscode The program used to transcode recordings. The Defaults is 'mythtranscode' if this setting is empty. List of arguments.

Equivalent default command: mythtranscode -j %JOBID% -V %VERBOSELEVEL% -p %TRANSPROFILE% [-l]
('-l' is passed only if cutlists are to be used in transcoding)

Run Transcode Jobs before Auto-Commercial Detection Not Checked If set, if both auto-transcode and auto commercial detection are turned ON for a recording, transcoding will run first, otherwise, commercial detection runs first.
Save original files after transcoding (globally) Not Checked When set and the transcoder is active, the original files will be renamed to .old once transcoding is complete.

Job Queue (Job Commands)

User Job #1 Description:

User Job #1 Command:

User Job #2 Description:

User Job #2 Command:

User Job #3 Description:

User Job #3 Command:

User Job #4 Description:

User Job #4 Command:

Starting mythbackend

Once configuration is done you can test to see if the mythbackend process is running correctly by starting it in a Terminal window:

$ /usr/bin/mythbackend

Watch out for any error messages.

You may also find it useful to read about Mythwelcome and ACPI Wakeup