SageTV Community  

Go Back   SageTV Community > Hardware Support > Hardware Support
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

Hardware Support Discussions related to using various hardware setups with SageTV products. Anything relating to capture cards, remotes, infrared receivers/transmitters, system compatibility or other hardware related problems or suggestions should be posted here.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 12-15-2015, 01:32 AM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
OpenDCT: An open source digital cable tuner.

OpenDCT is now available to the public!

The latest stable installer can be found on GitHub.

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.
  • sagetv.device.global.required_devices_loaded_timeout_ms=30000
    This is the amount of time allowed in milliseconds to pass while waiting for the required number of devices before the program will exit with a failure. This timeout will only happen if sagetv.device.global.required_devices_loaded_count is higher than 0.
  • sagetv.device.global.required_devices_loaded_count=0
    This is the number of devices that need to be detected and loaded before the required timeout. This must be the total number of devices OpenDCT normally detects and loads for standby support to work correctly. If this value is left at zero, OpenDCT will just return failures to SageTV when it asks for a device that has not been detected yet because it has no way to know if it should have that device or not. If you are not using standby changing this parameter will also help at startup because it will make OpenDCT hang onto any tuning requests from SageTV until all of the devices have been loaded.
  • hdhr.enabled=false
    If set true, this will enable HDHomeRun native discovery and at the moment doesn't do anything because we detect all devices currently via UPnP even if that is not the method we will actually use for tuning.
  • hdhr.locking=true
    If set true, this will enable HDHomeRun locking. This will only work if the HDHomeRun device is being tuned using its native protocol. The native protocol is used by default.
  • sagetv.device.<unique_id>.always_force_external_unlock=false
    If set true, and locking is enabled, this will force the requested HDHomeRun device to become locked by OpenDCT. This will only work if the HDHomeRun device is being tuned using its native protocol. The native protocol is used by default.
  • pm.enabled=true
    If set true, only on Windows, this will allow OpenDCT to gracefully handle the computer entering and exiting standby. There is provisioning for other operating systems, but no actual implementation.
  • sagetv.device.<unique_id>.device_name=
    You can change the names of any discovered device. You must be careful to not rename a device to the same name as another device. This will result in the first discovered device loading and the second discovered device not loading.
  • sagetv.device.parent.<unique_id>.consumer=opendct.consumer.FFmpegTransSageTVConsumerImpl
    This is the implementation to be used for streaming to SageTV. The currently valid values for this property are the default, opendct.consumer.RawSageTVConsumerImpl and opendct.consumer.MediaServerConsumerImpl (new in 0.5 and only uses media server). Parent entries cover an entire device. Right now this is for convenience, so you don't need to set this value for each tuner. It will probably change once we are using a web interface. opendct.consumer.FFmpegSageTVConsumerImpl has been deprecated as of 0.4.
  • sagetv.device.parent.<unique_id>.http.producer=opendct.producer.HTTPProducerImpl (0.5 default: opendct.producer.NIOHTTPProducerImpl)
    This is the implementation to be used for receiving content from devices with HTTP capabilities. opendct.producer.NIOHTTPProducerImpl was added as of 0.5.
  • sagetv.device.parent.<unique_id>.lineup=
    These lineups are automatically generated based on the available devices. This allows you to do things like use the lineup from you InfiniTV device that actually has a CableCARD to look up the frequency and program for any ClearQAM device. The lineup files are located under lineups in the configuration directory and are updated by default every 8 hours.
  • sagetv.device.parent.<unique_id>.local_ip_override=
    This is the local interface IP address. It is not populated by default. If OpenDCT is detecting your local IP address that communicates with this remote device incorrectly, you can override it here.
  • consumer.ffmpeg.upload_id_enabled=false
  • consumer.raw.upload_id_enabled=false
    If set true, these will use the Media Server (upload id) feature of SageTV instead of writing directly to the file when recording.
  • sagetv.use_automatic_loopback=true
    If set true, OpenDCT will detect if it is running on the same computer as SageTV and use the loopback interface when sending PROPERTIES.
  • upnp.dct.fast_tuning=false (no longer available in 0.5)
    If set true, this will enable the tuner to always be in PLAY mode with RTSP configured. When the command STOP is received, the channel is tuned to 0 or if the device is ClearQAM, it will tune to the frequency 0. This improves tuning time by as much as 500ms.
  • upnp.dct.http_tuning=true (no longer available in 0.5)
    If set true, this uses the same "tricks" as fast_tuning, but this uses the forms on the web interface to tune into channels instead of the UPnP interface. This method is even faster. This method is also the only way to tune when using an InfiniTV device in ClearQAM mode (no CableCARD). Even if the value is false, it will be overridden just for ClearQAM. This is only used on InfiniTV devices. It has no effect on tuning the HDHomeRun Prime.
  • upnp.dct.hdhr_tuning=true (no longer available in 0.5)
    If set true, this will use the HDHomeRun native protocols for tuning. This is the fastest possible way to tune the HDHomeRun Prime. This is the only method used to tune the Prime when it is in ClearQAM mode. Even if the value is false, it will be overridden just for ClearQAM. This setting has no effect on InfiniTV devices.
  • upnp.qam.automap_reference_lookup=true (replaced the the global option channels.qam.automap_reference_lookup=true in 0.5)
    If set true, ClearQAM devices will check all available lineups for frequency and program information if they don't already have it and then update their own lineup with the discovered information when a channel is requested.
  • upnp.qam.automap_tuning_lookup=false (replaced the the global option channels.qam.automap_tuning_lookup=true in 0.5)
    If set true, ClearQAM devices after not being able to find the frequency and program for the requested channel on any lineup, it will select a currently not in use tuner that also has a CableCARD installed to tune the channel and get the frequency and program that way. If all tuners are in use, it will fail.

