Sports Live Stream Screen Capture Record Import to Channels

I have a subscription to espn+ for watching nhl hockey games. The issue is that if I start watching a game mid game, I can only watch live. I can "record" the game using OBS monitor capture directly to my imports folder in ChannelsDVR. However when I start watching the recording via channels it is like the recording is only as long as it was the moment I started watching it. Ideally i could watch a game from the beginning starting mid-game and then catch up to real-time by fast-forwarding thru intermissions etc. If I caught up to real-time it simply would not fast forward any more, but would keep playing in real-time. So a couple questions:

  1. is there a format that is best to record/capture in for channels (mp4, ts, mkv...)
  2. any way for channels to treat the import as a growing stream
  3. I heard using TS stream this works in Plex, but I would prefer channels
  4. If anyone has suggestions on how to schedule and automate

Thanks.

Dave

An update to this. I was able to have OBS record the live stream capture to my ChannelsDVR Local Content TV Shows directory. Within a few minutes the auto media scanner picks up the import and in my case it flagged as a 3 minute video. Obviously it is a growing file while it is recording the live stream. I used TS file type and when I go to watch it the length of the file is set at whatever time point it was at when I started watching. So if I start watching 15 mintes into the broadcast, I am able to view from minute 1 - 15 with full DVR FF RW Pause capability. Once I try to pass the 15 min point the session in channelsDVR ends. If I re-start it I can then view to new point in time but must FF 15 min to get where I left off.

Question 1: Is there any way to force a rescan of the media that updates the length of the video file in real-time? I notice re-naming the file prompts this but that is not possible before the file recording is complete.

One caveat I found was that when viewing with ChannelsDVR locally, it seems to disregard the initial lenght that it determined the video file to be. In my case It was 3 minutes. However if I view the video in channelsDVR remotely, it adheres to the 3 min time stamp and will not allow to view past 3 min. Renaming the file prompts a re-scan with updated video length but this only is possible after the recording is complete.

Question 2: How can I update the video file information? It shows up as "Nacion ESPN" by default with a time stamp of December 31, 1969

Also as additional info I am pretty close to automating these recordings using Automator on MacOS

Thanks for any info...

Dave

If interested, I have set up a live stream that allows me to stream screen captures directly to Channels DVR. I can then either watch them live using my Channels apps or record them directly in the Channels DVR. I use this to watch anything that can be viewed in a browser (or on a computer screen) on my Channels DVR apps. Conveniently, I can record anything that can be viewed in a browser (or a computer screen) too. The real advantage to this setup is that you can view streams while they are live and/or while they are being recorded.

3 Likes

Curious what you did here. I've messed around with using obs to capture the stream and then rebroadcast it so I could added it via a custom channel but it was never reliable enough to trust.

2 Likes

I am actually interested in that too for a WeatherScan hobby project I have been looking into. I basically need something that can take a live browser screen and shoot it to Channels. Sounds like something you have figured out.

Happy to see some interest, since I am still finding little nagging bugs to work out (like getting the correct aspect ration on the channels dvr player.

I use VLC. I too played with OBS (and I love the program), but I find VLC to be simpler and easier to manipulate from the Windows command line.

I use two DirectShow drivers to capture: screen-capture-recorder and virtual-audio-capturer. Both are available at: https://github.com/rdp/screen-capture-recorder-to-video-windows-free.

I'll note that once the video capture driver is installed, the resolution to be scanned and the start locations on the screen are set in the Windows Registery (Computer\HKEY_CURRENT_USER\Software\screen-capture-recorder)

I set VLC to the DirectShow capture mode and select the above two drivers as the devices. That is it for the capture.

Then, set VLC output to stream http (pick an open port) and set transcode profile to Video-MPEG-2+MPGA(TS). I had to set a video filter to vertically flip the output, but you may not have to do that. I don't understand what the problem is well enough to predict it. That is pretty much it for VLC. There may be some tweaking with video filters and preferences, but generally, that should get the stream started.

To skip all the UI stuff, I use the following command line to start the VLC stream:

start vlc.exe --run-time=%time% dshow:// :dshow-vdev=screen-capture-recorder :dshow-adev=virtual-audio-capturer :dshow-aspect-ratio=16:9 :dshow-chroma= :dshow-fps=30 :no-dshow-config :no-dshow-tuner :dshow-tuner-channel=0 :dshow-tuner-frequency=0 :dshow-tuner-country=0 :dshow-tuner-standard=0 :dshow-tuner-input=0 :dshow-video-input=-1 :dshow-video-output=-1 :dshow-audio-input=-1 :dshow-audio-output=-1 :dshow-amtuner-mode=1 :dshow-audio-channels=0 :dshow-audio-samplerate=0 :dshow-audio-bitspersample=0 :live-caching=300 :sout=#transcode{vcodec=mp1v,vb=6000,vfilter=transform,scale=Auto,width=1280,height=720,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:http{mux=ts,dst=:8080/video/} :no-sout-all :sout-keep

The 8080/video/ in that string is the port (8080) + a file path. For some reason, VLC or Channels expected a file path.

The --run-time=%time% is used because I call this command from a batch file where I pass the length of time that I want VLC to stream to the program. In this way, VLC will stop streaming softly. This doesn't matter to Channels, but it is important if you are also streaming to a file.

For channels, I use the docker version of XTEVE to create an M3U file suitable for recording.

I start by pointing pointing XTEVE to a playlist (M3U) that includes a single channel:

#EXTM3U
#EXTINF:0 tvg-id="Private" channel-number="1" tvg-chno="1" tvg-name="Private" group-title="Private"
http://192.168.183.3:8080/video/

The IP address is the IP address of the device running VLC and the port is the same port chosen for VLC.

NOTE: XTEVE IS NO LONGER NEEDED - since Channels DVR will create dummy (1-hour) episodes in a custom channel where EPG data is unavailble. See DVR Pre-Release: Placeholder guide data You can ignore the below XTEVE discussion and follow the above link instruction instead.

I set XTEVE to create a dummy EPG using this imput. (Note: if you don't plan to record with Channels, then the XTEVE server is not necessary. You can simply use the tags available in Channels to dress up the guide and live streaming works. You just can't record using Channels).

For my setup, XTEVE creates two files: 1) an M3U file and 2) an XMLTV file.

