![]() |
|
Register | Forum Rules | FAQs | Members List | Social Groups | Downloads | Search | Today's Posts | Mark Forums Read |
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. |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
||||
|
||||
Using the OpenDCT Generic HTTP Capture Device
You must have OpenDCT 0.5.3 or greater installed for this feature to be available.
You must have OpenDCT 0.5.17 or greater installed for %c% to be allowed in the URL and the ability to provide a username and password. You must have OpenDCT 0.5.20 or greater installed for URL's to be allowed in place of an executable for tuning. Configuration:
HDMI Encoders (BM1000, BM3000, etc.): You can find the URL needed for streaming on the web interface of the device. These devices are typically assigned the IP address 192.168.1.168 by default. I recommend changing the IP address. It is also possible to configure a substream (or secondary stream) on these devices which can be configured with a different resolution and frame rate if desired. It is recommend to also use the raw consumer with these devices since they already produce a very clean stream and generally do not benefit from being cleaned up by FFmpeg. To do this, you will need to change sagetv.device.<unique_id>.consumer=<default_consumer> to sagetv.device.<unique_id>.consumer=opendct.consumer.RawSageTVConsumerImpl. Streaming Issues: If the streaming URL provided is not an MPEG-TS container, you will need to change sagetv.device.<unique_id>.consumer=<default_consumer> to sagetv.device.<unique_id>.consumer=opendct.consumer.RawSageTVConsumerImpl. Without making this change it is very likely that best case nothing is streamed and worst case OpenDCT crashes. You may also need to change sagetv.device.<unique_id>.fast_network_encoder_switch=true to false and the corresponding value in Sage.properties, mmc/encoders/<unique_id>/fast_network_encoder_switch=true to false because seamless switching might not be reliable with unknown formats. Tuning Executables: Setting tuning a executable is optional. In SageTV v9 you can also configure tuning using any tuning plugins that are available to SageTV. There are two different opportunities to tune in the channel if you are providing an executable for tuning. You can tune in the channel before OpenDCT connects to the URL or you can tune in the channel while OpenDCT connects to the URL. The former is done by setting the property sagetv.device.<unique_id>.pretuning_executable and the latter is done by setting the property sagetv.device.<unique_id>.tuning_executable. Both properties will replace any occurrence of %c% with the desired channel number as provided by SageTV. If the executable set for tuning_executable returns the exit code 12000, OpenDCT will drop any data it has buffered from connecting to the URL. This can be useful for example if your executable is able to detect resolution changes so that you can drop the data at the beginning that would otherwise be a different resolution from the rest of the recording. Note that OpenDCT will not start streaming to SageTV until this executable returns. You can also define both if desired. e.g. Code:
sagetv.device.<unique_id>.pretuning_executable=/path/to/tuning/script --device=0 --pretune=%c% sagetv.device.<unique_id>.tuning_executable=/path/to/tuning/script --device=0 --tune=%c% Setting a stopping executable is optional. The property is sagetv.device.<unique_id>.stopping_executable. This executable will run when SageTV sends the command to stop streaming. As of 0.5.6, this also has a configurable delay that defaults to 15000 milliseconds. The delay is defined by the property sagetv.device.<unique_id>.stopping_executable_delay_ms. If another channel tuning starts before this delay is reached, the stop command is never executed. This delay can be helpful since sometimes there's a measurable amount of time involved in starting things back up from whatever state the stop executable might put the device into. Note that streaming stops immediately regardless of this value, this only affects the timing of the executable. e.g. Code:
sagetv.device.<unique_id>.stopping_executable=/path/to/tuning/script --device=0 --stop sagetv.device.<unique_id>.stopping_executable_delay_ms=15000 If you set the property sagetv.device.<unique_id>.tuning_delay_ms=0 to a value greater than 0, it will wait the specified number of milliseconds before returning to SageTV after running tuning_executable and clearing the buffer if exit code 12000 was returned. If tuning_executable was not set, this delay will still happen. Channel Padding: If you would like to ensure that a minimum number of digits are always passed to your tuning script through the %c% variable, you need to change the property sagetv.device.<unique_id>.channel_padding=0 to a value greater than 0. Values shorter than this length will have zeros (0) appended to the left of the channel to make up the difference. (e.g. 8 becomes 008 and 503 remains 503 if this is set to 3.) Substream Support: If you would like to be able to select a different stream based on the channel being using tuned, you can do this using the sagetv.device.<unique_id>.streaming_url2 property in conjunction with sagetv.device.<unique_id>.streaming_url2_channels. You just need to set streaming_url2 to an alternate valid URL and then provide a comma separated list of channels that are to always use this alternative URL for the streaming_url2_channels property. e.g. Code:
sagetv.device.<unique_id>.streaming_url2=http://<encoder_ip_address>/1.ts sagetv.device.<unique_id>.streaming_url2_channels=20,22,23 Channel Detection: If you already have some specific channels in mind that you would like this capture device to return to SageTV as tunable, you can populate them in the sagetv.device.<unique_id>.custom_channels= property. The list is semicolon delimited. This can also be useful to create custom channels within SageTV. e.g. To return the channels 2000, 2002 and 2003 when doing a channel scan within SageTV, set the property as follows: Code:
sagetv.device.<unique_id>.custom_channels=2000;2002;2003 You can have OpenDCT perform basic HTTP authentication by providing a username and password. The associated properties are sagetv.device.<unique_id>.http_username and sagetv.device.<unique_id>.http_password. If both of these properties are set, the provided username and password will be encoded and sent to the provided URL for authentication. e.g. Code:
sagetv.device.<unique_id>.http_username=User sagetv.device.<unique_id>.http_password=MyPassword0
__________________
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; 01-04-2017 at 03:14 PM. |
#2
|
|||
|
|||
I'm using stuckless-sagetv-server-java8 and crazifuzzy-opendct docker from UNRAID. I'm trying to get an HTTP stream from OctoPrint working. OctoPrint uses M-JPEG streamer.
For some reason the stream will never start. I am able to get HDHR stream working so I know crazifuzzy-opendct docker is working. The Stream address as follows: http://192.168.10.105/webcam/?action=streamBelow is what I have in my opendct.properties file: sagetv.device.1076630941.channel_padding=0Here is the result from the log when trying to tune: 10:20:58.760 [SageTVRequestHandler-107:Unknown] DEBUG SageTVManager - The requested capture device ' OCTO_PRINT HDMI' did not exist. Triggering re-discovery. Any ideas what I'm doing wrong? Also I noticed that crazifuzzy-opendct docker does not map any default ports. I mapped 9000 are there any other port mappings required? Last edited by hvymetal; 09-01-2017 at 09:46 AM. |
#3
|
||||
|
||||
Quote:
Anyway, based on what I'm seeing, it looks like generic.http.device_names_csv= isn't set. You just need to provide a device name (e.g. generic.http.device_names_csv=OCTO_PRINT). Posting the full OpenDCT log would be the most helpful however since it would tell me more precisely what happened or didn't happen. What you posted looks like it didn't create the capture device on the OpenDCT side of things but the why would be in the full log.
__________________
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 |
#4
|
|||
|
|||
Quote:
Last edited by hvymetal; 09-01-2017 at 09:23 PM. |
#5
|
|||
|
|||
Ok I also tried Generic Pipe again but still unable to get the stream to play in SageTV.
Here are the steps I followed: 1.Installed and verified FFMPEGThe stream will not start in SageTV. I attached my logs and config file. What ports are required for OpenDCT? The docker does not have any mapped.A. Download static FFMPEG and copied to docker directory /opendct/opt/ffmpeg (https://johnvansickle.com/ffmpeg/)2. Stopped OpenDCT docker Last edited by hvymetal; 09-01-2017 at 09:27 PM. |
#6
|
||||
|
||||
I'm confused about why the hash seems to change for a device that doesn't change names. I know Java doesn't guarantee that the hashes between one OS will be same on another OS, but I got -903334296 on both Windows and Linux and in your properties I'm seeing -444781814 and -903334296. Remove all of the entries for -444781814 as I see you have the exact same device name there and set up -903334296 instead.
__________________
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 |
![]() |
Tags |
hdmi, iptv, script |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Using the OpenDCT Generic Pipe Capture Device | EnterNoEscape | Hardware Support | 101 | 01-20-2022 12:14 PM |
capture device recommendation | smithzoos | Hardware Support | 2 | 02-29-2016 09:02 PM |
USB Capture Device? | Skybolt | Hardware Support | 5 | 05-07-2013 07:00 PM |
Using Motorola Tuner device for capture device | cyberfreak | Hardware Support | 4 | 02-22-2007 02:47 PM |
No AV Capture Device | jaelanicu | SageTV Recorder Software | 5 | 08-03-2006 02:02 AM |