New Features in 0.4
  • Tuner Pooling.
    This new feature enables OpenDCT to intelligently select a tuner based on merit and lock status in that order. It does two passes over the tuners. The first one tries to find the highest merit tuner that is not currently in use by SageTV; it checks each one in order to see if it's locked. If they are all either in use or locked, it then it goes through a shorter list of tuners not in use by SageTV, but locked and checks if it's allowed to unlock any of them forcefully. If it's not allowed on any of them, then it gives up. These locked checks are surprisingly fast. Since the InfiniTV devices do not have a locked indication like the HDHomeRun Prime devices, enabling pooling with only InfiniTV devices will just remap them based on merit.
    To enable the pooling feature change the property pool.enabled from false to true.
    Because of this new feature, the force unlock feature is now set per capture device. To enable forced unlocking, change the value of sagetv.device.<unique_id>.always_force_external_unlock to true for each device that you want this feature enabled on. The global setting no longer has any effect.
    Merit is set by changing the value of sagetv.device.<unique_id>.encoder_merit. Higher numbers mean higher priority. This is also the merit that will be sent on discovery.
    Pools are automatically assigned based on capture device type the first time you run OpenDCT. You can change the pools by changing the value of sagetv.device.<unique_id>.encoder_pool to another name for all of the capture devices that you want to put into a different pool. The name is case sensitive. Also be sure to not have any extra spaces. I highly do not recommend putting capture devices that cannot tune the same channels into the same pool. It will create a problem per paragraph two in the issue created for this feature.
  • Early Port Assignment.
    When this is enabled, OpenDCT will immediately (< 500ms from startup) open any ports assigned in opendct.properties. For most people this will just be port 9000. Set the property sagetv.early_port_assignment to true to enable this feature.
    If you are using this feature, just like standby, you must set sagetv.device.global.required_devices_loaded_count to match the total number of capture devices OpenDCT should expect to be detected and loaded. If you do not set this property and SageTV makes a tuning request before anything has been detected, OpenDCT will not know that it should hang onto that request and the request will just return ERROR to SageTV.
  • HDHomeRun Prime Channel Auto-Enabling.
    This is enabled by default. It can be disabled by setting channels.prime.enable_all_channels to false.
    The process of importing these channels already happens one minute after startup and every 8 hours by default in OpenDCT. The change is that now unless the channel actually indicates that it required DRM to tune, OpenDCT assumes it's tunable. What this translates into directly is you can now do a channel scan within SageTV and import your last channel scan from your HDHomeRun Prime.
  • UPnP Ignore Interface by IP or Interface Name
    You can now specify a comma separated list of local IP addresses or interfaces to prevent UPnP from using them.
    You can provide a comma separated list of interfaces on the property upnp.service.configuration.ignore_interfaces_csv. You will need to reference the log to figure out what interfaces you want to list here. The ones being used are listed very early in opendct.log. This difficulty is the reason why the IP address option is available too.
    You can provide a comma separated list of IP addresses on the property upnp.service.configuration.ignore_local_ip_csv.
  • Exclusive Server Address.
    If you set the property sagetv.device.<unique_id>.exclusive_server_address to the IP address of the server intended to use it, when PROPERTIES are requested if the request did not come from this IP address, the capture device is not returned. This should help some people clean up tuner discovery, since you can now effectively make specific tuners only visible to a specific server.
  • Transcoding.
    Set the software transcoding profile by changing sagetv.device.<unique_id>.transcode_profile to one of the available profiles are stored under C:\ProgramData\OpenDCT\config\transcode on Windows and /etc/opendct/conf/transcode on Linux. See profile_example.properties for help on how you can create your own. Do not include the .properties extension when setting the profile.

