> For the complete documentation index, see [llms.txt](https://docs.tvheadend.org/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tvheadend.org/documentation/setup/concepts.md).

# Concepts

It helps to understand the basic software concepts for Tvheadend:

## Hardware & Software <a href="#hardwaresoftware-fundamentals" id="hardwaresoftware-fundamentals"></a>

* **Tuner** is the chipset/hardware needed to interpret a digital television signal and extract from it the programme stream. Tuner hardware is also responsible for communicating with your satellite dish via the LNB when using DVB-S.
* **Driver** is software the operating system uses to talk to the tuner hardware. It can be built into the operating system, or might be something you need install, or even compile, separately.
* **Firmware** is binary microcode that the driver sends to the tuner on initialisation. Card firmware is closed-source software and can be a common cause of problems.

## Tvheadend <a href="#applicationtvheadend-fundamentals" id="applicationtvheadend-fundamentals"></a>

* **Network** is a software definition of your carrier network that tells tuner hardware how and where to look for a signal, e.g. the network defines a such as DVB-T or DVB-S2, and how it is scanned, where the DVB-S satellite is in orbit, and similar.
* **Muxes** are channel frequencies that transmit multiple digital channel signals in the radio frequency space of a single analogue channel. Digital signals are multiplexed (muxed) together to allow more channels to be broadcast.
* **Services** are the individual data streams on a Mux. They can be TV or Radio programmes, or they can provide data services such as digital teletext or catch-up IPTV services.
* **Channels** are mapped against Services. Channels are what client software access when users think *“I’d like to watch BBC One now, please”*.

Each configuration component supports *many-to-many* relationships: meaning one component can be related to multiple components of the next type, and vice versa, e.g. one tuner can support multiple networks and one network can exist on multiple tuners.

The following diagram explains the relationship between these components:

<figure><img src="https://2220360935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWkATv6QC75J0U7oIEIKn%2Fuploads%2FaUmZTMiJJo4QsqECStwY%2Fimage.png?alt=media&amp;token=57d749c9-8e23-45a9-932b-57c989e7f924" alt=""><figcaption><p>Tvheadend Adapter > Network > Mux > Service > Channel architecture</p></figcaption></figure>

### Why The Complexity?

Simply, because 'BBC One' probably exists in multiple different places. It has regional variations on multiple frequencies (different services on different muxes) and if often accessible through more than one piece of hardware (two satellite tuners, or one satellite and one terrestrial tuner). When you select a channel to watch or record, Tvheadend needs to know the mapped path to the right service on the right mux .. to ask the right tuner to get the signal for you.

### Usernames

As part of the TVH package installation process, the user is prompted for a **superuser** username and password.

Once the package is installed, the user then needs to run the 'Setup Wizard' from a web browser. During this process, the user is prompted to create '**admin**' and 'user' usernames/passwords.

The initial **superuser** name should be different to the **admin** username for language selection to work for that user.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.tvheadend.org/documentation/setup/concepts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
