SageTV Community

SageTV Community (http://forums.sagetv.com/forums/index.php)
-   Hardware Support (http://forums.sagetv.com/forums/forumdisplay.php?f=9)
-   -   CHANNELS DVR with Generic Pipe Capture (PLUTO TV as well) (http://forums.sagetv.com/forums/showthread.php?t=66804)

boukmandutty 10-16-2021 10:59 AM

CHANNELS DVR with Generic Pipe Capture (PLUTO TV as well)
 
The following assumes you have opendct installed and configured for generic pipe capture the way ENE outlines at the start. of this thread:

https://forums.sagetv.com/forums/sho...01&postcount=1

OPENDCT CONFIG FILE

The relevant parts of the opendct config will look something like the following.

I have added two pipe devices as described at the beginning of the thread mentioned above. I am sticking to just two for now:

1. Stop opendct service and edit the indicated line in the opendct properties file with something like this:

Quote:

generic.pipe.device_names_csv=Pipe 1, Pipe 2
Restart opendct service and check the properties file. You should see the tuners you have created added.

2. After they are added add the following path for each newly created device. (Change IP address according to your server)

Quote:

c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://xxx.xxx.xxx.xxx\:8089/devices/ANY/channels/%c%/hls/master.m3u8? -f mpegts -codec\:v copy -codec\:a copy -
Linux or Docker:
Quote:

ffmpeg -i http\://xxx.xxx.xxx.xxx\:8089/devices/ANY/channels/%c%/stream.mpg -f mpegts -codec\:v copy -codec\:a copy -
3. If you are on linux or using docker change:
Quote:

consumer.dynamic.default=opendct.consumer.FFmpegTransSageTVConsumerImpl
to:

Quote:

default=opendct.consumer.RawSageTVConsumerImpl
Based on what nyplayer advises later in this thread it solves the problem of Sagetv having issues tuning channels that Channelsdvr does otherwise with no problems.


EPG & CHANNEL MAPPING

Credit and thanks to hvymetal for working out this part of the puzzle for us. The guide data from channels dvr works seamlessly and is automatically mapped to the the corresponding channels using his updated xmltv plugin. The plugin and his instructions are here:

https://forums.sagetv.com/forums/showthread.php?t=66899


If you use PlutoTv keep an eye on his activities here:

https://forums.sagetv.com/forums/sho...015#post633015

NetworkGuy 10-16-2021 11:07 AM

Why not just ChannelsDVR do the recording and point a SageTV input directory at the ChannelsDVR recording directory? SageTV will automatically import the recordings.

KryptoNyte 10-16-2021 11:09 AM

Can Sage parse the Channels DVR filename to associate any given file with an actual TV program episode? Can live TV somehow be watched and comskipped in this fashion?

boukmandutty 10-16-2021 11:21 AM

All SageTV takes from Channels by the method described is the video feed. It records that feed from the virtual device (the opendct pipe) same way it would record the feed from any other device.

nyplayer 10-16-2021 11:29 AM

Quote:

Originally Posted by NetworkGuy (Post 631304)
Why not just ChannelsDVR do the recording and point a SageTV input directory at the ChannelsDVR recording directory? SageTV will automatically import the recordings.

This gives us the option to Exclude Channels DVR from the process when Recording Pluto and other M3U sources. This gives SageTV the ability to watch/record M3U sources. The way I have my test system setup right now using this I now have the ability to share tuners when watching the same channel on ChannelsDVR and SageTV. Once XMLTV is working in SageTV we can use the Pluto source and guide.

boukmandutty 10-16-2021 11:31 AM

Quote:

Originally Posted by NetworkGuy (Post 631304)
Why not just ChannelsDVR do the recording and point a SageTV input directory at the ChannelsDVR recording directory? SageTV will automatically import the recordings.

One of the reasons I went for this was they fact that I prefer my server to sleep. If you use channels dvr on windows that function just does not work. The channels dvr people dont seem to have worked out the power saving part of things yet and so the server wakes up every three or so minutes after hibernation. I dont want my tv server to run 24/7.

The other thing is the large database of recordings I already have in sagetv. Plus I am sure there hoops to jump over after pointing sagetv to the channels directory. (I wonder if there is a way to share my sagetv recordings with channels so I can view them outside my home network?)

Another thing is that with sagetv I add hard drives till kingdom come far more easily for space if needed. It is overall still just more robust.

NetworkGuy 10-16-2021 12:46 PM

Quote:

Originally Posted by boukmandutty (Post 631308)
(I wonder if there is a way to share my sagetv recordings with channels so I can view them outside my home network?)

Yes, ChannelsDVR has a local content function that you can point at the top of your SageTV recording directories. All the SageTV recording show up in Channels. I used this when I was on vacation in May and June. It is much better than PLEX for remote viewing.

nyplayer 10-16-2021 01:05 PM

I made a change to your HTTP settings so that ChannelsDVr closes the stream immediately ... It also stops Channels DVR from transcoding the stream before SageTV gets it.

c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -


If anybody is Interested this is how I setup my 2 Primes on SageTV. This solves the Problem of using Different tuners when Watching in Channels and SageTV ... Also eliminates the Problem of using 2 tuners in order to keep padding on all recordings even back to back In SageTV. This is for users of ChannelsDVR and SageTV.


Code:

generic.pipe.device_names_csv=Cable1,Cable2,Cable3,Cable4,Cable5,Cable6


sagetv.device.2010761140.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761140.custom_channels=
sagetv.device.2010761140.delay_to_wait_after_tuning=0
sagetv.device.2010761140.device_name=Cable1
sagetv.device.2010761140.encoder_listen_port=9000
sagetv.device.2010761140.encoder_merit=0
sagetv.device.2010761140.encoder_pool=generic_pipe_cable
sagetv.device.2010761140.exclusive_server_address=
sagetv.device.2010761140.fast_network_encoder_switch=true
sagetv.device.2010761140.last_channel=709
sagetv.device.2010761140.stopping_executable=
sagetv.device.2010761140.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761140.transcode_profile=
sagetv.device.2010761140.tuning_delay_ms=0
sagetv.device.2010761141.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761141.custom_channels=
sagetv.device.2010761141.delay_to_wait_after_tuning=0
sagetv.device.2010761141.device_name=Cable2
sagetv.device.2010761141.encoder_listen_port=9000
sagetv.device.2010761141.encoder_merit=0
sagetv.device.2010761141.encoder_pool=generic_pipe_cable
sagetv.device.2010761141.exclusive_server_address=
sagetv.device.2010761141.fast_network_encoder_switch=true
sagetv.device.2010761141.last_channel=707
sagetv.device.2010761141.stopping_executable=
sagetv.device.2010761141.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761141.transcode_profile=
sagetv.device.2010761141.tuning_delay_ms=0
sagetv.device.2010761142.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761142.custom_channels=
sagetv.device.2010761142.delay_to_wait_after_tuning=0
sagetv.device.2010761142.device_name=Cable3
sagetv.device.2010761142.encoder_listen_port=9000
sagetv.device.2010761142.encoder_merit=0
sagetv.device.2010761142.encoder_pool=generic_pipe_cable
sagetv.device.2010761142.exclusive_server_address=
sagetv.device.2010761142.fast_network_encoder_switch=true
sagetv.device.2010761142.last_channel=-1
sagetv.device.2010761142.stopping_executable=
sagetv.device.2010761142.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761142.transcode_profile=
sagetv.device.2010761142.tuning_delay_ms=0
sagetv.device.2010761143.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761143.custom_channels=
sagetv.device.2010761143.delay_to_wait_after_tuning=0
sagetv.device.2010761143.device_name=Cable4
sagetv.device.2010761143.encoder_listen_port=9000
sagetv.device.2010761143.encoder_merit=0
sagetv.device.2010761143.encoder_pool=generic_pipe_cable
sagetv.device.2010761143.exclusive_server_address=
sagetv.device.2010761143.fast_network_encoder_switch=true
sagetv.device.2010761143.last_channel=-1
sagetv.device.2010761143.stopping_executable=
sagetv.device.2010761143.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761143.transcode_profile=
sagetv.device.2010761143.tuning_delay_ms=0
sagetv.device.2010761144.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761144.custom_channels=
sagetv.device.2010761144.delay_to_wait_after_tuning=0
sagetv.device.2010761144.device_name=Cable5
sagetv.device.2010761144.encoder_listen_port=9000
sagetv.device.2010761144.encoder_merit=0
sagetv.device.2010761144.encoder_pool=generic_pipe_cable
sagetv.device.2010761144.exclusive_server_address=
sagetv.device.2010761144.fast_network_encoder_switch=true
sagetv.device.2010761144.last_channel=-1
sagetv.device.2010761144.stopping_executable=
sagetv.device.2010761144.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761144.transcode_profile=
sagetv.device.2010761144.tuning_delay_ms=0
sagetv.device.2010761145.consumer=opendct.consumer.DynamicConsumerImpl
sagetv.device.2010761145.custom_channels=
sagetv.device.2010761145.delay_to_wait_after_tuning=0
sagetv.device.2010761145.device_name=Cable6
sagetv.device.2010761145.encoder_listen_port=9000
sagetv.device.2010761145.encoder_merit=0
sagetv.device.2010761145.encoder_pool=generic_pipe_cable
sagetv.device.2010761145.exclusive_server_address=
sagetv.device.2010761145.fast_network_encoder_switch=true
sagetv.device.2010761145.last_channel=-1
sagetv.device.2010761145.stopping_executable=
sagetv.device.2010761145.streaming_executable=c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
sagetv.device.2010761145.transcode_profile=
sagetv.device.2010761145.tuning_delay_ms=0

https://i.postimg.cc/x81Sf2LQ/Screen...-16-125024.png

boukmandutty 10-16-2021 03:23 PM

Quote:

c\:\\\\ffmpeg\\bin\\ffmpeg.exe -i http\://10.0.0.2\:8089/devices/ANY/channels/%c%/stream.mpg?format\=ts -f mpegts -codec\:v copy -codec\:a copy -
This command without the transcoding gives me random pixelations in livetv for some reason. Is is entirely smooth for you?

nyplayer 10-16-2021 03:26 PM

Quote:

Originally Posted by boukmandutty (Post 631313)
This command without the transcoding gives me random pixelations in livetv for some reason. Is is entirely smooth for you?

Yes it is. What is your input ? and Client I am using a FIRETV 4K.

BTW I am using FFMPEG4 I will soon see if I can add my ASTC 3 tuner and see if I can record ASCT 3.

boukmandutty 10-16-2021 04:05 PM

Quote:

Originally Posted by nyplayer (Post 631314)
Yes it is. What is your input ? and Client I am using a FIRETV 4K.

BTW I am using FFMPEG4 I will soon see if I can add my ASTC 3 tuner and see if I can record ASCT 3.

I was testing it on a pc. It is actually smooth with a nvidia shield. I need to check the recordings with this option.

In the past when I used a BM1000 device I could never skip through my recordings on the android client without it freaking out and looping infinitely back to the start of the recording. I think it was a codec issue because there was no problem with my over the air recordings. Only the ones that had been encoded has h264 via the BM1000 device game trouble and made me have to use a pc for a frontend.

Let me know how the ASCT 3 goes. Is there enough programming around to make such a device worth it at this stage?

nyplayer 10-16-2021 04:10 PM

Quote:

Originally Posted by boukmandutty (Post 631316)
I was testing it on a pc. It is actually smooth with a nvidia shield. I need to check the recordings with this option.

In the past when I used a BM1000 device I could never skip through my recordings on the android client without it freaking out and looping infinitely back to the start of the recording. I think it was a codec issue because there was no problem with my over the air recordings. Only the ones that had been encoded has h264 via the BM1000 device game trouble and made me have to use a pc for a frontend.

Let me know how the ASCT 3 goes. Is there enough programming around to make such a device worth it at this stage?

I added all my tuners and Seeking back and forth is working great. I will look at ASTC 3 later right now I would like to see about Adding Pluto/TVE with guide data. Thanks for sharing this. I am always lurking if we ever figure out the XMLTV input.

boukmandutty 10-16-2021 05:10 PM

Man I have been struggling with the epg. There doesnt seem to be an option to import your own epg file anymore.

nyplayer 10-16-2021 05:30 PM

Quote:

Originally Posted by boukmandutty (Post 631322)
Man I have been struggling with the epg. There doesnt seem to be an option to import your own epg file anymore.

I know there was a plugin do not know if it still works....

https://forums.sagetv.com/forums/sho...t=xmltv+plugin

nyplayer 10-17-2021 08:54 AM

Quote:

Originally Posted by boukmandutty (Post 631322)
Man I have been struggling with the epg. There doesnt seem to be an option to import your own epg file anymore.

I am close using this guide ....


https://forums.sagetv.com/forums/sho...t=xmltv&page=8

nyplayer 10-17-2021 09:28 AM

1 Attachment(s)
Got Guide Data into SageTV using XML ... This is just a start it seems the season and episode is not quite right.


In Sage the Properties I Edited ,,,,

epg/epg_import_plugin=
to
epg/epg_import_plugin=xmltv.XMLTVImportPlugin

I Extracted XMLTV zip attached below and placed XMLTV folder in

C:\Program Files\SageTV\SageTV

I created a xmltv.properties C:\Program Files\SageTV\SageTV

Contents...
configurations=xmltv.properties
provider.name=TVECOMCAST
provider.id=1
xmltv.files=guide.xml

Copied my XML guide.xml to C:\Program Files\SageTV\SageTV

Started Sage.
setup tuner with XMLTV input zipcode 00000

https://i.postimg.cc/66YTZmDP/Screen...-17-083313.png

boukmandutty 10-17-2021 09:43 AM

I am heading home to try this.

nyplayer 10-17-2021 10:32 AM

Quote:

Originally Posted by boukmandutty (Post 631335)
I am heading home to try this.

The Automapping did not work. Also to get season and Episode ... I had the run the XMLTV from ChannelsDVR through python ...


Code:

#!/usr/bin/env python3
import requests

URL = "http://10.0.0.214:8089/devices/TVE-Comcast_SSO/guide/xmltv?duration=1209600"

tve_xml = requests.get(URL)

xmlOutput = "C:/guide/guide.xml"

with open(xmlOutput,"w", encoding="utf8") as fileOut:
    for line in tve_xml.text.splitlines():
        fileOut.write(line+"\n")
        if '<episode-num system="onscreen">' in line:
            season_episode = line.replace('<episode-num system="onscreen">','').replace('</episode-num>','')
            if "S" in season_episode:
                season = ((season_episode.split('S'))[1].split('E'))[0]
                episode = ((season_episode.split('S'))[1].split('E'))[1]
                fileOut.write('    <episode-num system="xmltv_ns">' + str(int(season)-1) + '.' + str(int(episode)-1) + '.</episode-num>\n')


boukmandutty 10-17-2021 12:00 PM

Quote:

Originally Posted by nyplayer (Post 631337)
The Automapping did not work.

Where would I find the epg that schedule direct downloads? It might be useful to compare their formats. I am assuming that things might have changed since the plugin we are trying to use.

nyplayer 10-17-2021 12:23 PM

Quote:

Originally Posted by boukmandutty (Post 631339)
Where would I find the epg that schedule direct downloads? It might be useful to compare their formats. I am assuming that things might have changed since the plugin we are trying to use.

https://drive.google.com/file/d/1oMC...ew?usp=sharing


All times are GMT -6. The time now is 02:13 AM.

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