Giter Club home page Giter Club logo

docker-tvheadend's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML).

tvheadend

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/tvheadend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Application Setup

The setup depends if you run the one of the stable tags or use latest. Running latest is the easiest as it has a setup wizard.

Stable

First thing to do is to go to Configuration --> DVB Inputs --> TV adapters and add your LNB/switch info. Then create a new network in the Networks tab and set the correct pre-defined muxes and orbital position. Go back to the TV adapters tab and add the newly created network under universal LNB. Go back to the Networks tab and mark the network you created earlier and press the Force Scan button. Tvheadend will now scan the muxes for services.

After the scan is done, head to the Services tab and find the services you want as channels, mark them, and press map services. They should now appear under Configuration --> Channel/EPG.

Latest

The first thing to do is to run the setup wizard. If it doesn't pop up at first login, you can find it in Configuration --> General --> Base and click Start Wizard. This will guide you to set up the basic parts of tvheadend.

Configuring XMLTV grabber

To configure the XMLTV grabber, first check if your grabber is listed in Configuration --> Channel/EPG --> EPG Grabber Modules. If it's listed, you will have to configure the grabber before enabling. Find the path in the path field of your grabber. We will use the last part. It starts with tv_grab_. Add it after /usr/bin/ in the below command. There should be no space between Usr/bin/ and the part you added.

docker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure

Now follow the on-screen progress. If you get asked about cache, just accept the default. After you have configured your grabber, you can go back and enable your grabber.

If you already have a configuration file, you can add it in the .xmltv folder where you mapped the /config volume. If it's not created, create it.

Comskip This container comes with Comskip for commercial flagging of recordings. This you have to add in the recording config of tvheadend. Go to Configuration --> Recording. Change the view level to advanced in the top right corner, and add the below in the Post-processor command field.

/usr/bin/comskip --ini=/config/comskip/comskip.ini "%f"

Now comskip will run after each recording is finished. You will find comskip.ini in the comskip folder of your /config volume mapping. See the Comskip homepage for tuning of the ini file.

FFmpeg

FFmpeg is installed in /usr/bin/ in case you need to use it with pipe.

EPG XML file

If you have EPG data in XML format from a supplier, you can drop it in the data folder of your /config volume mapping. If it doesn't exist, create it. Then choose the XML file grabber in Configuration --> Channel/EPG --> EPG Grabber Modules. If you use WebGrab+Plus, choose the WebGrab+Plus XML file grabber. The XML file goes in the same path as above. The xml file has to be named guide.xml.

For advanced setup of tvheadend, go to [Tvheadend][appurl]

Picons

We have added all the picons from picons in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base. You need to enable minimum advanced view level to see the picons options.

Additional runtime parameters

In some cases it might be necessary to start tvheadend with additional parameters, for example to enable debugging or specify webroot for reverse proxy. Be sure to have the right parameters set, as adding the wrong once might lead to the container not starting correctly.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  tvheadend:
    image: lscr.io/linuxserver/tvheadend:latest
    container_name: tvheadend
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - RUN_OPTS= #optional
    volumes:
      - /path/to/tvheadend/data:/config
      - /path/to/recordings:/recordings
    ports:
      - 9981:9981
      - 9982:9982
    devices:
      - /dev/dri:/dev/dri #optional
      - /dev/dvb:/dev/dvb #optional
    restart: unless-stopped
docker run -d \
  --name=tvheadend \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e RUN_OPTS= `#optional` \
  -p 9981:9981 \
  -p 9982:9982 \
  -v /path/to/tvheadend/data:/config \
  -v /path/to/recordings:/recordings \
  --device /dev/dri:/dev/dri `#optional` \
  --device /dev/dvb:/dev/dvb `#optional` \
  --restart unless-stopped \
  lscr.io/linuxserver/tvheadend:latest

Host vs. Bridge

If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode. If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stability problems.

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 9981 WebUI
-p 9982 HTSP server port.
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e RUN_OPTS= Optionally specify additional arguments to be passed. See Additional runtime parameters.
-v /config Where TVHeadend show store it's config files.
-v /recordings Where you want the PVR to store recordings.
--device /dev/dri Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi).
--device /dev/dvb Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out.

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it tvheadend /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f tvheadend
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/tvheadend:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull tvheadend
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d tvheadend
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/tvheadend:latest
  • Stop the running container:

    docker stop tvheadend
  • Delete the container:

    docker rm tvheadend
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-tvheadend.git
cd docker-tvheadend
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/tvheadend:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 20.03.24: - Rebase to Alpine 3.19.
  • 16.10.23: - Add mesa-va-gallium package for AMD transcoding.
  • 20.09.23: - Add perl-json-xs package.
  • 18.05.23: - Install XMLTV from Alpine repos.
  • 18.05.23: - Rebase to Alpine 3.18.
  • 17.03.23: - Extract picons during build instead of init.
  • 23.02.23: - Rebase to Alpine 3.17, migrate to s6v3, drop armhf support.
  • 31.08.22: - Update sample env vars and how RUN_OPTS are handled.
  • 19.08.22: - Switch to new picons builder.
  • 16.04.22: - Added URL XMLTV grabber.
  • 05.01.22: - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv.
  • 11.05.21: - Added Intel iHD driver support.
  • 02.06.20: - Update to Alpine 3.12.
  • 27.12.19: - Add requests and perl-json-xs package.
  • 27.12.19: - Update to Alpine 3.11.
  • 02.10.19: - Improve permission fixing on render & dvb devices.
  • 18.08.19: - Add AMD drivers.
  • 02.08.19: - Attempt to automatically fix permissions on /dev/dri and /dev/dvb.
  • 28.06.19: - Rebasing to alpine 3.10.
  • 27.03.19: - Rebase to Alpine 3.9, fix init logic to only chown once.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 01.03.19: - Bump xmltv to 0.6.1.
  • 28.02.19: - add perl-lwp-useragent-determined.
  • 17.02.19: - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
  • 14.02.19: - Add picons path to config.
  • 15.01.19: - Add pipeline logic and multi arch.
  • 12.09.18: - Rebase to alpine 3.8 and use buildstage type build.
  • 21.04.18: - Add JSON::XS Perl package for grab_tv_huro.
  • 24.03.18: - Add dvbcsa package.
  • 04.03.18: - Use sourceforge master rather than mirror for xmltv.
  • 22.02.18: - Add lost libva-intel-driver.
  • 21.02.18: - Fix wrong version of iconv used.
  • 18.02.18: - Add vaapi support, some cleanup and dropping of deprecated options.
  • 04.01.18: - Deprecate cpu_core routine lack of scaling.
  • 11.12.17: - Rebase to alpine 3.7, linting fixes.
  • 02.09.17: - Add codec dependencies.
  • 13.07.17: - Increase uniformity across all archs.
  • 08.07.17: - Update README with full path for comskip.
  • 02.07.17: - Move to one branch for all 4.2 releases.
  • 27.05.17: - Rebase to alpine 3.6.
  • 01.05.17: - Update to tvheadend 4.2.1 stable.
  • 18.04.17: - Use repo version of gnu-libiconv rather than compiling.
  • 09.04.17: - Chain cpanm installs in one block and use --installdeps.
  • 09.02.17: - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69.
  • 07.02.17: - Add variable to add additional runtime paramters.
  • 05.02.17: - Update to alpine 3.5 and change dvb-apps to only compile needed libs.
  • 14.11.16: - Add picons from picons.xyz to /picons folder and add info to README.
  • 22.09.16: - Fix broken tv_grab_wg, libs for xmltv and update README.
  • 18.09.16: - Update XMLTV to 0.5.68 and update README.
  • 10.09.16: - Add layer badges to README.
  • 05.09.16: - Initial Release.

docker-tvheadend's People

Contributors

aptalca avatar axuttaja avatar bernhardberger avatar chbmb avatar chris230291 avatar cvh avatar danofun avatar homerr avatar hoshsadiq avatar j0nnymoe avatar linuxserver-ci avatar mrhotio avatar nomandera avatar nraecher avatar rado0x54 avatar rasmusbe avatar roxedus avatar snh avatar sparklyballs avatar thelamer avatar thespad avatar tobbenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-tvheadend's Issues

Unraid 6.7 Transcoding VAAPI not working.

linuxserver.io

Unraid 6.7 Transcoding VAAPI not working.

HOST: UNRAID 6.7
After update from unraid 6.6.6 to unraid 6.7 i lost the transcoding.

My logs from TVH dockers it not appear any diference from 6.7 to 6.6.6.

TVH DOCKER LOG
2019-06-22 07:05:33.465 transcode: 0006: 02:H264: ==> Using profile h264
2019-06-22 07:05:33.465 transcode: 0006: 01:MPEG2AUDIO: ==> Copy
2019-06-22 07:05:35.324 libav: AVCodecContext: H.264 constrained baseline profile doesn't support encoding with B frames, disabling them.
2019-06-22 07:05:35.342 libav: AVCodecContext: mmco: unref short failure
2019-06-22 07:05:35.342 libav: AVCodecContext: mmco: unref short failure
2019-06-22 07:05:35.342 libav: AVCodecContext: number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
2019-06-22 07:05:35.496 libav: AVCodecContext: mmco: unref short failure
2019-06-22 07:05:35.496 libav: AVCodecContext: mmco: unref short failure
2019-06-22 07:05:35.530 libav: AVFormatContext: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
2019-06-22 07:05:35.530 libav: AVFormatContext: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
2019-06-22 07:05:35.530 libav: AVFormatContext: track 1: codec frame size is not set

To get transcoding working again i reverted back to 6.6.6, and it comes working again.
I will stay on Unraid 6.6.6 until fixed.

Thanks, team linuxserver.io

Unable to play recorded program through webgui

First of all, GREAT work with TVHeadEnd docker container - very impressed !