New Features in 0.5

CCExtractor Options:
  • consumer.ffmpeg.ccextractor_all_streams=true
    This enables extracting of both CC1 and CC2. If this is off, it will output only CC1. You will likely want to leave this set to true.
  • consumer.ffmpeg.ccextractor_custom_options=
    This can be any combination of valid CCExtractor options with the exception of -12, -1, -2, -in=, -out= and -o. Some people might want to change how roll-up captions are written for example. These options are sanitized to prevent execution of other programs, so you will not be able to do that from this option.
  • consumer.ffmpeg.ccextractor_enabled=false
    This enables CCExtractor when set to true.

Dynamic Consumer Options:
  • Channel Range Notation
    Channel ranges are defined by a number then a hyphen followed by another number (8-10). Multiple ranges are separated by a comma (13-15,8-10). ATSC channels are defined by a number (frequency channel) then a hyphen followed by a the channel number then a hyphen followed by the sub-channel number (50-8-1). The use of two hyphens automatically makes it literally a channel instead of a range.
    Ex. 8-10,50-8-1,13-16 will match the following channels: 8, 9, 10, 50-8-1, 13, 14, 15, 16
  • consumer.dynamic.channels.ffmpeg=
    These are the channels that will always be assigned to the transcoding FFmpeg consumer.
  • consumer.dynamic.channels.raw=
    These are the channels that will always be assigned to the raw consumer.
  • consumer.dynamic.default=opendct.consumer.FFmpegTransSageTVConsumerImpl
    This is the consumer always used if the channel currently tuned doesn't match the channels under consumer.dynamic.channels.ffmpeg or consumer.dynamic.channels.raw.