I create a custom channel in Channels DVR and point it to these two files using XTEVE's http server.

The custom channel in Channels DVR needs to have a screen format of MPG-TS.

That is pretty much it.

Let me know if you find I left something out and I'll rack my brain.

1 Like

You don't need Xteve any longer because the DVR will create dummy EPG for you.

1 Like

I know the DVR will create a dummy EPG, but XTEVE will create dummy episodes at 30 min intervals. So, when I select record, I can add padding to the expected end time. Will Channels tags now create individual episodes that allow for recording?

2 Likes

See DVR Pre-Release: Placeholder guide data

Sweet, I'll edit the above to clarify. This makes the whole setup much simpler. Thank you.

EDIT: Works perfectly. Eliminated XTEVE.

Screen capture of Channels DVR showing a remote browser runnning the weather program.

5 Likes

Well that is awesome, and looks like it may work with the project I am looking into (I would be running the WeatherScan simulator on my own equipment). That will be something I'll be checking out after the holiday weekend. Really cool.

You'll need to set the aspect ratio in the capture portion of VLC to match your screen. The above is slightly off, since I didn't correct the 4:3 default aspect ratio before grabbing that shot.

1 Like

Are you able to explain the process you did here?

I pretty much described it in the post above. But, I'll summarize it here: I am using windows 11. First download and install VLC (it is free). Second, download and install the free directshow drivers: screen-capture-recorder and virtual-audio-capturer. Both are available at: https://github.com/rdp/screen-capture-recorder-to-video-windows-free .
To manually set up a screen capture you open VLC and under Media:Open Capture Device. Select DirectShow as your Capture Device and under "video device name" select screen-capture-recorder. Under "audio device name" select virtual-audio-capture. At the bottom, instead of Play, click the arrow and select "Stream." Then on the following page hit Next. On the next screen click the arrow next to "Add" and select HTTP. Then click on the Add to add an http stream. On the next screen select an unused port (I use the default 8080) and a pathname. I have had no luck using the default path (), so I use \video\ as my path. Select next and then under "Profile" select "Video - MPEG-2-MPGA (TS)". Select Next. Then click Stream and you will be streaming your full screen on the listed port using the selected profile. Now, on the channels side, you need to set up a custom channels source on the settings page.

Under Stream Format select "MPEG-TS"

Under Source, select Text and put the following (or similar) into the text box.

text: #EXTM3U
#EXTINF:0 channelID="x-ID.0" tvg-chno="2" tvg-name="ScreenCap" tvg-id="2" tvg-logo="" group-title="HD",ScreenCap
http://IP_address_of_Windows11:8080/video/

Note: you need to select a tvg-id that is unused. I use channel 2 because I don't have that channel in my guide otherwise, and it is at the top. You can name the channel anything you like, but I use ScreenCap. You have to replace the IP address:port/path with the correct information from your Windows 11 machine and your earlier setup.

Now, when you navigate to the guide and select the ScreenCap channel, you will see the default guide (30 min blank slots). When you select play or record, Channels will open the link to the stream on your Windows 11 machine.

Once all of this is working, you can create a batch file to do many things. For example, I have batch files that will start and stop VLC streams using a timer. The VLC start and stop commands are listed above in an earlier post.

Let me know if you need any help or more detail.

Here's another way to do this now:

1 Like