This MAY be a TVHeadEnd issue in which case, sorry for wasting your time.

I run 4.3-861~g715a4a844 on a Synology DS918+

All works fine, and recordings are playable through KODI etc... But not playable through the webgui.....

Clicking the webgui play button next to a recording downloads a file. Clicking the file opens Ubuntu's video application which says "The film could not be read". Opening the file in VLC Media Player says :- VLC is unable to open the MRL blah blah blah.....

The error in the logs on TVHeadEnd is :-

2018-01-03 10:49:23.882 [ ERROR] http: 192.168.1.100: HTTP/1.1 GET /dvrfile/e815d3e1369052572096a9f7f8eb1230 -- 500

Hope this helps you guys.....

Thank you

dp

Need to add a file to /usr/sbin to grab xml EPG

Hi

I'm attempting to move over from the synology NAS native TVH install to your docker image. To access IPTV in NZ via TVH I need to install a new XML grabber in to /usr/sbin however I do not see a /usr/ folder in the /config folder on the NAS that the container is assigned to use.

Is it possible to get /usr/ folder exported to the config folder so that I can do this? If not, what is the best way to inject this in to the docker image and keep it there when it is updated?

Thanks,

Chris

wrong time

i run your wnderful dockerimage. Works fine.
but tvheadend has the wrong timezone date setting

i use the environment setting ind docker compose
when i run "date" as a command inside the container - the time is correct.
grafik
But tvheadend seems to has its own time
grafik

JSON XS appears to be missing from tvheadend latest

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.

Seeing this in system logs:

WARNING: Perl module JSON::XS not installed. JSON encode/decode performance will be poor.

Expected Behavior

JSON::XS included

Current Behavior

JSON::XS not included, tv_grab_zz_sdjson_sqlite takes 45+ minutes

Steps to Reproduce

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Clarification on SAT>IP net=host requirement

I am currently trying to access a DVB-C-Stream of my fritz box with tvheadend running as your docker container. However, the muxes fail with the message "no data". Currently I am trying to isolate the cause.

Hence the request for clarification: In the section "Host vs. bridge" you describe to use net=host when using IPTV, SAT>IP, etc. Do you also need to do this and does tvheadend also need the bradcast address if you are just trying to access the stream of a different unit broadcasting via SAT>IP?

Thank you and best regards

Memory Leak in 4.3-1006~gd381d71e3

When a program is recording, memory usage increases at a rate 1:1 proportional to the size of the video feed from my Sat>IP tuner.

I'm pretty sure this is a TVHeadend issue and have reported it with them (https://tvheadend.org/issues/4896), but they are asking me to do something that may require additional tools in the docker image.

Could these tools be added to the image and if not, could you explain how I can help them debug it ?

Here's Jaroslav's message 👎
Could you verify, if the memory is malloc()ated ? https://stackoverflow.com/questions/2564752/examining-c-c-heap-memory-statistics-in-gdb

All of the above is using the latest linuxserver docker image as of 28th Jan 2018.

Thanks !

dp

segfault at 14b659d3f3a0

On recent builds (190s) I am getting:

tvh:mtimer[21724]: segfault at 14b659d3f3a0 ip 00005559a65a76d7 sp 000014b65dd9f4a0 error 6 in tvheadend[5559a6445000+3d5000]

when switching between Kodi instances or profiles. I have rolled back to 185 and all my issues go away.

This is a placeholder ticket to see if anyone googles same issues and lands here. I will keep testing and close later if it is niche.

Picons not working in kodi because of digest authentication

Just spent a lot of times working out why picons were not working in kodi. Turns out kodi will fetch icons with basic authentication and this is why it was failing. Should we make the default as basic+digest so other people don't have to figure out why their picons are not working in kodi? I have no idea about the security aspect of all of this so I don't know if it's a good idea.

Actually kodi seems to be using curl to fetch the icons so they would just need to add --anyauth or --digest parameter to wherever curl is used so I might open an issue in their repo too.

Kernel error on DVB-T USB stick disconnect(?)

Hello,
I am running Ubuntu 18.04 VM inside of ESXi and on that Ubuntu I have docker containers.
I just got kernel error on that Ubuntu VM when my DVB-T USB stick got disconnected for a second due to loosy connection.
And this never happened on my old server where I had TVHeadend without docker. I also thought that since it is USB stick, it cannot produce any kernel errors on disconnect especially when it's running inside of docker container.
Maybe this is the right behaviour, but I rather put it here.

EDIT: I just tried to "wiggle" with my USB hub, then got just a lot of "dvb_usb_v2: usb_bulk_msg() failed=-19" errors but no kernel error like this. This looks pretty random. I had a few days ago similar one

VM syslog:

