SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Clients Development
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

SageTV Clients Development This forum is for discussions relating to SageTV Open Source Clients Development.

Reply
 
Thread Tools Search this Thread Display Modes
  #21  
Old 03-24-2017, 05:45 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by crarbo1 View Post
I'm sorry for my ignorance on this topic but what do I need to do to use OpenDCT to transcode on they fly so I don't have to do a conversion via SageTV after the regular recording.

I'm trying to look through the release notes to understand but I'm still not sure what to do.

Thanks,
Chuck
1. Stop the OpenDCT service.

2. Open opendct.properties.

3. You should see lines that look a little like this:
Code:
sagetv.device.<unique_id>.transcode_profile=
You'll also find some files in this folder: C:\ProgramData\OpenDCT\config\transcode
These are transcoding profiles. You need to place the name of the profile less .properties next to transcode_profile=.

4. You should also see lines that start like this:
Code:
sagetv.device.<unique_id>.consumer=
Make sure they have opendct.consumer.FFmpegTransSageTVConsumerImpl

5. Save opendct.properties.

6. Start the OpenDCT service.

After that you should be transcoding, but there's a catch. The transcoding feature was not added as an always on feature. The original intent was to deal with interlaced content that Android devices were not handling well, so you will see the following line in most of the profiles set to true:
Code:
# If this is true, transcoding will only happen if the content is interlaced.
v.conf.t.deinterlace_only=true
If you want to transcode everything that's not already H.264, you will want to make a copy of the profile and change that to false. If you want to transcode everything even if it's already H.264, you'll want to set the following line to true:

Code:
# If this is true, transcoding will always happen even if the program is transcoding to the exact
# same format.
v.conf.t.always=false
__________________
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; 03-24-2017 at 05:52 PM.
Reply With Quote
  #22  
Old 03-24-2017, 06:14 PM
crarbo1 crarbo1 is offline
Sage Aficionado
 
Join Date: Jul 2008
Posts: 472
Thanks so much for the guide. It does help. I found those lines in my opendct.properties file.
Below is the code from it, at least what I think is important:
Code:
consumer.dynamic.channels.ffmpeg=
consumer.dynamic.channels.media_server=
consumer.dynamic.channels.raw=
consumer.dynamic.default=opendct.consumer.FFmpegTransSageTVConsumerImpl
consumer.ffmpeg.ccextractor_all_streams=true
consumer.ffmpeg.ccextractor_custom_options=
consumer.ffmpeg.ccextractor_enabled=false
consumer.ffmpeg.circular_buffer_size=7864320
consumer.ffmpeg.enhanced_logging=true
consumer.ffmpeg.fix_stream=true
consumer.ffmpeg.limit_logging=true
consumer.ffmpeg.linux_logging=true
consumer.ffmpeg.log_stream_details_for_all_programs=false
consumer.ffmpeg.max_analyze_duration=5000000
consumer.ffmpeg.min_analyze_duration=165440
consumer.ffmpeg.min_direct_flush_size=1048576
consumer.ffmpeg.min_probe_size=165440
consumer.ffmpeg.min_upload_id_transfer_size=262144
consumer.ffmpeg.no_program_timeout_ms=10000
consumer.ffmpeg.rw_buffer_size=262144
consumer.ffmpeg.thread_priority=8
consumer.ffmpeg.thread_rename_logging=false
consumer.ffmpeg.transcode_limit=6
consumer.ffmpeg.upload_id_enabled=false
consumer.ffmpeg.upload_id_port=7818
consumer.ffmpeg.use_compat_timebase=false

sagetv.device.-1652721714.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.-1652721714.delay_to_wait_after_tuning=0
sagetv.device.-1652721714.device_name=DCT-Ceton InfiniTV PCIe (00-80-32-8f) Tuner 4
sagetv.device.-1652721714.encoder_listen_port=9000
sagetv.device.-1652721714.encoder_merit=0
sagetv.device.-1652721714.encoder_pool=dct
sagetv.device.-1652721714.exclusive_server_address=
sagetv.device.-1652721714.fast_network_encoder_switch=true
sagetv.device.-1652721714.last_channel=889
sagetv.device.-1652721714.transcode_profile=
What does those settings do, if anything? Just trying to understand all of this. I see that opendct.consumer.FFmpegTransSageTVConsumerImpl is already there but in the beginning with the consumer.dynamic.default= setting.

Should consumer.dynamic.channels.media_server= and consumer.dynamic.channels.raw= be empty like that?

I think I read in a post that consumer.ffmpeg.upload_id_enabled=false & consumer.raw.upload_id_enabled=false may need to be changed too. Should I change these to true?

What are the differences between the 4 properties files (ultrafast_mc, ultrafast720p, ultrafast720p30fps & ultrafast1080p) in the transcode folder? I just want to fix my issue but not sure what is the best.

What is the difference between transcoding and remuxing and how can I use OpenDCT just to remux on the fly? I read in other posts that remuxing may fix my issue too.