Generic HTTP Capture Device:
  • Creating Capture Devices for Editing
    Create names for them under the property generic.http.device_names_csv in opendct.properties separated by commas. Start the OpenDCT service, let it run for a few seconds, then stop it. You should now see entries in opendct.properties that have the property sagetv.device.<unique_id>.device_name matching the name of the devices you requested. The names can really be anything, just don't use commas in the names for what should be obvious reasons.
    Ex. generic.http.device_names_csv=Encoder 1,Encoder 2
  • sagetv.device.<unique_id>.channel_padding=
    This is the minimum length to be passed for the %c% variable. Values shorter than this length will have zeros (0) appended to the left of the channel to make up the difference. (Ex. 8 becomes 008 if this is set to 3.)
  • sagetv.device.<unique_id>.custom_channels=
    This is an optional semicolon delimited list of channels you want to appear in SageTV for this device. This is a shortcut around creating an actual OpenDCT lineup. If there are any values in the field, they will override the lineup assigned to this capture device on a channel scan. This provides an easy way to add channels if you are not actually going to use guide data.
  • sagetv.device.<unique_id>.pretuning_executable=
    This is an optional executable that if defined, will always be run before actually tuning the channel. You can add the channel as an argument by using the variable %c%. Don't forget to escape backslashes (\ needs to be \\).
  • sagetv.device.<unique_id>.stopping_executable=
    This is an optional executable that if defined, will always be run when the capture device is told to stop. You can add the last tuned channel as an argument by using the variable %c%. Don't forget to escape backslashes (\ needs to be \\).
  • sagetv.device.<unique_id>.streaming_url=
    This is a URL that points directly to an audio/video stream. If you provide %c% in the URL, it will be replaced with the channel requested by SageTV. HLS and m3u8 playlists are not supported at this time.
  • sagetv.device.<unique_id>.streaming_url2=
    This is an alternative URL that points directly to an audio/video stream. If you provide %c% in the URL, it will be replaced with the channel requested by SageTV. This stream will only be used if a channel matches one of the ranges in streaming_url2_channels. HLS and m3u8 playlists are not supported at this time.
  • sagetv.device.<unique_id>.streaming_url2_channels=
    This is the channel ranges that will use the alternative URL. This uses the same formatting as the dynamic consumer channel ranges.
  • sagetv.device.<unique_id>.tuning_delay_ms=0
    This is the amount of time in milliseconds to wait after the program associated with tuning_executable has returned.
  • sagetv.device.<unique_id>.tuning_executable=
    This is an optional executable that if defined will be used to change the channel being streamed. Insert %c% where the channel needs to be provided to the executable. If %c% isn't provided, but this property is defined, the channel number will be appended as a final parameter. Don't forget to escape backslashes (\ needs to be \\).
    Ex. sagetv.device.<unique_id>.tuning_executable=/full/path/tune 0 %c%
    Ex. sagetv.device.<unique_id>.tuning_executable=C:\\Full\\Path\\tune.exe 0 %c%
    Ex. sagetv.device.<unique_id>.tuning_executable=cmd /c C:\\Full\\Path\\tune.cmd 0 %c%
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG

Last edited by EnterNoEscape; 05-10-2021 at 07:09 PM. Reason: Updated some information about Generic HTTP.
Reply With Quote
  #2  
Old 12-15-2015, 09:35 AM
nyplayer nyplayer is offline
SageTVaholic
 
Join Date: Sep 2005
Posts: 4,997
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.

Last edited by nyplayer; 12-15-2015 at 10:34 AM.
Reply With Quote
  #3  
Old 12-15-2015, 11:03 AM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
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.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #4  
Old 12-15-2015, 11:17 AM
nyplayer nyplayer is offline
SageTVaholic
 
Join Date: Sep 2005
Posts: 4,997
Quote:
Originally Posted by EnterNoEscape View Post
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.
PrimenetEncoder Does see below.. If you can make it a user option as some users prefer not to force unlock tuner.

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
12/15/2015 08:32:37 - -------------------------------------------------------------------------------
12/15/2015 08:32:37 - Switching Channel for Tuner: 13147C7B 0
12/15/2015 08:32:37 - -------------------------------------------------------------------------------
12/15/2015 08:32:37 - Channel: 735
12/15/2015 08:32:37 - File: SportsCenter-221589-1.ts
12/15/2015 08:32:37 - UploadID: 459979109
12/15/2015 08:32:37 - Quality: Great
12/15/2015 08:32:37 - Local IP: 192.168.0.100
12/15/2015 08:32:37 - Listening Port: 7000
12/15/2015 08:32:37 - Stream listening Port: 5000
12/15/2015 08:32:37 - Checking to see if the tuner is locked.
12/15/2015 08:32:37 - Tuner is locked.  Force unlocking the tuner.
12/15/2015 08:32:37 - Switch channel: 735
12/15/2015 08:32:37 - 	Using Lockkey: 1954438578
12/15/2015 08:32:37 - 	Command output: null
12/15/2015 08:32:37 - Send stream to UDP port: 5000
12/15/2015 08:32:37 - 	Using Lockkey: 1954438578

Last edited by nyplayer; 12-15-2015 at 11:19 AM.
Reply With Quote
  #5  