Mar 3 22:50:38 server-main kernel: [475214.688475] general protection fault: 0000 [#1] SMP PTI
Mar 3 22:50:38 server-main kernel: [475214.688500] Modules linked in: veth xt_nat xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype iptable_filter xt_conntrack nf_nat nf_conntrack br_netfilter bridge stp llc aufs rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache overlay rc_it913x_v1 it913x af9033 vmw_balloon dvb_usb_af9035 dvb_usb_v2 dvb_core joydev input_leds rc_core serio_raw shpchp mac_hid vmw_vsock_vmci_transport vsock vmw_vmci sch_fq_codel ib_iser rdma_cm iw_cm ib_cm sunrpc ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear hid_generic
Mar 3 22:50:38 server-main kernel: [475214.688806] usbhid hid crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc vmwgfx ttm drm_kms_helper aesni_intel syscopyarea sysfillrect sysimgblt aes_x86_64 crypto_simd glue_helper cryptd psmouse fb_sys_fops drm vmxnet3 vmw_pvscsi pata_acpi i2c_piix4 ahci libahci
Mar 3 22:50:38 server-main kernel: [475214.688926] CPU: 0 PID: 4880 Comm: tvheadend Not tainted 4.15.0-45-generic #48-Ubuntu
Mar 3 22:50:38 server-main kernel: [475214.688953] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/28/2017
Mar 3 22:50:38 server-main kernel: [475214.689005] RIP: 0010:dvb_frontend_release+0x3e/0xf0 [dvb_core]
Mar 3 22:50:38 server-main kernel: [475214.689030] RSP: 0018:ffffb66fc170fe48 EFLAGS: 00010202
Mar 3 22:50:38 server-main kernel: [475214.689050] RAX: 000000010713b37c RBX: ffff92d553849810 RCX: ffff92d5f00d3b20
Mar 3 22:50:38 server-main kernel: [475214.689805] RDX: ffff92d5f43206d0 RSI: ffff92d5f4320600 RDI: ffff92d5f9b7efb0
Mar 3 22:50:38 server-main kernel: [475214.690557] RBP: ffffb66fc170fe70 R08: 0000000000000000 R09: 0000000000000000
Mar 3 22:50:38 server-main kernel: [475214.691313] R10: ffff92d5f9b7efb0 R11: ffff92d5f4320610 R12: ffff92d5f4320600
Mar 3 22:50:38 server-main kernel: [475214.692053] R13: ffff92d553aa5540 R14: ff1c058d35cdbeef R15: ffff92d5f9b7efb0
Mar 3 22:50:38 server-main kernel: [475214.692777] FS: 00007f5a77020c18(0000) GS:ffff92d5ffc00000(0000) knlGS:0000000000000000
Mar 3 22:50:38 server-main kernel: [475214.693498] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Mar 3 22:50:38 server-main kernel: [475214.694208] CR2: 000056487f4d8020 CR3: 000000000f986000 CR4: 00000000000006f0
Mar 3 22:50:38 server-main kernel: [475214.694943] Call Trace:
Mar 3 22:50:38 server-main kernel: [475214.695639] __fput+0xea/0x220
Mar 3 22:50:38 server-main kernel: [475214.696309] ____fput+0xe/0x10
Mar 3 22:50:38 server-main kernel: [475214.696962] task_work_run+0x9d/0xc0
Mar 3 22:50:38 server-main kernel: [475214.697616] exit_to_usermode_loop+0xc0/0xd0
Mar 3 22:50:38 server-main kernel: [475214.698264] do_syscall_64+0x115/0x130
Mar 3 22:50:38 server-main kernel: [475214.698915] entry_SYSCALL_64_after_hwframe+0x3d/0xa2
Mar 3 22:50:38 server-main kernel: [475214.699579] RIP: 0033:0x7f5a801b75e4
Mar 3 22:50:38 server-main kernel: [475214.700240] RSP: 002b:00007fff077e29e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000003
Mar 3 22:50:38 server-main kernel: [475214.700929] RAX: 0000000000000000 RBX: 00007f5a77020c18 RCX: 00007f5a801b75e4
Mar 3 22:50:38 server-main kernel: [475214.701632] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000018
Mar 3 22:50:38 server-main kernel: [475214.702345] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
Mar 3 22:50:38 server-main kernel: [475214.703026] R10: 0000000000000000 R11: 0000000000000246 R12: 000056487feaa8e0
Mar 3 22:50:38 server-main kernel: [475214.703689] R13: 000056487f10f268 R14: 0000000000000000 R15: 000056487efdf340
Mar 3 22:50:38 server-main kernel: [475214.704335] Code: ff 53 4c 8b ae c8 00 00 00 49 89 f4 49 8b 5d 58 4c 8b b3 18 03 00 00 66 66 66 66 90 41 f6 44 24 40 03 74 11 48 8b 05 d2 5a 51 e4 <49> 89 86 00 02 00 00 0f ae f0 4c 89 e6 4c 89 ff e8 1d 4b ff ff
Mar 3 22:50:38 server-main kernel: [475214.706276] RIP: dvb_frontend_release+0x3e/0xf0 [dvb_core] RSP: ffffb66fc170fe48
Mar 3 22:50:38 server-main kernel: [475214.706955] ---[ end trace c3b09814aa88de28 ]---
Mar 3 22:50:41 server-main kernel: [475217.848069] general protection fault: 0000 [#2] SMP PTI
Mar 3 22:50:41 server-main kernel: [475217.848738] Modules linked in: veth xt_nat xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype iptable_filter xt_conntrack nf_nat nf_conntrack br_netfilter bridge stp llc aufs rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache overlay rc_it913x_v1 it913x af9033 vmw_balloon dvb_usb_af9035 dvb_usb_v2 dvb_core joydev input_leds rc_core serio_raw shpchp mac_hid vmw_vsock_vmci_transport vsock vmw_vmci sch_fq_codel ib_iser rdma_cm iw_cm ib_cm sunrpc ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear hid_generic
Mar 3 22:50:41 server-main kernel: [475217.854401] usbhid hid crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc vmwgfx ttm drm_kms_helper aesni_intel syscopyarea sysfillrect sysimgblt aes_x86_64 crypto_simd glue_helper cryptd psmouse fb_sys_fops drm vmxnet3 vmw_pvscsi pata_acpi i2c_piix4 ahci libahci
Mar 3 22:50:41 server-main kernel: [475217.856443] CPU: 1 PID: 4936 Comm: tvh:svcmap Tainted: G D 4.15.0-45-generic #48-Ubuntu
Mar 3 22:50:41 server-main kernel: [475217.857826] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/28/2017
Mar 3 22:50:41 server-main kernel: [475217.859257] RIP: 0010:dvb_frontend_release+0x3e/0xf0 [dvb_core]
Mar 3 22:50:41 server-main kernel: [475217.859971] RSP: 0018:ffffb66fc1f9bc38 EFLAGS: 00010202
Mar 3 22:50:41 server-main kernel: [475217.860693] RAX: 000000010713b692 RBX: ffff92d55384c810 RCX: ffff92d5f00d3b20
Mar 3 22:50:41 server-main kernel: [475217.861429] RDX: ffff92d5f4320ed0 RSI: ffff92d5f4320e00 RDI: ffff92d5f9b7df00
Mar 3 22:50:41 server-main kernel: [475217.862170] RBP: ffffb66fc1f9bc60 R08: 0000000000000000 R09: 0000000000000000
Mar 3 22:50:41 server-main kernel: [475217.862920] R10: ffff92d5f9b7df00 R11: ffff92d5f4320e10 R12: ffff92d5f4320e00
Mar 3 22:50:41 server-main kernel: [475217.863671] R13: ffff92d553aa5720 R14: fd039fd7944baeb7 R15: ffff92d5f9b7df00
Mar 3 22:50:41 server-main kernel: [475217.864419] FS: 00007f5a7391eae8(0000) GS:ffff92d5ffd00000(0000) knlGS:0000000000000000
Mar 3 22:50:41 server-main kernel: [475217.865178] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Mar 3 22:50:41 server-main kernel: [475217.865936] CR2: 00007ffc8afc6ae9 CR3: 0000000086662000 CR4: 00000000000006e0
Mar 3 22:50:41 server-main kernel: [475217.866732] Call Trace:
Mar 3 22:50:41 server-main kernel: [475217.867489] __fput+0xea/0x220
Mar 3 22:50:41 server-main kernel: [475217.868244] ____fput+0xe/0x10
Mar 3 22:50:41 server-main kernel: [475217.868997] task_work_run+0x9d/0xc0
Mar 3 22:50:41 server-main kernel: [475217.869757] do_exit+0x2ec/0xb40
Mar 3 22:50:41 server-main kernel: [475217.870494] do_group_exit+0x43/0xb0
Mar 3 22:50:41 server-main kernel: [475217.871220] get_signal+0x27b/0x590
Mar 3 22:50:41 server-main kernel: [475217.871926] do_signal+0x37/0x730
Mar 3 22:50:41 server-main kernel: [475217.872620] ? do_futex+0x325/0x500
Mar 3 22:50:41 server-main kernel: [475217.873298] ? SyS_futex+0x13b/0x180
Mar 3 22:50:41 server-main kernel: [475217.873969] exit_to_usermode_loop+0x73/0xd0
Mar 3 22:50:41 server-main kernel: [475217.874668] do_syscall_64+0x115/0x130
Mar 3 22:50:41 server-main kernel: [475217.875319] entry_SYSCALL_64_after_hwframe+0x3d/0xa2
Mar 3 22:50:41 server-main kernel: [475217.875950] RIP: 0033:0x7f5a801b75e4
Mar 3 22:50:41 server-main kernel: [475217.876567] RSP: 002b:00007f5a7391e1d8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
Mar 3 22:50:41 server-main kernel: [475217.877184] RAX: fffffffffffffe00 RBX: 00007f5a7391eae8 RCX: 00007f5a801b75e4
Mar 3 22:50:41 server-main kernel: [475217.877791] RDX: 0000000000000002 RSI: 0000000000000080 RDI: 00007f5a7391e2b4
Mar 3 22:50:41 server-main kernel: [475217.878386] RBP: 00000000000000ca R08: 0000000000000000 R09: 0000000000000000
Mar 3 22:50:41 server-main kernel: [475217.878962] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
Mar 3 22:50:41 server-main kernel: [475217.879523] R13: 0000000000000000 R14: 0000000000000002 R15: 000056487f4ea2a0
Mar 3 22:50:41 server-main kernel: [475217.880060] Code: ff 53 4c 8b ae c8 00 00 00 49 89 f4 49 8b 5d 58 4c 8b b3 18 03 00 00 66 66 66 66 90 41 f6 44 24 40 03 74 11 48 8b 05 d2 5a 51 e4 <49> 89 86 00 02 00 00 0f ae f0 4c 89 e6 4c 89 ff e8 1d 4b ff ff
Mar 3 22:50:41 server-main kernel: [475217.881669] RIP: dvb_frontend_release+0x3e/0xf0 [dvb_core] RSP: ffffb66fc1f9bc38
Mar 3 22:50:41 server-main kernel: [475217.882254] ---[ end trace c3b09814aa88de29 ]---
Mar 3 22:50:41 server-main kernel: [475217.882780] Fixing recursive fault but reboot is needed!

Container log:

2019-03-03 22:50:38.343 [ INFO] epgdb: snapshot start
2019-03-03 22:50:38.430 [ INFO] epgdb: queued to save (size 2967525)
2019-03-03 22:50:38.430 [ INFO] epgdb: broadcasts 6529
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
2019-03-03 22:50:38.514 [ INFO] mpegts: 506MHz in DVB-T (0x56487fe46fe0) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 610MHz in DVB-T (0x56487fe46b40) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 770MHz in DVB-T (0x56487fe466a0) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 546MHz in DVB-T (0x56487fe46200) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 690MHz in DVB-T (0x56487fe45d60) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 554MHz in DVB-T (0x56487fe458c0) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 778MHz in DVB-T (0x56487fe45420) - deleting
2019-03-03 22:50:38.514 [ INFO] mpegts: 650MHz in DVB-T (0x56487fe44f80) - deleting
2019-03-03 22:50:38.515 [ INFO] mpegts: 626MHz in DVB-T (0x56487fe44ae0) - deleting
2019-03-03 22:50:38.515 [ INFO] mpegts: 834MHz in DVB-T (0x56487fe44640) - deleting
2019-03-03 22:50:38.515 [ INFO] mpegts: 578MHz in DVB-T (0x56487fe441a0) - deleting
2019-03-03 22:50:38.515 [ INFO] mpegts: 594MHz in DVB-T (0x56487fe43d00) - deleting
2019-03-03 22:50:38.516 [ INFO] mpegts: 543MHz in DVB-T (0x56487fe43860) - deleting
2019-03-03 22:50:38.516 [ INFO] mpegts: 474MHz in DVB-T (0x56487fe433c0) - deleting
2019-03-03 22:50:38.516 [ INFO] mpegts: 642MHz in DVB-T (0x56487fe42f20) - deleting
2019-03-03 22:50:38.516 [ INFO] mpegts: 586MHz in DVB-T (0x56487fe42a80) - deleting
2019-03-03 22:50:38.516 [ INFO] mpegts: 618MHz in DVB-T (0x56487fe425e0) - deleting
2019-03-03 22:50:38.517 [ INFO] mpegts: 706MHz in DVB-T (0x56487fe42140) - deleting
2019-03-03 22:50:38.517 [ INFO] mpegts: 714MHz in DVB-T (0x56487fe41ca0) - deleting
2019-03-03 22:50:38.517 [ INFO] mpegts: 738MHz in DVB-T (0x56487fe41800) - deleting
2019-03-03 22:50:38.517 [ INFO] mpegts: 658MHz in DVB-T (0x56487fe41360) - deleting
2019-03-03 22:50:38.517 [ INFO] mpegts: 698MHz in DVB-T (0x56487fe40ec0) - deleting
2019-03-03 22:50:38.518 [ INFO] mpegts: 754MHz in DVB-T (0x56487fe40a20) - deleting
2019-03-03 22:50:38.518 [ INFO] mpegts: 786MHz in DVB-T (0x56487fe40580) - deleting
2019-03-03 22:50:38.518 [ INFO] mpegts: 482MHz in DVB-T (0x56487fe400e0) - deleting
2019-03-03 22:50:38.518 [ INFO] mpegts: 514MHz in DVB-T (0x56487fe3fc40) - deleting
2019-03-03 22:50:38.519 [ INFO] mpegts: 762MHz in DVB-T (0x56487fe3d040) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 530MHz in DVB-T (0x56487fe3cba0) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 506MHz in DVB-T (0x56487fe3c700) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 538MHz in DVB-T (0x56487fe3c260) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 554MHz in DVB-T (0x56487fe3bdc0) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 498MHz in DVB-T (0x56487fe3b920) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 546MHz in DVB-T (0x56487fe3b480) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 610MHz in DVB-T (0x56487fe3afe0) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 658MHz in DVB-T (0x56487fe3ab40) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 562MHz in DVB-T (0x56487fe3a6a0) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 626MHz in DVB-T (0x56487fe37640) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 594MHz in DVB-T (0x56487fe371a0) - deleting
2019-03-03 22:50:38.520 [ INFO] mpegts: 634MHz in DVB-T (0x56487fe36d00) - deleting
2019-03-03 22:50:38.521 [ INFO] mpegts: 602MHz in DVB-T (0x56487fe36860) - deleting
2019-03-03 22:50:38.521 [ INFO] mpegts: 522MHz in DVB-T (0x56487fe363c0) - deleting
2019-03-03 22:50:38.521 [ INFO] mpegts: 746MHz in DVB-T (0x56487fe35f20) - deleting
2019-03-03 22:50:38.522 [ INFO] mpegts: 490MHz in DVB-T (0x56487fe35a80) - deleting
2019-03-03 22:50:38.522 [ INFO] mpegts: 666MHz in DVB-T (0x56487fe355e0) - deleting
2019-03-03 22:50:38.522 [ INFO] mpegts: 618MHz in DVB-T (0x56487fe35140) - deleting
2019-03-03 22:50:38.523 [ INFO] mpegts: 634MHz in DVB-T (0x56487fe34ca0) - deleting
2019-03-03 22:50:38.523 [ INFO] mpegts: 674MHz in DVB-T (0x56487fe304e0) - deleting
2019-03-03 22:50:38.523 [ INFO] mpegts: 698MHz in DVB-T (0x56487fe30040) - deleting
2019-03-03 22:50:38.523 [ INFO] mpegts: 522MHz in DVB-T (0x56487fe2fba0) - deleting
2019-03-03 22:50:38.523 [ INFO] mpegts: 746MHz in DVB-T (0x56487fe2aa60) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 682MHz in DVB-T (0x56487fe2a5c0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 602MHz in DVB-T (0x56487fe2a120) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 482MHz in DVB-T (0x56487fe29c80) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 562MHz in DVB-T (0x56487fe297e0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 474MHz in DVB-T (0x56487fe29340) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 810MHz in DVB-T (0x56487fe28ea0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 770MHz in DVB-T (0x56487fe28a00) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 570MHz in DVB-T (0x56487fe28560) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 514MHz in DVB-T (0x56487fe280c0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 738MHz in DVB-T (0x56487fe27c20) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 650MHz in DVB-T (0x56487fe27780) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 578MHz in DVB-T (0x56487fe272e0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 498MHz in DVB-T (0x56487fe26e40) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 674MHz in DVB-T (0x56487fe269a0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 706MHz in DVB-T (0x56487fe26500) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 682MHz in DVB-T (0x56487fe26060) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 530MHz in DVB-T (0x56487fe25bc0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 754MHz in DVB-T (0x56487fe22020) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 690MHz in DVB-T (0x56487fe21b80) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 490MHz in DVB-T (0x56487fe216e0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 778MHz in DVB-T (0x56487fe21240) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 570MHz in DVB-T (0x56487fe20da0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 762MHz in DVB-T (0x56487fe20900) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 786MHz in DVB-T (0x56487fe20460) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 538MHz in DVB-T (0x56487fe1ade0) - deleting
2019-03-03 22:50:38.524 [ INFO] mpegts: 666MHz in DVB-T (0x56487fe1a940) - deleting
2019-03-03 22:50:38.525 [ INFO] mpegts: 642MHz in DVB-T (0x56487fe1a4a0) - deleting
2019-03-03 22:50:38.525 [ INFO] mpegts: 722MHz in DVB-T (0x56487fe1a000) - deleting
2019-03-03 22:50:38.525 [ INFO] mpegts: 586MHz in DVB-T (0x56487fe19b60) - deleting
2019-03-03 22:50:38.525 [ INFO] mpegts: 722MHz in DVB-T (0x56487fe196c0) - deleting
2019-03-03 22:50:38.525 [ INFO] mpegts: 714MHz in DVB-T (0x56487fe0ac00) - deleting
2019-03-03 22:50:38.527 [ INFO] mpegts: 730MHz in DVB-T (0x56487fe0a7c0) - deleting
2019-03-03 22:50:38.527 [ INFO] mpegts: 730MHz in DVB-T (0x56487fe0a380) - deleting
s6-svwait: fatal: timed out
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

Note: that s6-finish at the end is after I wanted to restart TVheadend container. It just got stuck on that "exiting".

Unable to sign in using tag latest

linuxserver.io

I am not able to sign in when using latest tag. Stable tag works fine as there is no user name or password prompt. How may I sign in using latest tag container?

Debian Jessie

docker create
--name=tvheadend
--net=bridge
-v /storage/tvheadend:/config
-e PGID=0 -e PUID=0
-p 9981:9981
-p 9982:9982
--device=/dev/dvb
linuxserver/tvheadend:latest

Thanks, team linuxserver.io

Feature request : ccextractor

Can you please include ccextractor in your tvheadend build?

This would allow closed caption extraction in tvh recording's post processing.

CCExtractor on github

Instead of compiling from scratch, it could be copied from existing docker images as a static linked executable. If you prefer to compile it too (dynamically linked libs).

Copying from existing docker image - No OCR support (static link)

https://hub.docker.com/r/skmendez/static-ccextractor
COPY --from=skmendez/static-ccextractor /ccextractor /usr/local/bin

Copying from existing docker image - With OCR support (static link)

https://hub.docker.com/r/gizmotronic/ccextractor/dockerfile
COPY --from=gizmotronic/ccextractor /tmp/cc/ccextractor/linux/ccextractor /usr/local/bin/ COPY --from=gizmotronic/ccextractor /usr/local/share/tessdata /usr/local/share/tessdata COPY --from=gizmotronic/ccextractor /tmp/cc/eng.traineddata /usr/local/share/tessdata

Build example (dynamic link)

https://github.com/GrahamDigital/ccextractor-alpine/blob/master/Dockerfile
`
FROM alpine:3.8
LABEL maintainer="[email protected]"

RUN apk update;
apk upgrade;
apk add --update wget bash build-base tesseract-ocr-dev;
rm -rf /var/cache/apk/*

WORKDIR /opt/
RUN wget -O master.zip https://codeload.github.com/CCExtractor/ccextractor/zip/master;
unzip master.zip 'ccextractor-master/linux/' -d /opt/;
unzip master.zip 'ccextractor-master/src/
' -d /opt/;
cd /opt/ccextractor-master/linux/; ./build;
cp ccextractor /usr/local/bin;
rm -rf /opt/*
`

Tuners not found after commit from Oct. 2nd

This commit (70b794c) seeems to break the detection of my tuners. Is there any way I can help to debug this?

I mount
/dev/dri and
/dev/dvb

into the container (DD MaxS8 on an Ubuntu 18.04 Server, upgraded from ebb09680-ls35). ls36 and beyond seems to be broken for me (TVH can't find any tuners anymore) and the only change between ls35 and ls36 seems to be this commit.

UDP 1900

There are several posts here and elsewhere discussion needing to port forward UDP 1900 for this container.

However I am not sure we have fully discussed the correct solution.

TVH does indeed need 1900 for broadcast and SAT>IP etc but it greedily binds to 0.0.0.0 where it may actually only need a single multicast address for SSDP

You can see this yourself by running this command on the host before and after the container comes up. The container will need to be in host mode.

# netstat -an | grep 1900
udp        0      0 239.255.255.250:1900    0.0.0.0:*

This also explains why sometimes TVH can bomb out with port unavailable as it is being used by other services such as Emby.

This is not a new discussion in general https://www.tvheadend.org/boards/5/topics/14189 but I cant find anything docker specific.

I am unclear how to handle this correctly when a single or multiple container need access to SSDP/DLNA etc

Setting timezone inside container

As stated in docs https://hub.docker.com/r/linuxserver/tvheadend I create container with following options:
docker create --name=tvheadend -e PUID=65534 -e PGID=65534 -e TZ=Europe/Minsk --net=host -v /opt/docker/tvheadend/config:/config -v /media/Transcend/torrent/recordings/:/recordings -v /media/Transcend/torrent/timeshift/:/timeshift --restart always linuxserver/tvheadend

Checking TZ variable using 'set | grep TZ' command inside container shows that TZ is correctly set to Europe/Minsk.
But date output inside container shows
Fri Nov 20 13:13:22 2020
and it is definitely UTC (localtime is 16:13).

When I put TZ=EET instead of Europe/Minsk then date output shows Fri Nov 20 13:13:22 EET 2020 - UTC again, but timezone is displayed.

In docker -f logs UTC also
2020-11-20 13:13:27.006 [ INFO] spawn: Executing "/usr/bin/tv_grab_wg"

this affects DVR/TV Guide functionality.

Picons are outdated

Hi !

First thanks for this great docker image !

I'm playing with picons. However the package that is downloading during setup is outdated. Thus some logos are missing (mostly because they are now in HD so they contains HD in the channel name).

I don't know where you found the archive file and I don't see any correspondance with the ones that are provided on the Picons' github so I can't make a PR :(

Could you please look if it's possible to find more recent archives ?

Thanks !

Request - Translate EPG

Hello. Is it possible to translate the EPG data?
Or maybe grab new data in the users language using the original as a search term on imdb etc?
No idea how possible or how much work this would be.
Just a simple translate would be better than nothing.
From what I understand there already exists cmdline utilities that can translate text, but a built in polished version would be nicer.

Thanks for your time.

Tag 172 and 173 Crash After Pulling Guide

I am running Docker 18.03.1-ce on Ubuntu 18.04.1 LTS inside a Hyper-V VM with /config and /recordings being on a CIFS share to the underlying Server 2016 host. The TVHeadend Docker image with tag 165 is running perfectly using Schedules Direct as the EPG grabber. When I upgrade to images with tag 172 or 173, a crash occurs after the EPG grabber runs and TVHeadend reloads...it the continues to crash and reload. Here is the docker run command extracted from docker inspect:

docker run --name tvheadend \
   -v /mnt/SHARE/Containers/tvheadend:/config \
   -v /mnt/SHARE/Media/Recordings:/recordings \
   -p 9981:9981/tcp \
   -p 9982:9982/tcp -P \
   --net host \
   --restart always \
   -h docker \
   --expose 9981/tcp \
   --expose 9982/tcp \
   -e 'PGID=0' \
   -e 'PUID=0' \
   -e 'TZ=America/New_York' \
   -e 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
   -e 'PS1=$(whoami)@$(hostname):$(pwd)$ ' \
   -e 'HOME=/config' \
   -e 'TERM=xterm' -d \
   --entrypoint "/init" linuxserver/tvheadend:165

Here are the logs:

2018-08-01 11:02:35.480 [   INFO] scanfile: DVB-S - loaded 1 regions with 113 networks
2018-08-01 11:02:35.480 [   INFO] scanfile: DVB-T - loaded 44 regions with 1125 networks
2018-08-01 11:02:35.480 [   INFO] scanfile: DVB-C - loaded 18 regions with 60 networks
2018-08-01 11:02:35.480 [   INFO] scanfile: ATSC-T - loaded 2 regions with 12 networks
2018-08-01 11:02:35.480 [   INFO] scanfile: ATSC-C - loaded 1 regions with 5 networks
2018-08-01 11:02:35.480 [   INFO] scanfile: ISDB-T - loaded 2 regions with 1297 networks
2018-08-01 11:04:34.000 [   INFO] xmltv: /usr/bin/tv_grab_na_dd: grab /usr/bin/tv_grab_na_dd
2018-08-01 11:04:34.001 [   INFO] spawn: Executing "/usr/bin/tv_grab_na_dd"
2018-08-01 11:04:34.836 [  ERROR] spawn: using config filename /config/.xmltv/tv_grab_na_dd.conf
2018-08-01 11:04:43.327 [  ERROR] spawn: Fetching from Schedules Direct    Fetched 17135 k/bytes in 8 seconds
2018-08-01 11:05:18.968 [  ERROR] spawn: loading data: ##################################################
2018-08-01 11:05:18.968 [  ERROR] spawn: NOTE: Your subscription will expire: 2018-09-04T23:35:13Z
2018-08-01 11:05:50.618 [  ERROR] spawn: Writing schedule: #################################################
2018-08-01 11:05:50.618 [  ERROR] spawn: Downloaded 31038 programs in 76 seconds
2018-08-01 11:05:51.652 [   INFO] xmltv: /usr/bin/tv_grab_na_dd: grab took 78 seconds
2018-08-01 11:05:51.654 [  ALERT] CRASH: Signal: 11 in PRG: /usr/bin/tvheadend (4.3-1292~g9b9ee6859) [409f1b4611c4e57beba8a57d83f4fe8105ef3293] CWD: /run/s6/services/tvheadend  2018-08-01 11:05:52.039 [   INFO] main: Log started
2018-08-01 11:05:52.059 [   INFO] http: Starting HTTP server 0.0.0.0:9981
2018-08-01 11:05:52.059 [   INFO] htsp: Starting HTSP server 0.0.0.0:9982
2018-08-01 11:05:52.099 [   INFO] config: loaded

Cannot connect

Hello, I'm having issues with this specific container. I am not new to docker, I use all my images from linuxserver, but this one is really problematic.

I tried with and without reverse proxy, but I cannot connect to the interface.

This is my part of my docker compose

tvheadend:
    depends_on:
      - ReverseProxy 
    image: linuxserver/tvheadend
    restart: unless-stopped
    network_mode: host
    environment:
      - TZ=Europe/Bucharest
      - PUID=1001
      - PGID=100
      #- RUN_OPTS="--http_root /tv"
    volumes:
      - /sharedfolders/mediatools/tvheadend:/config
      - /sharedfolders/Media/RECORDINGS:/recordings
    ports:
      - 9981:9981
      - 9982:9982
    devices:
      - /dev/dri:/dev/dri #optional
      #- /dev/dvb:/dev/dvb #optional
    container_name: tvheadend

These are the logs:

Clipboard01
Clipboard012

All other containers are working as they should. As said, I also tried with the reverse proxy (added the args - RUN_OPTS="--http_root /tv" to specify the alternative http webroot, otherwise I got a 502 bad gateway) this was my conf, but here I got the error with "Welcome to Nginx!" blank page:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name tvheadend.*;

    include /config/nginx/ssl.conf;

    location /tv {
        include /config/nginx/proxy.conf;
	resolver 127.0.0.11 valid=30s;
        set $upstream_tvheadend tvheadend;
	proxy_pass http://192.168.1.151:9981;
		
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
    }
}

Any suggestions? Thank you! I googled everything, no solution for me.

Missing DVB Setup Instructions (e.g. for Ubuntu LTS versions 14 / 16 / 18 ...)

linuxserver.io

Problem Description

First I would like to honor your great efforts for this project. It's really great work. Thank you very much.

Now to my problem: I'm trying to get your docker image running using a DVB PCIe TV Card (I know it's a bit old school, but well ...). Getting IPTV to run is very simple and easy, but DVB is the issue.

I've been installing my DVB driver successfully (tested on the host system with w_scan and found channels as expected). That works so far. (I can say that because I've also installed tvheadend manually on another partition on the same PC and everything works fine there.)

Then I downloaded your docker image and installed it with following command:

docker create --name=tvheadend --net=bridge -v ~/tvdata/config:/config -v ~/tvdata/recordings:/recordings -v /dev/dvb/adapter0:/dev/dvb/adapter0 -v /dev/dvb/adapter1:/dev/dvb/adapter1 -e PGID=1000 -e PUID=1000 -p 9981:9981 -p 9982:9982 --device=/dev/dri --device=/dev/dvb linuxserver/tvheadend

command for starting the image is: docker start tvheadend

Reasons for changes: I needed to add '-v /dev/dvb/adapter0:/dev/dvb/adapter0 -v /dev/dvb/adapter1:/dev/dvb/adapter1' and add the groups 'docker', 'video' and 'www-data' to my docker user (media) in order to make TV Headend recognize my DVB adapters and make docker and the TV Headend website http://localhost:9981 working. (I would be very grateful for a smarter solution.)

Now I've started to configure everything using the TV Headend website (where everything looked fine), but when I tried to scan for channels nothing is found. My conclusion to this behaviour is that the TV Headend process inside the docker image has insufficient permissions for /dev/dvb and I cannot figure out how to fix this issue. There is also very little information about how to map /dev/dvb correctly. I've tried to chown -R /dev/dvb by the media user and stuff, but nothing did work for me until now.

So I would suggest to provide a guide on how to get DVB running on Ubuntu 18 LTS properly. I could also help you with writing the documentation and doing the testing if you wish to.

Thank you very much for your help in advance. I'm looking foreward to getting this docker image to work.

System Information

Host OS: Ubuntu 18 LTS
Docker User: media (id=1000, with additional groups 'docker', 'video' and 'www-data')
DVB Card: TBS 6522 (dual tuner with 2x DVB-S/S2 and 2x DVB-T/T2 or DVB-C)

Additional System Information:

ls -la /dev/dvb/adapter0
insgesamt 0
drwxr-xr-x 2 root root 140 Aug 18 12:36 .
drwxr-xr-x 4 root root 80 Aug 18 12:36 ..
crw-rw----+ 1 root video 212, 0 Aug 18 12:36 demux0
crw-rw----+ 1 root video 212, 1 Aug 18 12:36 dvr0
crw-rw----+ 1 root video 212, 3 Aug 18 12:36 frontend0
crw-rw----+ 1 root video 212, 4 Aug 18 12:36 frontend1
crw-rw----+ 1 root video 212, 2 Aug 18 12:36 net0

Thanks, team linuxserver.io

Init stops at 30-config: executing

Hello guys,

i wanted to run you docker image at my home server.
I created a docker-compose for it:

tvheadend:
image: linuxserver/tvheadend
hostname: tvheadend
restart: always
volumes:
- ./tvheadend/config/:/config
- ./tvheadend/rec/:/recordings
environment:
- PGID=1000
- PUID=1000
networks:
core_net:

But the init process stops at:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _         ()
     | |  ___   _    __
     | | / __| | |  /  \
     | | \__ \ | | | () |
     |_| |___/ |_|  \__/

Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donations/

GID/UID

User uid: 1000
User gid: 1000

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...

after that nothing is happening an web gui is not reachable.

I also tried to direct run the image with:
docker run -d
--name=tvheadend
--net=bridge
-v /home/docker/docker/tvheadend/config/:/config
-v /home/docker/docker/tvheadend/rec/:/recordings
-e PGID=1000 -e PUID=1000
-p 9981:9981
-p 9982:9982
linuxserver/tvheadend

same issue.

I am using tag latest.

Can't locate object method "new" via package "JSON::XS"

Hello guys,

I installed the tvheadend docker on unRAID 6.5.0. When I wanted to configure XMLTV grabber I got an error. The command I used was:

docker exec -it tvheadend /usr/bin/tv_grab_huro --configure

The output is:

using config filename /config/.xmltv/tv_grab_huro.conf
Grab listings for which country?
0: Czech
1: Hungary
2: Romania
3: Slovakia
Select one: [0,1,2,3 (default=1)] 1
getting list of channels: Can't locate object method "new" via package "JSON::XS" (perhaps you forgot to load "JSON::XS"?) at/usr/bin/tv_grab_huro line 1239, line 1.

Then I thought maybe there is a problem in the "/usr/bin/tv_grab_huro" script, so I edited line 137 from "use JSON" to "use JSON::XS". The reason was the line 1239, where stands this:

my $json_data = (($DEFAULT_ENCODING !~ /utf-?8/i) && ($COUNTRY eq 'hu')) ? JSON::XS->new->utf8(0)->decode(encode($DEFAULT_ENCODING,decode('utf-8', $data))) : JSON::XS->new->utf8(0)->decode($data) or`

and tried to configure the XMTLV grabber again.
The output was:

Can't locate JSON/XS.pm in @ INC (you may need to install the JSON::XS module) (@ INC contains: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /usr/bin/tv_grab_huro line 137.
BEGIN failed--compilation aborted at /usr/bin/tv_grab_huro line 137.

So I tried to install the module with command:

docker exec -it tvheadend perl -MCPAN -e 'install JSON::XS'

The messages that I get:

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes]

ALERT: 'make' is an essential tool for building perl Modules.
Please make sure you have 'make' (or some equivalent) working.

Autoconfiguration complete.

commit: wrote '/config/.cpan/CPAN/MyConfig.pm'

You can re-run configuration any time with 'o conf init' in the CPAN shell
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/config/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/config/.cpan/sources/modules/02packages.details.txt.gz'
Database was generated on Wed, 18 Apr 2018 09:54:33 GMT
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/config/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /config/.cpan/Metadata
Running install for module 'JSON::XS'
Fetching with LWP:
http://www.cpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
Fetching with LWP:
http://www.cpan.org/authors/id/M/ML/MLEHMANN/CHECKSUMS
Checksum for /config/.cpan/sources/authors/id/M/ML/MLEHMANN/JSON-XS-3.04.tar.gz ok
'YAML' not installed, will not store persistent state
---- Unsatisfied dependencies detected during ----
---- MLEHMANN/JSON-XS-3.04.tar.gz ----
Canary::Stability [build_requires]
Running install for module 'Canary::Stability'
Fetching with LWP:
http://www.cpan.org/authors/id/M/ML/MLEHMANN/Canary-Stability-2012.tar.gz
Checksum for /config/.cpan/sources/authors/id/M/ML/MLEHMANN/Canary-Stability-2012.tar.gz ok
Configuring M/ML/MLEHMANN/Canary-Stability-2012.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Canary::Stability
Writing MYMETA.yml and MYMETA.json
MLEHMANN/Canary-Stability-2012.tar.gz
/usr/bin/perl Makefile.PL -- OK
Running make for M/ML/MLEHMANN/Canary-Stability-2012.tar.gz
MLEHMANN/Canary-Stability-2012.tar.gz
make -- NOT OK
No such file or directory
MLEHMANN/JSON-XS-3.04.tar.gz
Has already been unwrapped into directory /config/.cpan/build/JSON-XS-3.04-0
Warning: Prerequisite 'Canary::Stability => 0' for 'MLEHMANN/JSON-XS-3.04.tar.gz' failed when processing 'MLEHMANN/Canary-Stability-2012.tar.gz' with 'make => NO'. Continuing, but chances to succeed are limited.
Configuring M/ML/MLEHMANN/JSON-XS-3.04.tar.gz with Makefile.PL
Can't locate Canary/Stability.pm in @ INC (you may need to install the Canary::Stability module) (@ INC contains: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl .) at Makefile.PL line 4.
BEGIN failed--compilation aborted at Makefile.PL line 4.
Warning: No success on command[/usr/bin/perl Makefile.PL]
MLEHMANN/JSON-XS-3.04.tar.gz
/usr/bin/perl Makefile.PL -- NOT OK

So I found out that "make" is removed from docker, so I can't install modules.

I would like to ask you, to include JSON::XS module and if its necessary the Canary::Stability too

In summary:
Host OS: unRAID 6.5.0
Command what makes the problem: docker exec -it tvheadend /usr/bin/tv_grab_huro --configure
The messsage I get:

Can't locate object method "new" via package "JSON::XS" (perhaps you forgot to load "JSON::XS"?) at/usr/bin/tv_grab_huro line 1239, line 1.

The solution might be: adding module(s) JSON::XS (and Canary::Stability if necessary)

Thanks!
Daniel

xmltv.sock issue

linuxserver.io


Expected Behavior

Whenever I recreate/update the container, the socket under config/epggrab/xmltv.sock should be recreated to receive connection from tvheadend and other epg grabbers that support it

Current Behavior

Whenever I restart/recreate/update the container, the xmltv.sock becomes a folder somehow, and other epg grabbers cannot connect

Steps to Reproduce

  1. create tvheadend container
  2. enable the epggrab module
  3. link it with an epggrabber (webgrabplus, easyepg)
  4. restart the tvheadend container
  5. other epg grabbers cannot connect to xmltv.sock anymore, and it appears under linux as a folder
  6. the following commands solve this issue
admin $ rm -rf /docker/tvheadend/config/epggrab/xmltv.sock
admin $ touch /docker/tvheadend/config/epggrab/xmltv.sock

Environment

OS: Linux
CPU architecture: x86_64
How docker service was installed:
Does not matter.

My guess is that in the docker creation script additional lines need to be introduced, which check for the presence of xmltv.sock and if it throws TRUE, it should be deleted and a file should be recreated

Update xmltv

Hi, can we get a newer version of XMLTV utilities? Current image has 0.6.1, latest version is 0.6.3

Missing Python Requests module

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

/usr/bin/tvhmeta should request metadata without error from tvdb.com when adding a new recording

Current Behavior

/usr/bin/tvhmeta returns error "No module named requests" and no metadata is returned

Steps to Reproduce

  1. Check "Fetch artwork for new recordings" in 'Configuration' -> 'Recording' -> 'Artwork Settings' under the profile that you are using for recording
  2. Select show from EPG tab and choose 'Record'
  3. View logs to see error

Workaround is to run the following inside the container:

apk add py-pip
pip install requests

Environment

**OS: CentOS 8
CPU architecture: x86_64
**How docker service was installed: dnf

Command used to create docker container (run/create/compose/screenshot)

Docker logs

2020-02-06 20:59:30.508 spawn: 2020-02-06 20:59:30,507:ERROR:tvhmeta:100:Could not import module tv_meta_tmdb when searching for supports_movie: No module named requests
2020-02-06 20:59:30.508 spawn: Traceback (most recent call last):
2020-02-06 20:59:30.508 spawn: File "/usr/bin/tvhmeta", line 89, in _get_meta_grabbers_for_capability_common
2020-02-06 20:59:30.508 spawn: mod = import(module_name)
2020-02-06 20:59:30.508 spawn: File "/usr/bin/./tv_meta_tmdb.py", line 22, in
2020-02-06 20:59:30.508 spawn: import requests
2020-02-06 20:59:30.508 spawn: ImportError: No module named requests
2020-02-06 20:59:30.509 spawn: 2020-02-06 20:59:30,509:ERROR:tvhmeta:100:Could not import module tv_meta_tvdb when searching for supports_movie: No module named requests
2020-02-06 20:59:30.509 spawn: Traceback (most recent call last):
2020-02-06 20:59:30.509 spawn: File "/usr/bin/tvhmeta", line 89, in _get_meta_grabbers_for_capability_common
2020-02-06 20:59:30.509 spawn: mod = import(module_name)
2020-02-06 20:59:30.509 spawn: File "/usr/bin/./tv_meta_tvdb.py", line 29, in
2020-02-06 20:59:30.509 spawn: import requests
2020-02-06 20:59:30.509 spawn: ImportError: No module named requests
2020-02-06 20:59:30.512 spawn: 2020-02-06 20:59:30,511:ERROR:tvhmeta:100:Could not import module tv_meta_tmdb when searching for supports_tv: No module named requests
2020-02-06 20:59:30.512 spawn: Traceback (most recent call last):
2020-02-06 20:59:30.512 spawn: File "/usr/bin/tvhmeta", line 89, in _get_meta_grabbers_for_capability_common
2020-02-06 20:59:30.512 spawn: mod = import(module_name)
2020-02-06 20:59:30.512 spawn: File "/usr/bin/./tv_meta_tmdb.py", line 22, in
2020-02-06 20:59:30.512 spawn: import requests
2020-02-06 20:59:30.512 spawn: ImportError: No module named requests

Latest does not get updated anymore?

Hey,
the "latest" tag for the 4.3.xx version has not been rebuild for a month now. Only the old 4.2 gets a new build every week. Is there anything that blocks an updated 4.3 container and can we help get it fixed?

(The reason I ask is there is a sat epg bug in the current lsio-container 4.3 that has been fixed in the 4.3-git version in the meantime)

Not reachable by clients

Hello,

I am running the docker-image linuxserver/tvheadend in my local network.

Settings are:

  tvserver:
    image: linuxserver/tvheadend
    container_name: tvserver
    restart: always
    ports:
      - "554:554"
      - "9981:9981"
      - "9982:9982"
      - "9983:9983"
    expose:
      - "9981"
      - "9982"
      - "9983"
      - "554"
    devices:
      - /dev/dri
    volumes:
      - "./tvheadend/config/:/config"
      - "./tvheadend/recordings:/recordings"
    network_mode: host   # used for HDHomerun
    environment:
      - TZ=Europe/Berlin
      - PGID=1000
      - PUID=1000

I can access the WebGui on Port 9981, but no TVHeadend client software on Windows or iOS lists the server.

Any idea?

Latest Versions - IPTV Automatic Network no longer works

After updating to the latest docker TVHeadEnd no longer works on my Synology NAS using docker. As soon as I downgrade back to an older version like Stable 4.2 then it works again. I am using it via IPTV Automatic Network and the initial scan won't even work, can't via any channels. The Scan says "scan no data, failed" or something along those lines.

host network via docker-compose?

I have setup this image using docker-compose and what i beleive to be host network

 tvheadend:
    image: linuxserver/tvheadend
    container_name: tvheadend
    network_mode: host
    environment:
      - PGID=${PGID}
      - PUID=${PUID}
      - TZ=${TZ}
      - RUN_OPTS=run options here #optional
    volumes:
      - ${DOCKERCONFDIR}/tvheadend:/config
      - /mnt/Other_Stuff/DVRecordings:/recordings
    restart: unless-stopped

But I am unable to connect to connect on 9981, when I look in portainer there are no ports mapped, so I guess that makes sense, but you say to remove the port mappings so I did that...

Sure im just doing something stupid...

thanks

Request to record a program (from WebInterface) causes TVHeadEnd to crash

Synology DSM 6.1.4-15217 Update 5

2018-01-17 10:53:32.974 [ INFO] htsp: 192.168.1.16: Welcomed client software: Kodi Media Center (HTSPv29)
2018-01-17 10:53:32.975 [ INFO] htsp: 192.168.1.16 [ Kodi Media Center ]: Unauthorized access
2018-01-17 10:54:07.865 [ ALERT] CRASH: Signal: 11 in PRG: /usr/bin/tvheadend (4.3-943~g9b85e7b7c) [ff02558583846d5705f33bcf18cfda7f4b372c47] CWD: /run/s6/se
rvices/tvheadend
2018-01-17 10:54:07.865 [ ALERT] CRASH: Fault address 0 (Address not mapped)
2018-01-17 10:54:07.865 [ ALERT] CRASH: Loaded libraries: /usr/bin/tvheadend /usr/lib/libhdhomerun.so /lib/libssl.so.44 /lib/libcrypto.so.42 /lib/libz.so.1 /
usr/lib/libpcre2-8.so.0 /usr/lib/liburiparser.so.1 /usr/lib/libavfilter.so.6 /usr/lib/libavformat.so.57 /usr/lib/libavcodec.so.57 /usr/lib/libavutil.so.55 /li
b/ld-musl-x86_64.so.1 /usr/lib/libavresample.so.3 /usr/lib/libswscale.so.4 /usr/lib/libpostproc.so.54 /usr/lib/libswresample.so.2 /usr/lib/libva.so.1 /usr/lib
/librtmp.so.1 /usr/lib/libgnutls.so.30 /usr/lib/libbz2.so.1 /usr/lib/libxvidcore.so.4 /usr/lib/libx265.so.130 /usr/lib/libx264.so.148 /usr/lib/libvpx.so.4 /us
r/lib/libvorbisenc.so.2 /usr/lib/libvorbis.so.0 /usr/lib/libtheoraenc.so.1 /usr/lib/libtheoradec.so.1 /usr/lib/libopus.so.0 /usr/lib/libmp3lame.so.0 /usr/lib/
libvdpau.so.1 /usr/lib/libX11.so.6 /usr/lib/libva-x11.so.1 /usr/lib/libva-drm.so.1 /usr/lib/libp11-kit.so.0 /usr/lib/libunistring.so.2 /usr/lib/libtasn1.so.6
/usr/lib/libnettle.so.6 /usr/lib/libhogweed.so.4 /usr/lib/libgmp.so.10 /usr/lib/libstdc++.so.6 /usr/lib/libog
2018-01-17 10:54:07.865 [ ALERT] CRASH: Register dump [23]: fefefefefefefeff00005625f6f1cff00000000000000001000000000000000100005625f6feb42000005625fa0f14200
0005625f864b791000000000000000000000000000000008080808080808080000000000000000000005625fb9193c000000000000000000000000000000000000000000000000000007f9c3b64002
800007f9c4c58f80e000000000001024600000000000000330000000000000004000000000000000efffffffc7ffbba130000000000000000

No symlinks

A Bug ?

Thanks, team linuxserver.io

add epg for russian channels

is it possible in the future update of the docker for TVH to add an EPG for Russian channels?

There is an excellent working file. which, when the docker is updated, has to be added to the manual each time (dsm synology 6.2).
grabber-file I had attached to this message.
tv_grab_ru.zip
this TV program is perfect for Russian service iptv edem.tv.
In this TV program there are all federal TV channels that you can use for your viewing and for other services. In addition to the actual TV program, there are links to the logos of TV channels.

Recording time range setting

linuxserver.io

Thanks, team linuxserver.io

HTS Tvheadend 4.3-1804gebb096804
Build: 4.3-1804
gebb096804 (2019-09-20T04:52:00+0200)

With this building time range defining for auto recordings ( prior / after ) do not work - this will not recorgnized by TVH.

docker script:

docker container create --name=tvheadend -e PUID=0 -e PGUID=0 -e TZ=Europe/Berlin -p 9981:9981 -p 9982:9982 -v /var/lib/tvheadend/config/:/config -v /mnt/test/tvheadend/:/recordings --network=mein_Netzwerk --hostname=tvsrv -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --ip=172.18.1.5 --restart unless-stopped linuxserver/tvheadend:latest

permissions for sat>ip

linuxserver.io

Hello,

thanks for your great containers!

Host: Debian

Command:

docker run \
  --name=tvheadend \
  --net=host \
  -v /srv/Daten/dockerconfig/tvheadend:/config \
  -v /srv/DataPool/Video/TvHeadend:/recordings \
  -e PGID=1 -e PUID=1  \
  --device=/dev/dri \
  --device=/dev/dvb \
  linuxserver/tvheadend

for sat>ip tvheadend needs to be run as root, I think. Otherwise the port 554 is not being used by tvheadend and it reverts to a port that can be used by non-root users (9983).

That is why I set PID and GID to 1.

When I do that though, my dvb devices are not showing in tvheadend anymore though.
On the host, I have set these permissions:

root@homeserver:~/Docker/tvheadend# ls -l /dev/dvb
insgesamt 0
drwxrwxrwx 2 root video 120 Aug 4 10:07 adapter0
drwxrwxrwx 2 root video 120 Aug 4 10:07 adapter1
drwxrwxrwx 2 root video 120 Aug 4 10:07 adapter2
drwxrwxrwx 2 root video 120 Aug 4 10:07 adapter3

And in the container I see:

root@homeserver:/$ ls -l /dev/dvb
total 0
drwxr-xr-x 2 root root 120 Aug 4 10:40 adapter0
drwxr-xr-x 2 root root 120 Aug 4 10:40 adapter1
drwxr-xr-x 2 root root 120 Aug 4 10:40 adapter2
drwxr-xr-x 2 root root 120 Aug 4 10:40 adapter3
root@homeserver:/$ ps aux |grep tvh
201 root 0:00 s6-supervise tvheadend
204 bin 0:00 /usr/bin/tvheadend -C -c /config
295 root 0:00 grep tvh

Why is tvheadend not running as root and how can I change this?
Or alternatively: what would you recommend me to do?

Regards,
Hendrik

No HD Channels with Alpine 3.9

With the New Image (with alpine 3.9 as base) no hd channels works for me.
If i change the baseimage to alpine 3.8 back. Everything work like bevor.

In Kodi it says „No free Adapter“. Tvheadend only says „Restarting Channel ...“.

Adapter is a PCTV 461e. My docker Runs on a synology (x64)

Any idea what i can do?

Duplicate Recordings

I am using Debian 9 and the lastest docker-tvheadend container, I have never experienced this problem before when I have manually built TVHE.
I have set up a series record, to record the 'News at 10' on BBC1, but it appears to duplicate the recording on random days at the same time on the same channel. It seems very random.

duplicate recordings

seriesrecord

Any idea what is causing this

http error 400 on ios

Hi,

docker container seems to work well, great work done.

However the ios clients do have a problem, I get bad request 400 on the client.
With http Browser the access and watching is working

Here the logs, the ip in the logs is the client ip

2018-03-22 07:23:33.230 http: 10.33.0.110: HTTP/1.1 POST (3) /api/channeltag/grid -- 400
2018-03-22 07:23:33.230 http: 10.33.0.110: HTTP/1.1 GET (1) /api/serverinfo -- 400
2018-03-22 07:23:33.230 http: 10.33.0.110: HTTP/1.1 POST (3) /api/channel/grid -- 400
2018-03-22 07:23:33.231 http: 10.33.0.110: HTTP/1.1 GET (1) /api/status/subscriptions -- 400
2018-03-22 07:23:33.260 http: 10.33.0.110: HTTP/1.1 GET (1) /api/mpegts/network/grid?limit=99999999 -- 400
2018-03-22 07:23:33.261 http: 10.33.0.110: HTTP/1.1 GET (1) /api/status/inputs -- 400
2018-03-22 07:23:33.261 http: 10.33.0.110: HTTP/1.1 GET (1) /api/mpegts/mux/grid?limit=99999999 -- 400
2018-03-22 07:23:33.261 http: 10.33.0.110: HTTP/1.1 GET (1) /api/mpegts/service/grid?limit=99999999 -- 400
2018-03-22 07:23:33.295 http: 10.33.0.110: HTTP/1.1 GET (1) /api/profile/list -- 400
2018-03-22 07:23:33.306 http: 10.33.0.110: HTTP/1.1 GET (1) /config?op=loadSettings -- 400
2018-03-22 07:23:33.306 http: 10.33.0.110: HTTP/1.1 POST (3) /api/idnode/load -- 400
2018-03-22 07:23:33.306 http: 10.33.0.110: HTTP/1.1 POST (3) /api/channeltag/grid -- 400
2018-03-22 07:23:33.314 http: 10.33.0.110: HTTP/1.1 GET (1) /extjs.html -- 400
2018-03-22 07:23:34.267 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400
2018-03-22 07:23:35.249 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400
2018-03-22 07:23:36.231 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400
2018-03-22 07:23:37.227 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400
2018-03-22 07:23:38.233 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400
2018-03-22 07:23:39.229 http: 10.33.0.110: HTTP/1.1 POST (3) /comet/poll -- 400

xmltv.sock: chmod after spinup

Expected Behavior

After the container has started execute "chmod 666 epggrab/xmltv.sock"
This enables epggrabber from other containers to write to the socket

Current Behavior

Need to be done manually

XMLTV file grabber

Would it be possible to have your file grabber import/merge multiple sources please? Maybe using tv_merge/tv_sort?

Recording a Program causes memory usage to grow and grow.....Memory Leak ?

Recording a Program (or more than 1) causes memory to grow and grow at a rate roughly equivalent to the data being read from the stream and being written to disk (3MB every 2 seconds)
Megasat Sat>IP3 used as the source (in case it's relevant)

Synology DSM 6.1.4-15217 Update 5

No errors in the logs at all.

No symlinks

Thanks, team linuxserver.io

hangs when start to view channel /dev/dvb

What's is happening:
Tvheadend starts normally and it has been working before. This issue happen after a poweroutage and computer restarted, now it's not working anymore. Might happend something more that I can't figure out.

When I connect a client TvH-X or Kodi and start to view a channel, no image is displayed and the web-gui hangs (non-responsive).

I need to restart the docker container to get the GUI to work again.

Version and Configs
Version: HTS Tvheadend 4.2.8-4~g9f7ab681a
Docker-Compose

  tvheadend:
    image: linuxserver/tvheadend:release-4.2
    container_name: tvheadend
    restart: always
    volumes:
      - /home/kidkic/docker-services/webgrab/data/:/config/data
      - /home/kidkic/docker-services/tvheadend/config/:/config
      - /home/kidkic/docker-services/tvheadend/rec/:/recordings
    devices:
      - /dev/dvb 
    environment:
      - TZ='Europe/Stockholm'
      - PGID=1000
      - PUID=1000
    ports:
      - 9981:9981
      - 9982:9982

Set permissions on startup:

$ sudo crontab -e
@reboot chown kidkic:kidkic -R /dev/dvb/

Check user id

$ id kidkic
uid=1000(kidkic) gid=1000(kidkic) groups=1000(kidkic),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),113(sambashare),117(lpadmin),999(docker)

Logs

2019-02-02 17:21:59.022 [   INFO] http: 192.168.91.102: using ticket 82B6503DCAD1A82D48C188A55D4FEA9416BA47EA for /stream/channelid/71736214
2019-02-02 17:21:59.022 [   INFO] capmt: oscam: Starting CAPMT server for service "Viasat 4  HD" on adapter 1
2019-02-02 17:21:59.022 [   INFO] subscription: 0005: "HTTP" subscribing on channel "Viasat 4  HD", weight: 100, adapter: "Thor", network: "Sirius Astra", mux: "11265H", service: "Viasat 4  HD", profile="pass", hostname="192.168.91.102", client="AppleCoreMedia/1.0.0.18C54 (Macintosh; U; Intel Mac OS X 10_14_2; en_us)"
2019-02-02 17:21:59.022 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:21:59.023 [   INFO] capmt: oscam: normal socket shutdown
2019-02-02 17:21:59.023 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:22:02.022 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:22:02.023 [   INFO] capmt: oscam: normal socket shutdown
2019-02-02 17:22:02.024 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:22:04.938 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:22:04.939 [   INFO] capmt: oscam: normal socket shutdown
2019-02-02 17:22:04.939 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:22:07.840 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:22:07.841 [   INFO] capmt: oscam: normal socket shutdown
2019-02-02 17:22:07.841 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:22:08.015 [WARNING] epggrab: EIT: DVB Grabber - data completion timeout for 11265H in Sirius Astra
2019-02-02 17:22:08.015 [   INFO] subscription: 0001: "epggrab" unsubscribing
2019-02-02 17:22:08.045 [WARNING] epggrab: EIT: DVB Grabber - data completion timeout for 10778H in Thor
2019-02-02 17:22:08.045 [   INFO] subscription: 0003: "epggrab" unsubscribing
2019-02-02 17:22:09.045 [   INFO] mpegts: 10809H in Thor - tuning on Astra1
2019-02-02 17:22:09.053 [   INFO] subscription: 0006: "epggrab" subscribing to mux "10809H", weight: 4, adapter: "Astra1", network: "Thor", service: "Raw PID Subscription"
2019-02-02 17:22:10.744 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:23:04.581 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:23:07.581 [   INFO] capmt: oscam: mode 5 connected to 192.168.91.10:8861 (single)
2019-02-02 17:23:07.581 [   INFO] capmt: oscam: normal socket shutdown
2019-02-02 17:23:07.582 [   INFO] capmt: oscam: Automatic reconnection attempt in in 3 seconds
2019-02-02 17:23:07.737 [   INFO] subscription: 0005: "HTTP" unsubscribing from "Viasat 4  HD", hostname="192.168.91.102", client="AppleCoreMedia/1.0.0.18C54 (Macintosh; U; Intel Mac OS X 10_14_2; en_us)"
2019-02-02 17:23:44.964 [WARNING] mpegts: too much queued table input data (over 2MB), discarding new
2019-02-02 17:23:55.035 [WARNING] mpegts: too much queued table input data (over 2MB), discarding new

Checking devices, I have 2 usb dvbsky s960

$ dmesg | grep dvb
[  100.484031] usb 1-2: dvb_usb_v2: found a 'DVBSky S960/S860' in warm state
[  100.484089] usb 1-2: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[  100.484095] dvbdev: DVB: registering new adapter (DVBSky S960/S860)
[  100.485464] usb 1-2: dvb_usb_v2: MAC address: 00:17:42:54:96:0c
[  100.580044] Registered IR keymap rc-dvbsky
[  100.580634] usb 1-2: dvb_usb_v2: schedule remote query interval to 300 msecs
[  100.580636] usb 1-2: dvb_usb_v2: 'DVBSky S960/S860' successfully initialized and connected
[  100.776094] usb 1-12: dvb_usb_v2: found a 'DVBSky S960/S860' in warm state
[  100.776313] usb 1-12: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[  100.776318] dvbdev: DVB: registering new adapter (DVBSky S960/S860)
[  100.777569] usb 1-12: dvb_usb_v2: MAC address: 00:17:42:54:96:0c
[  100.835931] Registered IR keymap rc-dvbsky
[  100.836884] usb 1-12: dvb_usb_v2: schedule remote query interval to 300 msecs
[  100.836885] usb 1-12: dvb_usb_v2: 'DVBSky S960/S860' successfully initialized and connected
[  100.836946] usbcore: registered new interface driver dvb_usb_dvbsky
[445474.221346] m88ds3103 4-0068: downloading firmware from file 'dvb-demod-m88ds3103.fw'
[445475.246926] m88ds3103 2-0068: downloading firmware from file 'dvb-demod-m88ds3103.fw'

Typo in Documentation /dev/drb

There is a small typo in the docker and docker-compose command.
--device /dev/drb:/dev/dvb

Should be /dev/dvb:/dev/dvb

Hope this helps someone.

Picons don't load

I'm having some hard time to make picons work. I mapped /picons to host, and added the picons there. TVH finds the picons, but they are not displayed in EPG view or Kodi.
Any idea where to start investigating?
Thanks

403 Forbidden

Hi, Just installed, I get a "403 forbidden" in host:9981

Log on docker says:
[ ERROR] http: 10.10.10.168: HTTP/1.1 GET (1) /extjs.html -- 403
I used sample docker-compose, with no "RUN_OPTS"
Did i missed something?

I used to run tvheadend but not in docker...

OTA-EPG grabber fails in build 136

Hey guys,

first of all thank you so much for mainaining your superb range of docker linuxservers, including the tvheadend one here which has been working flawlassly so far!

Unfortunately, in my SAT>IP setup (Digibit R1 with satip-axe firmware), the current release-4.2 build (tagged 136) does provoke some sort of error when running the OTA-EGP grabber. The webif then does not show any input stream status any more, clients cannot connect and eventuelly the log will get flooded with messages like

mpegts: too much queued table input data (over 2MB), discarding new.

This was, however, the only kind of error message after the initial log showed my 4 satip receivers tuning into the first epggrab locations.

I did then revert to build (tag) 135, which works flawlessly and OTA-EGP grabbing finished without problems.

My docker is running on a Debian Stretch host (Xeon E3-1220V2) with Linux kernel 4.9.0-4-amd64 (#1 SMP Debian 4.9.65-3 (2017-12-03) x86_64 GNU/Linux).

I would very much appreciate any input into how to fix this.

Best, wrzlbrmpft

/dev/dvb has incorrect permissions

/dev/dvb is owned by root and can't be read by tvheadend which resulted in tvheadend not finding my DVB-C card. Changing permissions of /dev/dvb fixed that for me.

docker create \
  --name=tvheadend \
  --net=bridge \
  -v /xxx/config:/config \
  -v /xxx/recordings:/recordings \
  -e PGID=1010 -e PUID=1010  \
  -p 9981:9981 \
  -p 9982:9982 \
  --device=/dev/dvb \
  linuxserver/tvheadend

Fixed it by:

chown -R abc /dev/dvb
pkill tvheadend

Running docker 17.03.0-ce with zfs on Ubuntu 14.04.

Is that the way to go or did I miss something?

Add socat or netcat to container?

Hi,

Would it be possible to add socat or netcat to this container? I am attempting to write guide data to xmltv.sock. But, the busybox version of nc does not support writing to sockets.
I'd like to be able to do one of the following;
cat xmltv.xml | socat - UNIX-CONNECT:/config/epggrab/xmltv.sock
or
cat xmltv.xml | nc -w 5 -U /config/epggrab/xmltv.sock

Thanks :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.