Thanks again for all the help,
Chuck
__________________
OS: Windows 10 Pro (64 bit)
Motherboard/CPU/RAM: Gigabyte EP43-UD3/Intel Core 2 Quad Q9550 @ 2.83 GHz/8 GB RAM
System Drive : Samsung 850 Pro SSD (256 GB)
Recording Drive's: 2 x WD WD4001FAEX (4 TB)
Tuner's: 2 x Ceton InfiniTV 4's
Clients: 3 x Nvidia Shield TV's; Spares: 2 x HD300's
SageTV v9.1.2.662 with OpenDCT v0.5.28
Java 1.8.0_111-b14 (32bit)
Reply With Quote
  #23  
Old 03-24-2017, 07:07 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by crarbo1 View Post
Thanks so much for the guide. It does help. I found those lines in my opendct.properties file.
Below is the code from it, at least what I think is important:
Code:
consumer.dynamic.channels.ffmpeg=
consumer.dynamic.channels.media_server=
consumer.dynamic.channels.raw=
consumer.dynamic.default=opendct.consumer.FFmpegTransSageTVConsumerImpl
consumer.ffmpeg.ccextractor_all_streams=true
consumer.ffmpeg.ccextractor_custom_options=
consumer.ffmpeg.ccextractor_enabled=false
consumer.ffmpeg.circular_buffer_size=7864320
consumer.ffmpeg.enhanced_logging=true
consumer.ffmpeg.fix_stream=true
consumer.ffmpeg.limit_logging=true
consumer.ffmpeg.linux_logging=true
consumer.ffmpeg.log_stream_details_for_all_programs=false
consumer.ffmpeg.max_analyze_duration=5000000
consumer.ffmpeg.min_analyze_duration=165440
consumer.ffmpeg.min_direct_flush_size=1048576
consumer.ffmpeg.min_probe_size=165440
consumer.ffmpeg.min_upload_id_transfer_size=262144
consumer.ffmpeg.no_program_timeout_ms=10000
consumer.ffmpeg.rw_buffer_size=262144
consumer.ffmpeg.thread_priority=8
consumer.ffmpeg.thread_rename_logging=false
consumer.ffmpeg.transcode_limit=6
consumer.ffmpeg.upload_id_enabled=false
consumer.ffmpeg.upload_id_port=7818
consumer.ffmpeg.use_compat_timebase=false

sagetv.device.-1652721714.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.-1652721714.delay_to_wait_after_tuning=0
sagetv.device.-1652721714.device_name=DCT-Ceton InfiniTV PCIe (00-80-32-8f) Tuner 4
sagetv.device.-1652721714.encoder_listen_port=9000
sagetv.device.-1652721714.encoder_merit=0
sagetv.device.-1652721714.encoder_pool=dct
sagetv.device.-1652721714.exclusive_server_address=
sagetv.device.-1652721714.fast_network_encoder_switch=true
sagetv.device.-1652721714.last_channel=889
sagetv.device.-1652721714.transcode_profile=
What does those settings do, if anything? Just trying to understand all of this. I see that opendct.consumer.FFmpegTransSageTVConsumerImpl is already there but in the beginning with the consumer.dynamic.default= setting.

Should consumer.dynamic.channels.media_server= and consumer.dynamic.channels.raw= be empty like that?

I think I read in a post that consumer.ffmpeg.upload_id_enabled=false & consumer.raw.upload_id_enabled=false may need to be changed too. Should I change these to true?

What are the differences between the 4 properties files (ultrafast_mc, ultrafast720p, ultrafast720p30fps & ultrafast1080p) in the transcode folder? I just want to fix my issue but not sure what is the best.

What is the difference between transcoding and remuxing and how can I use OpenDCT just to remux on the fly? I read in other posts that remuxing may fix my issue too.

Thanks again for all the help,
Chuck
This is the other way to use the FFmpeg consumer. You're using the dynamic consumer which is fine since you have it using the FFmpeg consumer by default.

The dynamic consumer gives you the option to specific using different consumers for different channels. Sometimes people have run into situations where one works better than the other but only for specific channels. You would provide a list of those channels comma separated. For what you're doing, this doesn't matter.
consumer.dynamic.channels.ffmpeg=
consumer.dynamic.channels.media_server=
consumer.dynamic.channels.raw=

The upload ID options are not necessary unless SageTV is on a different server than OpenDCT or you're using the OpenDCT Docker.

The profiles have comments in them that should help sort out what they are intended to do.
ultrafast_mc - This is targeted at Music Choice channels. It targets the typically formatting of those kinds of channels. It basically ends up making seeking and transitions a lot smoother.
ultrafast720p - Transcodes interlaced content down to H.264 720p at whatever the framerate already is. Lower resolutions are kept the same, but deinterlaced.
ultrafast720p30fps - Same as ultrafast720p, but it limits the framerate to 30fps.
ultrafast1080p - Transcodes interlaced content at current resolution to H.264.

Remux means we are taking the original audio/video streams and fixing anything that's broken before we write to the recording file. Transcoding in the case of OpenDCT keeps the original audio, but it converts the video to H.264 (or other formats if desired), then writes to the recording file.
__________________
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; 03-24-2017 at 07:10 PM.
Reply With Quote
  #24  