Old 12-15-2015, 01:33 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by nyplayer View Post
PrimenetEncoder Does see below.. If you can make it a user option as some users prefer not to force unlock tuner.

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
12/15/2015 08:32:37 - -------------------------------------------------------------------------------
12/15/2015 08:32:37 - Switching Channel for Tuner: 13147C7B 0
12/15/2015 08:32:37 - -------------------------------------------------------------------------------
12/15/2015 08:32:37 - Channel: 735
12/15/2015 08:32:37 - File: SportsCenter-221589-1.ts
12/15/2015 08:32:37 - UploadID: 459979109
12/15/2015 08:32:37 - Quality: Great
12/15/2015 08:32:37 - Local IP: 192.168.0.100
12/15/2015 08:32:37 - Listening Port: 7000
12/15/2015 08:32:37 - Stream listening Port: 5000
12/15/2015 08:32:37 - Checking to see if the tuner is locked.
12/15/2015 08:32:37 - Tuner is locked.  Force unlocking the tuner.
12/15/2015 08:32:37 - Switch channel: 735
12/15/2015 08:32:37 - 	Using Lockkey: 1954438578
12/15/2015 08:32:37 - 	Command output: null
12/15/2015 08:32:37 - Send stream to UDP port: 5000
12/15/2015 08:32:37 - 	Using Lockkey: 1954438578
Probably the most 'robust' method here, would take a bit more work. Each tuner would have a 'if_locked_failover_to' property that, if it finds the tuner is locked, will cascade the request to the listed tuner. This, combined with a 'force_unlock' property FOR EACH TUNER. This would allow the highest merit tuner to have the next highest set as it's failover-to, and so on, and only the lowest merit tuner have the force unlock feature enabled. This will enable nearly anything to be recorded, regardless of what tuner it was scheduled on or what tuner was locked for live viewing elsewhere, and still, ultimately, if everything is in use, the recording will take precedence.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #6  
Old 12-15-2015, 01:41 PM
nyplayer nyplayer is offline
SageTVaholic
 
Join Date: Sep 2005
Posts: 4,997
Quote:
Originally Posted by Fuzzy View Post
Probably the most 'robust' method here, would take a bit more work. Each tuner would have a 'if_locked_failover_to' property that, if it finds the tuner is locked, will cascade the request to the listed tuner. This, combined with a 'force_unlock' property FOR EACH TUNER. This would allow the highest merit tuner to have the next highest set as it's failover-to, and so on, and only the lowest merit tuner have the force unlock feature enabled. This will enable nearly anything to be recorded, regardless of what tuner it was scheduled on or what tuner was locked for live viewing elsewhere, and still, ultimately, if everything is in use, the recording will take precedence.
That sounds like sound reasoning.
Reply With Quote
  #7  
Old 12-15-2015, 02:33 PM
mechling-burgh mechling-burgh is offline
Sage Aficionado
 
Join Date: Feb 2006
Location: Pittsburgh, PA
Posts: 406
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?
Reply With Quote
  #8  
Old 12-15-2015, 03:54 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by Fuzzy View Post
Probably the most 'robust' method here, would take a bit more work. Each tuner would have a 'if_locked_failover_to' property that, if it finds the tuner is locked, will cascade the request to the listed tuner. This, combined with a 'force_unlock' property FOR EACH TUNER. This would allow the highest merit tuner to have the next highest set as it's failover-to, and so on, and only the lowest merit tuner have the force unlock feature enabled. This will enable nearly anything to be recorded, regardless of what tuner it was scheduled on or what tuner was locked for live viewing elsewhere, and still, ultimately, if everything is in use, the recording will take precedence.
That seems like a bit much. We would be pretty much doing the job of the scheduler on the network encoder. I'm certain it can be done, but it won't happen until next year.

Quote:
Originally Posted by mechling-burgh View Post
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?
You have the option to remux via FFmpeg or get the raw stream. FFmpeg is the default.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #9  
Old 12-15-2015, 04:48 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
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.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #10  
Old 12-15-2015, 07:08 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by EnterNoEscape View Post
That seems like a bit much. We would be pretty much doing the job of the scheduler on the network encoder. I'm certain it can be done, but it won't happen until next year.
Understood, it's just the 'cleanest' way to allow other programs access to the network encoders. The real problem is that the tuners are locked and tuned specificly, instead of from a dynamic pool, so without careful controls, it's much more likely to have conflicts, even with only one live viewing, and one recording.

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.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #11  
Old 12-15-2015, 07:20 PM
nyplayer nyplayer is offline
SageTVaholic
 
