![]() |
OpenDCT: An open source digital cable tuner.
OpenDCT is now available to the public! :)
The latest stable installer can be found on Bintray. https://api.bintray.com/packages/ope...s/download.svg The project source code and some useful installation and configuration information can be found on GitHub. The minimum Java version is 1.7. InfiniTV 4 users must be on the very last beta firmware from Ceton to be able to use OpenDCT. On Windows, I recommend the 32-bit (x86) version unless you actually have 64-bit Java runtime installed. If you don't have 64-bit runtime installed and you install the 64-bit version of OpenDCT, you will not be able to start OpenDCT successfully. If you run into issues with Java Service Wrapper being unable to find your Java runtime, you will need to edit wrapper.conf under C:\Program Files [(x86)]\OpenDCT Authors\OpenDCT\jsw\conf\wrapper.conf to contain the complete path to your installed runtime. Most people should not need to do this. On Linux, I recommend downloading the architecture of your distribution. For the first run on any platform run OpenDCT on the console first. This is because it needs to detect your devices and populate the opendct.properties file. It will also immediately show if you have problems. On Linux there is a script called ./console-only and the configuration files can be found under /etc/opendct/conf. On versions 0.4.17-Beta and earlier configuration files are located under /opt/opendct/conf. On Windows, there is a shortcut called OpenDCT Run as Console and the configuration can be accessed by the shortcut OpenDCT Properties. Press Ctrl-C to stop the console after you see that it found your devices or just wait 30 seconds, then press Ctrl-C. It will shutdown cleanly. The next major release will replace manually editing the properties file with a web interface. After you have done this, take a look at the Configuration section on GitHub for details on how you can limit the devices that OpenDCT will initialize and how to configure SageTV to discover OpenDCT. If you're having trouble getting started, many people have found this post by Daweeze very helpful. The Windows installer will do upgrades so it is unnecessary to uninstall before installing a new version. It is however necessary to stop the service before upgrading. This post by KeithAbbott should help you out if you're interested in backing things up before upgrading. If you delete opendct.properties, make sure you make a note of what you have changed before you delete it. Here are a few properties not on the GitHub page that might look interesting with their default values included if possible. This is not an exhaustive list, but it covers the basics.
New Features in 0.4
New Features in 0.5 CCExtractor Options:
Dynamic Consumer Options:
Generic HTTP Capture Device:
|
Great job easy to setup ... I set it on my test machine channel changes are quick. Setup was Simple.... no artifacts.
One thing that I do not like about it is if I have the tuners setup for Sagetv and I am watching using another program and PC ... This particular network encoder just gives a no signal and hangs it will not go to the next tuner. The primenetencoder unlocks that tuner and takes control of it ... Which I prefer because if I have a tuner assigned to SageTV I want Sagetv to take control of it. The way it is now it will lead to missed recordings. Maybe you can add a user option to unlock and take control of the tuners if it needs to. |
That interesting. When I was testing HDHomeRun tuner locking features, it looked like if a different IP address tried to unlock the tuner than the IP address that originally locked it, it would not be allowed to unlock the tuner. Since I don't use my Prime to the fullest, I wasn't aware that other programs used to view streams from it directly also locked the tuner. I'll see what I can do.
|
Quote:
Code:
12/15/2015 08:32:37 - Start commmand received: START PrimeNetEncoder 13147C7B-0 Digital TV Tuner|459979109|735|2900394314216|C:\Users\epere\Videos\SageTV\SportsCenter-221589-1.ts|Great |
Quote:
|
Quote:
|
Does this collect the data like SageDCT by recording the stream directly to the drive or does it run it through ffmpeg to clear the errors that comcast seems to introduce?
|
Quote:
Quote:
|
I found a good post from Silicondust about sending 'force' instead of 'none' to force the tuner to unlock. I did a few tests and the new feature is working very well. You'll notice there is a new option to enable or disable this in the first post.
Also I added some firewall configuration convenience for those using the default firewalls for their respective platforms. Now we are at v0.3.8. |
Quote:
Personally, it's on no consequence to me, as I have no need to watch anything outside of Sage - I just thought I'd suggest the best architecture that would work best for those that do. |
Quote:
Not only for Viewing but then I could use my 2 Primes in SageTV and HdHomerunDVR right now I have 1 allocated to SageTV and 1 allocated to HDHomerunDVR. The HDHomerun DVR knows when Sage is using a tuner but Sage does not know when the DVR is using a tuner hence I have to segregate them. SageTV is the only one that does this. NEXTPVR Mediaportal and others easily share the tuners and know when they are in use. |
Can you share a few bullets to help me compare/understand the difference between this and PrimeNetEncoder? What are the benefits of one tool over the other?
Thank you |
To be clear I actually like the idea. It just sounds like it will likely take a lot of tweaking to get it just right, especially since we don't want to introduce massive delays while checking for what tuner we can use. The tuners already have a sense of being locked internally for offline channel scanning that doesn't interfere in any significant way in the sense that if you didn't know it was happening, you wouldn't suspect it was happening as your shows are recording or if you try to tune into live TV. To accommodate this preference I would add checking for an external lock and based on that checking each device until it finds one that isn't locked. Then as you suggested falling back to the highest merit device that's not locked internally even if it's locked externally.
Since I mentioned it. There is what I will call an experimental feature you can enable that will do weekly offline scans by default. The timing is set in the lineup properties. The capture devices by default don't volunteer to do this scan. If there are no devices set to do the scan, the scan simply doesn't happen. This scan results are logged in the lineup and if you do a channel scan in SageTV the results are referenced and returned. The only big issue I have is that SageTV will only request 159 channels, then it stops. It would be a huge help for someone to increase that to maybe double or triple that value. You tell it that you're done by responding ERROR, so high numbers won't leave you waiting for SageTV to stop asking if there's more. Also that 159 channels is literally 159 tunable channels which works out well for my ClearQAM devices only. In other words when SageTV asks for 1, you can return 2 if that's a tunable channel. I also think it would be really cool to automate when SageTV tells you that you have a new channel to do an offline test to see if you can get the channel and react accordingly. I am aware that the Prime has it's own scan that it can do across all 3 tuners, but during the scan you can't do anything else. Also OpenDCTs offline scan can span multiple devices; I have tested across 7. Also the end result when in ClearQAM mode is less than desirable. Yes you can tune everything it found, but you have no idea what these 5xxx numbers correlate with by any reasonable sense. At least when the HDHomeRun original comes back with results, they have numbers that are always consistent. :) |
Quote:
I'm sure there are some other things I'm missing here, but this project has the potential to grow because it was designed for it and I have a lot of energy, so I'm positive it will become even more useful in the future. I also want to add that I have a lot of respect for the other projects here on SageTV. Those project are what inspired me to finally just do something and give back in a sense. |
Seems to be an opportune time to bring this up as Charter TV services are down and Sage is throwing a fit (freezes for 5 to 10 minutes at a time when a favorite recording tries to launch, even longer with multiple favorites launching simultaneously) when tuners can't tune a channel properly...
Scenario 1: (2) of (3) available tuners goes down, and let's say that the (2) tuners that went down had the highest merit (used first). How long would it take to recover from the (2) lost tuners and get the 3rd tuner running? Scenario 2: (3) of (3) tuners go down, no cable service. Can the user still watch anything in the [non-live-tv] media library without interruption? |
I noticed with PrimeNetEncoder that there was some user intervention upon setup to get the encoder kicked off before SageTV on a system bootup. Does this service get itself up and running before Sage on a restart?
|
What's the typical time required to change a channel if someone is channel surfing?
|
Scenario 1:
Sage has to be told that a tuner is offline for it to reconfigure its scheduling. This CAN be done with network encoders, if they stop responding to NOOP calls. The issue is how does the network encoder know that a service is not there unless it actively tries to tune to it, and monitor the stream to see if it is there. Scenario 2: Sage doesn't in any way use the tuner to watch recorded content, so a tuner being down doesn't affect media playback at all. |
Scenario 2 clarification: A test for this would be to start watching a program (recorded yesterday) on an extender, schedule another program to start recording in 5 minutes, and pull the plug on the cable. Sage will freeze for 5 to 10 minutes at a time while it tries to tune the new channel (this is with SageDCT). Playback on the extender ceases while Sage tries to get its bearing over the next 5 to 10 minutes.
|
Quote:
|
I've had this happen countless times ... whenever there is a halted recording due to some issue with the cable feed or the Prime tuner failure. If Sage can't tune the channel, it seems to be spinning circles on all clients and the server GUI until the tuning failure is resolved. This would eventually be accompanied by a System Message "Recording Missed Due to Capture Device Failure" followed by a (x8) or a (x19) for example. When this occurs, Sage is completely frozen while it's trying to work out the re-tuning and consecutive failure on the re-tune, which can last for 5 to 10 minutes in my experience.
Fuzzy, it's hard to imagine that you've never had a halted recording like the one described above? From a programming standpoint, I supposed it would be referred to as Sage/Tuner error handling when there is a signal/feed problem from the cable company perhaps? |
I will say that this was a rare (if ever) occurrence with my HDHR clear qam tuners, and has only come about with the advent of the cablecard tuner (on SageDCT). We probably weren't using the cablecard tuners 10+ years ago.
|
Quote:
Quote:
Quote:
|
It may be some problem in the way sageDCT handles it, if for some reason it stops responding to network encoder requests while the tuning request is trying to resolve - I'm not sure - but at the same time, I am very rarely on any 'server GUI's'.
|
I agree. SageDCT stops responding to anything while it tries to resolve the request, but in the process, it locks up the GUI because SageTV seems to have a very close relationship between clean network communications and GUI responsiveness. This makes sense to a point, but I don't like when things slow down just because a tuner is timing out when SageTV is trying to connect to it; which has nothing to do with me playing a movie for example.
|
Quote:
|
1 Attachment(s)
Hey there, I've been a long time SageTv user and I am trying to setup a new machine with OpenDCT. I am having a problem getting it running with an InfiniTV Eth6. Here is the console log, I am trying to use tuner 5 and 6 on this system and I keep getting "No Signal" when trying to tune a channel. If there is different way to post issues with OpenDCt let me know. It's been a long time since i've posted to the forums.
And Thank You to everyone that is working on OpenDCT, i'm excited for it. |
I tested it in my production environment that has 2 NICS and 127.0.0.1 does not work ... If I change to the correct IP it reverts back to 127.0.0.1....
Also it picked up my test machine as a network encoder and had the IP of my test machine not the one in my production PC. So it appears that it looks for network encoders you have all over the network. I have Primes hooked up to each NIC .... but the main NIC OpenDCT is picking up as 127.0.0.1 and when I go to tune it gets no signal. I need to be able to generate the correct IP not 127.0.0.1. It works fine in Primenetencoder with 2 NICS because Josh setup an override in the properties file. From PrimeEncoder notes. 2. Added an local address override to the properties file. This is to workaround some issues with certain Linux distros, and possibly machines with multiple IP addresses |
I'm getting the No Signal message too and I'm seeing the 127.0.0.1 ip addresses as well.
All my pcs and nas devices are at 10.0.0.xxx ip addresses fyi. |
Did you try stopping the service and changing the value of sagetv.use_automatic_loopback= to false?
|
Quote:
No good it keeps changing my IP from 10.0.0.13 to 127.0.0.1 even if I shutdown everything and make the change in sage.properties ... once I start it changes it to 127.0.0.1. |
Quote:
What you can do in the mean time that might work out is to stop the service, then change upnp.dct.http_tuning=true to false. Quote:
Quote:
|
Quote:
Ok thanks I will look at the readme. |
I tried changing upnp.dct.http_tuning=false - still "No Signal"
I tried changing sagetv.use_automatic_loopback=false - still "No Signal" I do have two NICS on this machine. The on-board nic is not plugged in and is disabled. I have an add-in card that I am using. I keep trying to change the NIC's priority in control panel but it keeps making the on-board nic above the add-in card. When I get home I will switch the cables around and test with on the on-board nic. Here is the run down of the machine if it helps. i5-2500k 8gb Ram Windows 10 64bit Java 1.7 32bit SageTV 7.1.9 LAV Filters Silicon Dust and Ceton drivers installed |
Quote:
|
I should clarify that the http_tuning is just an InfiniTV thing. You can turn off HDHR tuning (upnp.dct.hdhr_tuning=false), but then you lose the locking. It will use UPnP instead like SageDCT.
|
I tried both true and false for sagetv.use_automatic_loopback. My understanding is that if it's running on the sage server pc loopback should be true?
The 127.0.0.1 happens to be the web page address of my plex web interface. Probably used for lots of things though. No Sgnal still persists. I'll give sagetv.device.global.only_devices_csv= a try after recordings finish tonight. |
Is there even a reason to bind to specific network addresses? Just let the route stack deal with it.
|
I got a change to open up the code and I'm not sure how it got passed us; probably because we never had it cause an issue, but I was not excluding loopback devices from the subnet matching function. I fixed that and also added a manual override at the "parent" level which basically means you don't need to change the IP address for every single tuner on the same device. The next version which I will try to get out later tonight will have the property sagetv.device.parent.<unique_id>.local_ip_override= that will be pre-populated with the detected value, but can be changed if needed. I suspect with these changes in place it won't be needed though.
|
Quote:
1) We need to know that it needs that interface for coming out of standby. 2) When receiving UDP packets, you need to explicitly tell the Prime what IP address and port to send them to. Ditto for InfiniTV when not using the RTSP protocol. |
All times are GMT -6. The time now is 01:18 PM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.