Old 03-25-2017, 02:44 AM
crarbo1 crarbo1 is offline
Sage Aficionado
 
Join Date: Jul 2008
Posts: 472
Quote:
Originally Posted by EnterNoEscape View Post
Remux means we are taking the original audio/video streams and fixing anything that's broken before we write to the recording file. Transcoding in the case of OpenDCT keeps the original audio, but it converts the video to H.264 (or other formats if desired), then writes to the recording file.
Thanks so much for that explanation. It helps alot.

I do have one more question. What settings do I need to change from my properties file to just remux my recordings on the fly? It seems as if that is would fix my issues and I wouldn't have to do any transcoding then.

Thanks,
Chuck
__________________
OS: Windows 10 Pro (64 bit)
Motherboard/CPU/RAM: Gigabyte EP43-UD3/Intel Core 2 Quad Q9550 @ 2.83 GHz/8 GB RAM
System Drive : Samsung 850 Pro SSD (256 GB)
Recording Drive's: 2 x WD WD4001FAEX (4 TB)
Tuner's: 2 x Ceton InfiniTV 4's
Clients: 3 x Nvidia Shield TV's; Spares: 2 x HD300's
SageTV v9.1.2.662 with OpenDCT v0.5.28
Java 1.8.0_111-b14 (32bit)
Reply With Quote
  #25  
Old 03-25-2017, 01:46 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by crarbo1 View Post
Thanks so much for that explanation. It helps alot.

I do have one more question. What settings do I need to change from my properties file to just remux my recordings on the fly? It seems as if that is would fix my issues and I wouldn't have to do any transcoding then.

Thanks,
Chuck
The FFmpeg consumer remuxes everything already. There are definitely situations where the output might be more compatible when you transcode. The best example would be if the device doesn't work well with MPEG-2 video.
__________________
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
  #26  
Old 03-25-2017, 02:18 PM
crarbo1 crarbo1 is offline
Sage Aficionado
 
Join Date: Jul 2008
Posts: 472
Quote:
Originally Posted by EnterNoEscape View Post
The FFmpeg consumer remuxes everything already. There are definitely situations where the output might be more compatible when you transcode. The best example would be if the device doesn't work well with MPEG-2 video.
Thanks again for the info. If OpenDCT is set to remux by default, since I have never changed the config settings before, then what would be the settings for OpenDCT so it wouldn't remux or transcode?

Thanks,
Chuck
__________________
OS: Windows 10 Pro (64 bit)
Motherboard/CPU/RAM: Gigabyte EP43-UD3/Intel Core 2 Quad Q9550 @ 2.83 GHz/8 GB RAM
System Drive : Samsung 850 Pro SSD (256 GB)
Recording Drive's: 2 x WD WD4001FAEX (4 TB)
Tuner's: 2 x Ceton InfiniTV 4's
Clients: 3 x Nvidia Shield TV's; Spares: 2 x HD300's
SageTV v9.1.2.662 with OpenDCT v0.5.28
Java 1.8.0_111-b14 (32bit)
Reply With Quote
  #27  
Old 03-25-2017, 04:48 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
Quote:
Originally Posted by crarbo1 View Post
Thanks again for the info. If OpenDCT is set to remux by default, since I have never changed the config settings before, then what would be the settings for OpenDCT so it wouldn't remux or transcode?

Thanks,
Chuck
Change consumer.dynamic.default= to opendct.consumer.RawSageTVConsumerImpl. That will write the stream unchanged.
__________________
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
  #28  
Old 03-25-2017, 06:10 PM
crarbo1 crarbo1 is offline
Sage Aficionado
 
Join Date: Jul 2008
Posts: 472
Quote:
Originally Posted by EnterNoEscape View Post
Change consumer.dynamic.default= to opendct.consumer.RawSageTVConsumerImpl. That will write the stream unchanged.
Thanks again. I will have to play around with these settings when I have some time to see how things work out.
__________________
OS: Windows 10 Pro (64 bit)
Motherboard/CPU/RAM: Gigabyte EP43-UD3/Intel Core 2 Quad Q9550 @ 2.83 GHz/8 GB RAM
System Drive : Samsung 850 Pro SSD (256 GB)
Recording Drive's: 2 x WD WD4001FAEX (4 TB)
Tuner's: 2 x Ceton InfiniTV 4's
Clients: 3 x Nvidia Shield TV's; Spares: 2 x HD300's
SageTV v9.1.2.662 with OpenDCT v0.5.28
Java 1.8.0_111-b14 (32bit)
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 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
mini client purchase RodZilla SageTV Clients Development 3 09-23-2016 11:12 AM
Mini-Client vs Full Client vs HD300 NetworkGuy SageTV Clients Development 5 09-12-2016 06:11 PM
Mac Mini Client, BootCamp, Windows 7, DVD Playback Issue Addict SageTV Software 4 08-04-2011 02:33 PM
SageTV 7 WHS, client on Mac Mini? radiopaque SageTV Mac Edition 6 08-17-2010 04:21 AM
G4 Mac Mini as SageTV client? jbarr Hardware Support 2 06-28-2007 02:54 PM


All times are GMT -6. The time now is 05:59 PM.


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