|
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 |
#7
|
|||
|
|||
The HTTP I was trying all kinds of thing to make things work so I'm not sure what I left in it.
The pipe logs I started with a new config by deleting it and starting OpenDCT docker so it created a new one. |
#8
|
|||
|
|||
Okay I made some progress but the stream will still not play. What I discovered it OpenDCT does not like underscores in the name . Now I get log entries from FFMPEG. Any idea what else I'm missing?
Attached is the updated config and log. Turned off HDHR and UPNP scanning so easy to analyze log. Last edited by hvymetal; 09-02-2017 at 11:14 PM. |
#9
|
||||
|
||||
Quote:
__________________
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 |
#10
|
|||
|
|||
Quote:
This what I used for streaming_executable Code:
/opt/opendct/ffmpeg/ffmpeg -thread_queue_size 512 -i http\://192.168.10.105/webcam/?action\=stream -f lavfi -i anullsrc -c\:v mpeg2video -c\:a aac -f mpegts -q\:v 0 -nostats pipe\:1 Last edited by hvymetal; 09-03-2017 at 09:03 PM. |
#11
|
||||
|
||||
The long delays probably have to do with ffmpeg detecting the stream type before finally writing anything out, followed by sage essentially needing to do the same. I think ffmpeg can be 'told' the stream type on the input command, which would at least speed that bit up, but am not certain.
__________________
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 |
#12
|
|||
|
|||
I tried adding the input format but it still would take 40sec for it show in SageTV.
Code:
/opt/opendct/ffmpeg/ffmpeg -thread_queue_size 512 -i http\://192.168.10.105/webcam/?action\=stream -f lavfi -i aevalsrc\=0 -c\:v mpeg2video -pix_fmt yuv422p -c\:a ac3 -f mpegts -q\:v 0 -nostats pipe\:1 I also notice if I change the following setting (sagetv.device.-383702153.consumer=opendct.consumer.MediaServerConsumerImpl) video starts within few seconds but still have the same problem as above with the elapsed time and skipping frames. In the SageTV log I get the [MediaServerConnection@4411b9d9] Remuxer cannot find sync byte after checking 0 bytes. |
#13
|
||||
|
||||
Quote:
If you're seeing a lot of those sync byte errors, there's a chance that either the stream being sent to SageTV isn't actually MPEG-TS or data was missing when it reached SageTV. I still recommend raw coming from OpenDCT because you're already running the stream through FFmpeg. If you want to try to speed up the time to playback, you can try to make the transfers more aggressive. To do this, reduce the value of consumer.raw.min_transfer_size=65536.
__________________
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 |
#14
|
|||
|
|||
So I got the video stream to play consistently. The problem is that since the input is mjpeg(not really video but a series of jpeg with a small frame rate change)causes the frame rate not to be consistence. By default ffmpeg uses the input framerate to calculate timestamps. If the timestamps are incorrect SageTv will have problems keeping sync causing the time to go negative then positive. This causes the video to stutter. The fix is force a different source for time stamping and force a constant frame rate. Now the starting time and live video delay is about 6s.
Here is the final streaming_executable with each setting explained: stdbuf -i0 -o0 -e0 /opt/opendct/ffmpeg/ffmpeg -use_wallclock_as_timestamps 1 -r 10 -vcodec mjpeg -re -i http\://192.168.10.105/webcam/?action\=stream -f lavfi -i anullsrc -acodec ac3 -flush_packets 1 -vsync cfr -fflags +nobuffer+genpts+shortest -avoid_negative_ts make_non_negative -reset_timestamps 1 -r 29.97 -vcodec mpeg2video -pix_fmt yuv420p -me_method epzs -g 45 -bf 2 -trellis 2 -cmp 2 -subcmp 2 -s hd480 -b\:v 5M -minrate\:v 5M -maxrate\:v 5M -bufsize\:v 224k -f mpegts -nostats pipe\:1 Code:
stdbuf -i0 -o0 -e0 (Prevent ffmpeg PIPE from being buffered) /opt/opendct/ffmpeg/ffmpeg (Location of ffmpeg exectable) -use_wallclock_as_timestamps 1 (Required not to timing off frame rate) -r 10 (Frame rate of input) -vcodec mjpeg (Video Codec of input) -re (Force ffmpeg read input fix timebase) -i http\://192.168.10.105/webcam/?action\=stream (Input Stream) -f lavfi -i anullsrc (Create Null Audio source) -acodec ac3 (Encode Audio as AC3) -flush_packets 1 (Flash output packets. Without this on smaller bitrates it will wait to flush every 248K) -vsync cfr (Required to maintan output frame rate) -fflags +nobuffer+genpts+shortest (Attemppt to turn off buffers) -avoid_negative_ts make_non_negative (if timestamps are off do not go negitive or this will cause studdering in SageTV) -reset_timestamps 1 (Ensure timestamps are reset to zero at every frame) -r 29.97 (Use standard frame rate for mpegts) -vcodec mpeg2video (Use standard video codec for mpegts) -pix_fmt yuv420p (Use stanadard pixel format for mpegts NOTE: Not required causes higher CPU) -me_method epzs -g 45 -bf 2 -trellis 2 -cmp 2 -subcmp 2 (Encoding quality NOTE: Not required causes higher CPU) -s hd480 (Use standard resolution for mpegts NOTE: Not required causes higher CPU) -b\:v 5M -minrate\:v 5M -maxrate\:v 5M -bufsize\:v 224k (Force bitrate...The higher set the faster SagetV will start video but make file larger) -f mpegts (Force mpegts containter) -nostats (Do not show full stats or it will fill the log file) pipe\:1 (Output to Pipe) sagetv.device.-383702153.consumer=opendct.consumer.RawSageTVConsumerImpl sagetv.device.-383702153.fast_network_encoder_switch=true (Did not make a difference on video delay) consumer.raw.min_transfer_size=0 Some followup questions:
Last edited by hvymetal; 09-06-2017 at 03:42 PM. Reason: Answered one of my questions |
#15
|
||||
|
||||
When I've had a failed tune (because an IPTV station isn't available), all subsequent requests for tuning the same device seem to fail (i.e. hang and produce no output) giving this error in wrapper.log:
Code:
GenericHttpCaptureDevice - Capture device was already locked More logging: Code:
22:46:36.999 [SageTVTuningMonitor-48] INFO NIOSageTVMediaServer - Received message from SageTV server '1811838720 900000000047' 22:46:46.245 [SageTVRequestHandler-11205:Unknown] DEBUG SageTVRequestHandler - SageTV sent: 'START virgin4 HDMI|449030719|500|3040061612488|/var/media/99990_500_0302_2246-0.ts|Great-H.264' 22:46:46.245 [SageTVRequestHandler-11205:virgin4] INFO GenericHttpCaptureDevice - Capture device was already locked. 22:46:46.245 [SageTVRequestHandler-11205:virgin4] DEBUG SageTVRequestHandler - Starting network encoder via upload ID '449030719' to file name '/var/media/99990_500_0302_2246-0.ts'. 22:46:53.001 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 0 22:46:53.001 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - Received 25 bytes from SageTV server. 22:46:53.001 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 25 22:46:53.001 [SageTVTuningMonitor-48] INFO NIOSageTVMediaServer - Received message from SageTV server '1819238400 900000000047' 22:47:09.003 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 0 22:47:09.003 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - Received 25 bytes from SageTV server. 22:47:09.003 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 25 22:47:09.003 [SageTVTuningMonitor-48] INFO NIOSageTVMediaServer - Received message from SageTV server '1828296240 900000000047' 22:47:25.005 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 0 22:47:25.005 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - Received 25 bytes from SageTV server. 22:47:25.005 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 25 22:47:25.005 [SageTVTuningMonitor-48] INFO NIOSageTVMediaServer - Received message from SageTV server '1831838160 900000000047' 22:47:41.006 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 0 22:47:41.006 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - Received 25 bytes from SageTV server. 22:47:41.006 [SageTVTuningMonitor-48] DEBUG NIOSageTVMediaServer - messageInBytes = 25 22:47:41.006 [SageTVTuningMonitor-48] INFO NIOSageTVMediaServer - Received message from SageTV server '1844212320 900000000047' Code:
#OpenDCT Configuration File #Fri Mar 02 23:05:04 GMT 2018 buffers.nio.direct2=true channels.qam.automap_reference_lookup=true channels.qam.automap_tuning_lookup=true channels.update=true consumer.dynamic.channels.ffmpeg= consumer.dynamic.channels.media_server= consumer.dynamic.channels.raw= consumer.dynamic.default=opendct.consumer.MediaServerConsumerImpl consumer.ffmpeg.enhanced_logging=true consumer.ffmpeg.limit_logging=true consumer.ffmpeg.linux_logging=true consumer.ffmpeg.log_stream_details_for_all_programs=false consumer.ffmpeg.thread_rename_logging=false consumer.media_server.max_transfer_size=1048476 consumer.media_server.min_transfer_size=64672 consumer.media_server.prefer_ps=false consumer.media_server.stream_buffer_size=2097152 consumer.media_server.thread_priority=8 consumer.media_server.tuning_polling=false consumer.media_server.upload_id_port=7818 discovery.devices.exp_always_enable=true discovery.devices_permitted= discovery.enabled=true error_videos_enabled=true generic.http.device_names_csv=virgin1,virgin2,virgin3,virgin4,freeview1,freeview2,freeview3,freeview4,vmstb,freeview5,freeview6,freeview7,freeview8 generic.http.discoverer_enabled=true generic.http.wait_for_streaming=15000 generic.pipe.device_names_csv= generic.pipe.discoverer_enabled=true generic.pipe.wait_for_streaming=15000 hdhr.allow_http_tuning=true hdhr.allow_qam_http_tuning=false hdhr.allow_qam_remapping=false hdhr.always_remap_lookup=false hdhr.always_tune_legacy=false hdhr.broadcast_port=64998 hdhr.broadcast_s=58 hdhr.discoverer_enabled=false hdhr.extend_transcode_profile= hdhr.ignore_device_ids= hdhr.ignore_models= hdhr.locking=true hdhr.offline_detection_min_bytes=10528 hdhr.retry_count=2 hdhr.smart_broadcast=true hdhr.static_addresses_csv= hdhr.wait_for_offline_detection_s=8 hdhr.wait_for_streaming=15000 http.new.default_producer=opendct.producer.NIOHTTPProducerImpl log.min_free_space=1073741824 log.remove_after_days=30 pm.enabled=true pm.network.infinitv_wait=2 pm.network.resume_timeout_ms=240000 pm.network.start_retry=120 pm.network.wait_for_network_on_resume=true pool.enabled=false producer.http.nio.thread_priority=9 retune_ceton_only=true retune_enable=true sagetv.device.-412539065.channel_padding=0 sagetv.device.-412539065.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539065.custom_channels= sagetv.device.-412539065.delay_to_wait_after_tuning=0 sagetv.device.-412539065.device_name=freeview8 sagetv.device.-412539065.encoder_listen_port=9000 sagetv.device.-412539065.encoder_merit=0 sagetv.device.-412539065.encoder_pool=generic_http sagetv.device.-412539065.exclusive_server_address= sagetv.device.-412539065.fast_network_encoder_switch=true sagetv.device.-412539065.http_password= sagetv.device.-412539065.http_username= sagetv.device.-412539065.last_channel=3 sagetv.device.-412539065.pretuning_executable= sagetv.device.-412539065.stopping_executable= sagetv.device.-412539065.stopping_executable_delay_ms=15000 sagetv.device.-412539065.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539065.streaming_url2= sagetv.device.-412539065.streaming_url2_channels= sagetv.device.-412539065.transcode_profile= sagetv.device.-412539065.tuning_delay_ms=0 sagetv.device.-412539065.tuning_executable= sagetv.device.-412539066.channel_padding=0 sagetv.device.-412539066.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539066.custom_channels= sagetv.device.-412539066.delay_to_wait_after_tuning=0 sagetv.device.-412539066.device_name=freeview7 sagetv.device.-412539066.encoder_listen_port=9000 sagetv.device.-412539066.encoder_merit=0 sagetv.device.-412539066.encoder_pool=generic_http sagetv.device.-412539066.exclusive_server_address= sagetv.device.-412539066.fast_network_encoder_switch=true sagetv.device.-412539066.http_password= sagetv.device.-412539066.http_username= sagetv.device.-412539066.last_channel=1 sagetv.device.-412539066.pretuning_executable= sagetv.device.-412539066.stopping_executable= sagetv.device.-412539066.stopping_executable_delay_ms=15000 sagetv.device.-412539066.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539066.streaming_url2= sagetv.device.-412539066.streaming_url2_channels= sagetv.device.-412539066.transcode_profile= sagetv.device.-412539066.tuning_delay_ms=0 sagetv.device.-412539066.tuning_executable= sagetv.device.-412539067.channel_padding=0 sagetv.device.-412539067.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539067.custom_channels= sagetv.device.-412539067.delay_to_wait_after_tuning=0 sagetv.device.-412539067.device_name=freeview6 sagetv.device.-412539067.encoder_listen_port=9000 sagetv.device.-412539067.encoder_merit=0 sagetv.device.-412539067.encoder_pool=generic_http sagetv.device.-412539067.exclusive_server_address= sagetv.device.-412539067.fast_network_encoder_switch=true sagetv.device.-412539067.http_password= sagetv.device.-412539067.http_username= sagetv.device.-412539067.last_channel=2 sagetv.device.-412539067.pretuning_executable= sagetv.device.-412539067.stopping_executable= sagetv.device.-412539067.stopping_executable_delay_ms=15000 sagetv.device.-412539067.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539067.streaming_url2= sagetv.device.-412539067.streaming_url2_channels= sagetv.device.-412539067.transcode_profile= sagetv.device.-412539067.tuning_delay_ms=0 sagetv.device.-412539067.tuning_executable= sagetv.device.-412539068.channel_padding=0 sagetv.device.-412539068.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539068.custom_channels= sagetv.device.-412539068.delay_to_wait_after_tuning=0 sagetv.device.-412539068.device_name=freeview5 sagetv.device.-412539068.encoder_listen_port=9000 sagetv.device.-412539068.encoder_merit=0 sagetv.device.-412539068.encoder_pool=generic_http sagetv.device.-412539068.exclusive_server_address= sagetv.device.-412539068.fast_network_encoder_switch=true sagetv.device.-412539068.http_password= sagetv.device.-412539068.http_username= sagetv.device.-412539068.last_channel=1 sagetv.device.-412539068.pretuning_executable= sagetv.device.-412539068.stopping_executable= sagetv.device.-412539068.stopping_executable_delay_ms=15000 sagetv.device.-412539068.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539068.streaming_url2= sagetv.device.-412539068.streaming_url2_channels= sagetv.device.-412539068.transcode_profile= sagetv.device.-412539068.tuning_delay_ms=0 sagetv.device.-412539068.tuning_executable= sagetv.device.-412539069.channel_padding=0 sagetv.device.-412539069.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539069.custom_channels= sagetv.device.-412539069.delay_to_wait_after_tuning=0 sagetv.device.-412539069.device_name=freeview4 sagetv.device.-412539069.encoder_listen_port=9000 sagetv.device.-412539069.encoder_merit=0 sagetv.device.-412539069.encoder_pool=generic_http sagetv.device.-412539069.exclusive_server_address= sagetv.device.-412539069.fast_network_encoder_switch=true sagetv.device.-412539069.http_password= sagetv.device.-412539069.http_username= sagetv.device.-412539069.last_channel=103 sagetv.device.-412539069.pretuning_executable= sagetv.device.-412539069.stopping_executable= sagetv.device.-412539069.stopping_executable_delay_ms=15000 sagetv.device.-412539069.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539069.streaming_url2= sagetv.device.-412539069.streaming_url2_channels= sagetv.device.-412539069.transcode_profile= sagetv.device.-412539069.tuning_delay_ms=0 sagetv.device.-412539069.tuning_executable= sagetv.device.-412539070.channel_padding=0 sagetv.device.-412539070.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539070.custom_channels= sagetv.device.-412539070.delay_to_wait_after_tuning=0 sagetv.device.-412539070.device_name=freeview3 sagetv.device.-412539070.encoder_listen_port=9000 sagetv.device.-412539070.encoder_merit=0 sagetv.device.-412539070.encoder_pool=generic_http sagetv.device.-412539070.exclusive_server_address= sagetv.device.-412539070.fast_network_encoder_switch=true sagetv.device.-412539070.http_password= sagetv.device.-412539070.http_username= sagetv.device.-412539070.last_channel=3 sagetv.device.-412539070.pretuning_executable= sagetv.device.-412539070.stopping_executable= sagetv.device.-412539070.stopping_executable_delay_ms=15000 sagetv.device.-412539070.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539070.streaming_url2= sagetv.device.-412539070.streaming_url2_channels= sagetv.device.-412539070.transcode_profile= sagetv.device.-412539070.tuning_delay_ms=0 sagetv.device.-412539070.tuning_executable= sagetv.device.-412539071.channel_padding=0 sagetv.device.-412539071.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539071.custom_channels= sagetv.device.-412539071.delay_to_wait_after_tuning=0 sagetv.device.-412539071.device_name=freeview2 sagetv.device.-412539071.encoder_listen_port=9000 sagetv.device.-412539071.encoder_merit=0 sagetv.device.-412539071.encoder_pool=generic_http sagetv.device.-412539071.exclusive_server_address= sagetv.device.-412539071.fast_network_encoder_switch=true sagetv.device.-412539071.http_password= sagetv.device.-412539071.http_username= sagetv.device.-412539071.last_channel=104 sagetv.device.-412539071.pretuning_executable= sagetv.device.-412539071.stopping_executable= sagetv.device.-412539071.stopping_executable_delay_ms=15000 sagetv.device.-412539071.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539071.streaming_url2= sagetv.device.-412539071.streaming_url2_channels= sagetv.device.-412539071.transcode_profile= sagetv.device.-412539071.tuning_delay_ms=0 sagetv.device.-412539071.tuning_executable= sagetv.device.-412539072.channel_padding=0 sagetv.device.-412539072.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.-412539072.custom_channels= sagetv.device.-412539072.delay_to_wait_after_tuning=0 sagetv.device.-412539072.device_name=freeview1 sagetv.device.-412539072.encoder_listen_port=9000 sagetv.device.-412539072.encoder_merit=0 sagetv.device.-412539072.encoder_pool=generic_http sagetv.device.-412539072.exclusive_server_address= sagetv.device.-412539072.fast_network_encoder_switch=true sagetv.device.-412539072.http_password= sagetv.device.-412539072.http_username= sagetv.device.-412539072.last_channel=2 sagetv.device.-412539072.pretuning_executable= sagetv.device.-412539072.stopping_executable= sagetv.device.-412539072.stopping_executable_delay_ms=15000 sagetv.device.-412539072.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.-412539072.streaming_url2= sagetv.device.-412539072.streaming_url2_channels= sagetv.device.-412539072.transcode_profile= sagetv.device.-412539072.tuning_delay_ms=0 sagetv.device.-412539072.tuning_executable= sagetv.device.112336906.channel_padding=0 sagetv.device.112336906.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.112336906.custom_channels= sagetv.device.112336906.delay_to_wait_after_tuning=0 sagetv.device.112336906.device_name=vmstb sagetv.device.112336906.encoder_listen_port=9000 sagetv.device.112336906.encoder_merit=0 sagetv.device.112336906.encoder_pool=generic_http sagetv.device.112336906.exclusive_server_address= sagetv.device.112336906.fast_network_encoder_switch=true sagetv.device.112336906.http_password= sagetv.device.112336906.http_username= sagetv.device.112336906.last_channel=523 sagetv.device.112336906.pretuning_executable= sagetv.device.112336906.stopping_executable= sagetv.device.112336906.stopping_executable_delay_ms=15000 sagetv.device.112336906.streaming_url=http\://192.168.1.168\:8080/hdmi sagetv.device.112336906.streaming_url2= sagetv.device.112336906.streaming_url2_channels= sagetv.device.112336906.transcode_profile= sagetv.device.112336906.tuning_delay_ms=0 sagetv.device.112336906.tuning_executable= sagetv.device.465767044.channel_padding=0 sagetv.device.465767044.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.465767044.custom_channels= sagetv.device.465767044.delay_to_wait_after_tuning=0 sagetv.device.465767044.device_name=virgin1 sagetv.device.465767044.encoder_listen_port=9000 sagetv.device.465767044.encoder_merit=0 sagetv.device.465767044.encoder_pool=generic_http sagetv.device.465767044.exclusive_server_address= sagetv.device.465767044.fast_network_encoder_switch=true sagetv.device.465767044.http_password= sagetv.device.465767044.http_username= sagetv.device.465767044.last_channel=503 sagetv.device.465767044.pretuning_executable= sagetv.device.465767044.stopping_executable= sagetv.device.465767044.stopping_executable_delay_ms=15000 sagetv.device.465767044.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.465767044.streaming_url2= sagetv.device.465767044.streaming_url2_channels= sagetv.device.465767044.transcode_profile= sagetv.device.465767044.tuning_delay_ms=0 sagetv.device.465767044.tuning_executable= sagetv.device.465767045.channel_padding=0 sagetv.device.465767045.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.465767045.custom_channels= sagetv.device.465767045.delay_to_wait_after_tuning=0 sagetv.device.465767045.device_name=virgin2 sagetv.device.465767045.encoder_listen_port=9000 sagetv.device.465767045.encoder_merit=0 sagetv.device.465767045.encoder_pool=generic_http sagetv.device.465767045.exclusive_server_address= sagetv.device.465767045.fast_network_encoder_switch=true sagetv.device.465767045.http_password= sagetv.device.465767045.http_username= sagetv.device.465767045.last_channel=502 sagetv.device.465767045.pretuning_executable= sagetv.device.465767045.stopping_executable= sagetv.device.465767045.stopping_executable_delay_ms=15000 sagetv.device.465767045.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.465767045.streaming_url2= sagetv.device.465767045.streaming_url2_channels= sagetv.device.465767045.transcode_profile= sagetv.device.465767045.tuning_delay_ms=0 sagetv.device.465767045.tuning_executable= sagetv.device.465767046.channel_padding=0 sagetv.device.465767046.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.465767046.custom_channels= sagetv.device.465767046.delay_to_wait_after_tuning=0 sagetv.device.465767046.device_name=virgin3 sagetv.device.465767046.encoder_listen_port=9000 sagetv.device.465767046.encoder_merit=0 sagetv.device.465767046.encoder_pool=generic_http sagetv.device.465767046.exclusive_server_address= sagetv.device.465767046.fast_network_encoder_switch=true sagetv.device.465767046.http_password= sagetv.device.465767046.http_username= sagetv.device.465767046.last_channel=527 sagetv.device.465767046.pretuning_executable= sagetv.device.465767046.stopping_executable= sagetv.device.465767046.stopping_executable_delay_ms=15000 sagetv.device.465767046.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.465767046.streaming_url2= sagetv.device.465767046.streaming_url2_channels= sagetv.device.465767046.transcode_profile= sagetv.device.465767046.tuning_delay_ms=0 sagetv.device.465767046.tuning_executable= sagetv.device.465767047.channel_padding=0 sagetv.device.465767047.consumer=opendct.consumer.DynamicConsumerImpl sagetv.device.465767047.custom_channels= sagetv.device.465767047.delay_to_wait_after_tuning=0 sagetv.device.465767047.device_name=virgin4 sagetv.device.465767047.encoder_listen_port=9000 sagetv.device.465767047.encoder_merit=0 sagetv.device.465767047.encoder_pool=generic_http sagetv.device.465767047.exclusive_server_address= sagetv.device.465767047.fast_network_encoder_switch=true sagetv.device.465767047.http_password= sagetv.device.465767047.http_username= sagetv.device.465767047.last_channel=501 sagetv.device.465767047.pretuning_executable= sagetv.device.465767047.stopping_executable= sagetv.device.465767047.stopping_executable_delay_ms=15000 sagetv.device.465767047.streaming_url=http\://192.168.1.5\:9981/stream/channelnumber/%c% sagetv.device.465767047.streaming_url2= sagetv.device.465767047.streaming_url2_channels= sagetv.device.465767047.transcode_profile= sagetv.device.465767047.tuning_delay_ms=0 sagetv.device.465767047.tuning_executable= sagetv.device.global.ignore_devices_csv= sagetv.device.global.only_devices_csv= sagetv.device.global.required_devices_loaded_count=0 sagetv.device.global.required_devices_loaded_timeout_ms=60000 sagetv.device.parent.-412539065.device_name=freeview8 sagetv.device.parent.-412539065.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539065.lineup=generic_http sagetv.device.parent.-412539065.local_ip_override= sagetv.device.parent.-412539065.offline_scan=false sagetv.device.parent.-412539066.device_name=freeview7 sagetv.device.parent.-412539066.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539066.lineup=generic_http sagetv.device.parent.-412539066.local_ip_override= sagetv.device.parent.-412539066.offline_scan=false sagetv.device.parent.-412539067.device_name=freeview6 sagetv.device.parent.-412539067.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539067.lineup=generic_http sagetv.device.parent.-412539067.local_ip_override= sagetv.device.parent.-412539067.offline_scan=false sagetv.device.parent.-412539068.device_name=freeview5 sagetv.device.parent.-412539068.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539068.lineup=generic_http sagetv.device.parent.-412539068.local_ip_override= sagetv.device.parent.-412539068.offline_scan=false sagetv.device.parent.-412539069.device_name=freeview4 sagetv.device.parent.-412539069.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539069.lineup=generic_http sagetv.device.parent.-412539069.local_ip_override= sagetv.device.parent.-412539069.offline_scan=false sagetv.device.parent.-412539070.device_name=freeview3 sagetv.device.parent.-412539070.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539070.lineup=generic_http sagetv.device.parent.-412539070.local_ip_override= sagetv.device.parent.-412539070.offline_scan=false sagetv.device.parent.-412539071.device_name=freeview2 sagetv.device.parent.-412539071.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539071.lineup=generic_http sagetv.device.parent.-412539071.local_ip_override= sagetv.device.parent.-412539071.offline_scan=false sagetv.device.parent.-412539072.device_name=freeview1 sagetv.device.parent.-412539072.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539072.lineup=generic_http sagetv.device.parent.-412539072.local_ip_override= sagetv.device.parent.-412539072.offline_scan=false sagetv.device.parent.112336906.device_name=vmstb sagetv.device.parent.112336906.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.112336906.lineup=generic_http sagetv.device.parent.112336906.local_ip_override= sagetv.device.parent.112336906.offline_scan=false sagetv.device.parent.465767044.device_name=virgin1 sagetv.device.parent.465767044.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.465767044.lineup=generic_http sagetv.device.parent.465767044.local_ip_override= sagetv.device.parent.465767044.offline_scan=false sagetv.device.parent.465767045.device_name=virgin2 sagetv.device.parent.465767045.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.465767045.lineup=generic_http sagetv.device.parent.465767045.local_ip_override= sagetv.device.parent.465767045.offline_scan=false sagetv.device.parent.465767046.device_name=virgin3 sagetv.device.parent.465767046.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.465767046.lineup=generic_http sagetv.device.parent.465767046.local_ip_override= sagetv.device.parent.465767046.offline_scan=false sagetv.device.parent.465767047.device_name=virgin4 sagetv.device.parent.465767047.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.465767047.lineup=generic_http sagetv.device.parent.465767047.local_ip_override= sagetv.device.parent.465767047.offline_scan=false sagetv.early_port_assignment=false sagetv.encoder_discovery_port=8271 sagetv.log_noop_and_size=false sagetv.new.default_consumer_impl=opendct.consumer.DynamicConsumerImpl sagetv.new.default_transcode_profile= sagetv.new.device.default_encoder_merit=0 sagetv.new.device.default_tuning_delay=0 sagetv.new.device.increment_port=false sagetv.new.device.socket_server_port_high=9100 sagetv.new.device.socket_server_port_low=9001 sagetv.new.device.socket_server_shared_port=9000 sagetv.use_automatic_loopback=true upnp.always_remap_lookup=false upnp.device.offline_detection_min_bytes=18800 upnp.device.ping_detection=false upnp.device.ping_timeout_ms=15000 upnp.device.wait_for_offline_detection_s=18 upnp.device.wait_for_streaming=15000 upnp.discoverer_enabled=true upnp.new.device.search_interval_s=4 upnp.new.device.search_strings_csv=schemas-cetoncorp-com upnp.service.configuration.http_listen_port=8501 upnp.service.configuration.ignore_interfaces_csv= upnp.service.configuration.ignore_local_ip_csv= upnp.smart_broadcast=true version.config=4 version.program=0.5.28 web.enabled=true web.port=9091
__________________
unRAID Server: Intel Core i5 7600K, 48GB DDR4, 2x512GB PCIe M.2 Cache Pool, 2x10TB SATA3 Parity Drive, 3x8TB SATA Array, 1x hdHomeRun DVB-T2 Quattro, IPTV via xTeVe, unRAID 6.8.3, tvHeadEnd for recording back end, Emby Clients: 3 Nvidia Shields, 3 FireTV, 3 Win10 Pro PC Clients Last edited by rickgillyon; 03-02-2018 at 05:10 PM. |
#16
|
||||
|
||||
It's not that you posted in the wrong place. I've just turned off all notifications because I don't have a lot of free time. I strangely find it stressful when I know someone is asking me a question and I do not have the time to respond.
I don't have a good answer about why it wouldn't release. My guess would be it could be my NIO HTTP implementation might not be working correctly in your case. If you change http.new.default_producer=opendct.producer.NIOHTTPProducerImpl to opendct.producer.HTTPProducer, you would then be using the Java IO implementation that might be more stable at the expense of more JVM garbage collection.
__________________
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 |
#17
|
||||
|
||||
Many thanks, I'll give it a shot.
__________________
unRAID Server: Intel Core i5 7600K, 48GB DDR4, 2x512GB PCIe M.2 Cache Pool, 2x10TB SATA3 Parity Drive, 3x8TB SATA Array, 1x hdHomeRun DVB-T2 Quattro, IPTV via xTeVe, unRAID 6.8.3, tvHeadEnd for recording back end, Emby Clients: 3 Nvidia Shields, 3 FireTV, 3 Win10 Pro PC Clients |
#18
|
||||
|
||||
I still have the NIO stuff at the end of the file, e.g.
Code:
sagetv.device.parent.-412539065.device_name=freeview8 sagetv.device.parent.-412539065.http.producer=opendct.producer.NIOHTTPProducerImpl sagetv.device.parent.-412539065.lineup=generic_http sagetv.device.parent.-412539065.local_ip_override= sagetv.device.parent.-412539065.offline_scan=false
__________________
unRAID Server: Intel Core i5 7600K, 48GB DDR4, 2x512GB PCIe M.2 Cache Pool, 2x10TB SATA3 Parity Drive, 3x8TB SATA Array, 1x hdHomeRun DVB-T2 Quattro, IPTV via xTeVe, unRAID 6.8.3, tvHeadEnd for recording back end, Emby Clients: 3 Nvidia Shields, 3 FireTV, 3 Win10 Pro PC Clients |
#19
|
||||
|
||||
Quote:
__________________
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 |
#20
|
||||
|
||||
Just to clarify on this, I should change all instances of:
NIOHTTPProducerImpl to HTTPProducer No Impl on the end? (I regressed all these changes to try and work out why OpenDCT wasn't detecting streamed video, so need to put them back in. Still didn't track the stream problem though) Edit: after running, it's changed a few to HTTPProducerImpl and it's changed one of my FFmpegTransSageTVConsumerImpl to HTTPProducerImpl too.
__________________
unRAID Server: Intel Core i5 7600K, 48GB DDR4, 2x512GB PCIe M.2 Cache Pool, 2x10TB SATA3 Parity Drive, 3x8TB SATA Array, 1x hdHomeRun DVB-T2 Quattro, IPTV via xTeVe, unRAID 6.8.3, tvHeadEnd for recording back end, Emby Clients: 3 Nvidia Shields, 3 FireTV, 3 Win10 Pro PC Clients Last edited by rickgillyon; 04-10-2018 at 04:27 PM. |
Tags |
hdmi, iptv, script |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
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 |