Join Date: Sep 2005
Posts: 4,997
Quote:
Originally Posted by Fuzzy View Post
Understood, it's just the 'cleanest' way to allow other programs access to the network encoders. The real problem is that the tuners are locked and tuned specificly, instead of from a dynamic pool, so without careful controls, it's much more likely to have conflicts, even with only one live viewing, and one recording.

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.

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.

Last edited by nyplayer; 12-15-2015 at 07:23 PM.
Reply With Quote
  #12  
Old 12-15-2015, 07:48 PM
SageWizdom SageWizdom is offline
Sage Advanced User
 
Join Date: Oct 2013
Location: https://github.com/SageWizdom/SageConnect
Posts: 216
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
Reply With Quote
  #13  
Old 12-15-2015, 08:07 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
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.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #14  
Old 12-15-2015, 08:51 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by SageWizdom View Post
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
Since I have not used PrimeNetEncoder, but I have followed the thread a little and even asked Josh for some help when I was starting, I'll also be touching on what we do that SageDCT doesn't do too.
  • OpenDCT is by name open source. Anyone can contribute and is encouraged to pitch in to make this project even better.
  • It is fully packaged for easy deployment on CentOS 7, Fedora 22, Ubuntu 14.04+ and Windows.
  • It supports InfiniTV and HDHomeRun Prime devices both with a CableCARD installed and in ClearQAM mode. The lack of ClearQAM support for these devices for SageTV is the original reason I started this project.
  • FFmpeg is fully integrated into the code and current thanks to Bill. His contributions in this area have been invaluable. The end result of the ongoing optimization of FFmpeg is that your recording starts sooner.
  • It runs as a service on all mentioned platforms via JSW. Again thanks to Bill for getting the configuration together and for compiling our own 64-bit copy that we would not otherwise have had available.
  • OpenDCT supports the SWITCH command. It's still a work in progress in the sense that most of the time, the transitions between files are as smooth as if nothing actually happened.
  • The communication and discovery protocol for all HDHomeRun devices has been ported completely into Java so it does not need any external binaries. That means that you do not need to install the Silicondust software or compile the Linux binaries.
  • Code-wise, it is built with the idea that it can be the basis for any kind of network encoder desired. It will be evolving and will not only support cable tuners in the future.
  • To ease configuration, management and troubleshooting, we will be adding a web interface in the future.

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.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #15  
Old 12-15-2015, 09:11 PM
KryptoNyte's Avatar
KryptoNyte KryptoNyte is offline
SageTVaholic
 
Join Date: Dec 2006
Posts: 2,754
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?
Reply With Quote
  #16  
Old 12-15-2015, 09:15 PM
KryptoNyte's Avatar
KryptoNyte KryptoNyte is offline
SageTVaholic
 
Join Date: Dec 2006
Posts: 2,754
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?
Reply With Quote
  #17  
Old 12-15-2015, 09:17 PM
KryptoNyte's Avatar
KryptoNyte KryptoNyte is offline
SageTVaholic
 
Join Date: Dec 2006
Posts: 2,754
What's the typical time required to change a channel if someone is channel surfing?
Reply With Quote
  #18  
Old 12-15-2015, 09:19 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
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.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #19  
Old 12-15-2015, 09:22 PM
KryptoNyte's Avatar
KryptoNyte KryptoNyte is offline
SageTVaholic
 
Join Date: Dec 2006
Posts: 2,754
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.
Reply With Quote
  #20  
Old 12-16-2015, 02:02 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by KryptoNyte View Post
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.
I haven't experienced this is 10+ years of using SageTV.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 3 (0 members and 3 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
ATI TV Wonder Digital Cable Tuner & SageTV nyle Hardware Support 4 02-17-2009 10:12 PM
ATI TV Wonder Digital Cable Tuner rajczi Hardware Support 4 01-14-2008 08:24 PM
ATI TV Wonder™ Digital Cable Tuner dadams Hardware Support 4 01-09-2007 10:55 AM
Digital Cable - one guide - need HD on one tuner reg tv on other Kimper SageTV Beta Test Software 14 11-27-2006 08:15 PM
Multi-tuner Digital Cable mlbdude SageTV Software 0 06-26-2003 01:08 PM


All times are GMT -6. The time now is 12:32 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.