Jump to content

VDR plugin development


Tuxx

Recommended Posts

Here are the log snippets:

V 4.3.1.0 -> works with my system

2020-02-14 18:09:14.788 Info LiveTvManager: Opening channel stream from LiveTV.Vdr, external channel Id: S19.2E-1-1019-10301
2020-02-14 18:09:14.789 App: [LiveTV.Vdr:GetChannelStream]  GetChannelStream...
2020-02-14 18:09:14.789 Info App: [LiveTV.Vdr:GetChannelStream] StreamUrl: http://localhost:3000/TS/S19.2E-1-1019-10301
2020-02-14 18:09:14.794 Info LiveTvManager: Opening SharedHttpStream Live stream from http://localhost:3000/TS/S19.2E-1-1019-10301
2020-02-14 18:09:14.794 Info HttpClient: GET http://localhost:3000/TS/S19.2E-1-1019-10301
2020-02-14 18:09:14.804 Info HttpClient: Http response 200 from http://localhost:3000/TS/S19.2E-1-1019-10301 after 10ms. HeadersConnection=close, Pragma=no-cache, Cache-Control=no-cache, Server=VDR-2.4.0/streamdev-server-0.6.1-git, Date=Fri, 14 Feb 2020 17:09:14 GMT
2020-02-14 18:09:14.807 Info LiveTvManager: Beginning SharedHttpStream stream to /var/lib/emby/transcoding-temp/8a074aecc2e04c73978116a69b462005.ts
2020-02-14 18:09:14.807 Info LiveTvManager: Live stream opened after 16,0019ms

V 4.2.X.X -> works @ domenic

2020-02-16 18:49:31.800 Info LiveTvManager: Opening channel stream from LiveTV.Vdr, external channel Id: S91.0W-256-15-225
2020-02-16 18:49:31.802 Info App: [LiveTV.Vdr:GetChannelStream] StreamUrl: http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 18:49:31.827 Info LiveTvManager: Opening SharedHttpStream Live stream from http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 18:49:31.831 Info HttpClient: GET http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 18:49:32.060 Info HttpClient: Http response 200 from http://192.168.0.97:8555/TS/S91.0W-256-15-225 after 229ms. HeadersConnection=close, Pragma=no-cache, Cache-Control=no-cache, Server=VDR-2.4.1/streamdev-server-0.6.1-git, Date=Mon, 17 Feb 2020 00:49:32 GMT
2020-02-16 18:49:32.083 Info LiveTvManager: Beginning SharedHttpStream stream to /var/lib/emby-server/transcoding-temp/1e0b5a12502f4e1ebda5a83a97bfd1ea.ts
2020-02-16 18:49:32.086 Info LiveTvManager: Live stream opened after 279.6062ms

V 4.4.X.X -> not working @ domenic

2020-02-16 14:52:32.737 Info LiveTvManager: Opening channel stream from LiveTV.Vdr, external channel Id: S91.0W-256-15-225
2020-02-16 14:52:32.738 Info App: [LiveTV.Vdr:GetChannelStream] StreamUrl: http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 14:52:32.749 Info SharedHttpPipelineSource: Opening SharedHttpPipelineSource Live stream from http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 14:52:32.751 Info HttpClient: GET http://192.168.0.97:8555/TS/S91.0W-256-15-225
2020-02-16 14:52:32.982 Info HttpClient: Http response 200 from http://192.168.0.97:8555/TS/S91.0W-256-15-225 after 229ms. HeadersConnection=close, Pragma=no-cache, Cache-Control=no-cache, Server=VDR-2.4.1/streamdev-server-0.6.1-git, Date=Sun, 16 Feb 2020 20:52:32 GMT
2020-02-16 14:52:33.054 Info SharedHttpPipelineSource: Beginning SharedHttpPipelineSource stream to /var/lib/emby-server/transcoding-temp/e8b22a235dcf4298a2a509ceb4b81d7d.ts
2020-02-16 14:52:33.162 Info LiveTvManager: Live stream opened after 419.0423ms

Seems that the probing mechanism has changed - SharedHttpStream vs. SharedHttpPipelineSource on V4.4.

But on V4.3 he had similar problems and there it's accessed via "SharedHttpStream"?!

 

By looking into the ffmpeg data, it sems that ffmpeg stops working?!

 

 

Link to comment
Share on other sites

domenic

And you've only tried in the web app, right?

No it also fails using the android app for both versions. Attached is log.

 

Edit, I did try again with the Android app and it is able to play on version 4.2.1.0

embyserver.txt

Edited by domenic
Link to comment
Share on other sites

@@frank84 @@domenic

 

Hi,

 

I'm here to check whether I could help you with this issue in some way.

I need to say that I'm neither familiar with VDR nor with the VDR plugin.

 

As far as I could see, the plugin is rather old and there were recent attempts to get it working again, is that right?

(or has it been working continuously ever since it had been created?)

 

 

I'm asking for the following reason: I've seen the logs where ffmpeg is running in case of Emby Server 4.2.x but not with the latest versions.

 

You reported that "it" is working fine with Emby 4.2.x.. - and I need to know a bit more about that "it".

 

What does that "it" mean actually?

  • Does "it" mean that the whole plugin is working fine?
    .
  • Or does "it" rather mean that you're able to see just "something" playing - but not necessarily the expected channel?
Edited by softworkz
Link to comment
Share on other sites

domenic

 

@@frank84 @@domenic

 

Hi,

 

I'm here to check whether I could help you with this issue in some way.

I need to say that I'm neither familiar with VDR nor with the VDR plugin.

 

As far as I could see, the plugin is rather old and there were recent attempts to get it working again, is that right?

(or has it been working continuously ever since it had been created?)

 

 

I'm asking for the following reason: I've seen the logs where ffmpeg is running in case of Emby Server 4.2.x but not with the latest versions.

 

You reported that "it" is working fine with Emby 4.2.x.. - and I need to know a bit more about that "it".

 

What does that "it" mean actually?

  • Does "it" mean that the whole plugin is working fine?

    .

  • Or does "it" rather mean that you're able to see just "something" playing - but not necessarily the expected channel?

 

 

 

 

The Plugin has been updated, we both have worked on the Plugin.  At this point the latest code has been updated by Frank84 (Thanks!); it is current and works for me with the 4.2 release. 

I am running this under Debian Server Version 8.11 (jessie, jessie-backports).  The Live TV functions that have been implimented (note not all Live TV functions have been implimented yet) are functional.

 

The plugin always selects the corrct channel.  I have issues when live playback is attempted against newer versions of Emby, I never get video.  With Emby 4.2 sometimes when starting to watc an HD Channel (different than an SD Channel), I will get failures in that I get a black screen.  Clicking back then the play button again once or twice will provide the channel.  In this case it appears Emby (fffmpeg?) has a timeout before VDR can prepare the stream for playback.

transcode.zip.txt

vdrlog.txt

Edited by domenic
Link to comment
Share on other sites

Thanks for the explanation!

 
The log files you posted here are all showing that the data that you're getting from VDR contains detail information about 13 tv channels with all audio, video and subtiitle streams.
 
What I've been wondering is whether

  • you actually get the full transponder data from VDR (including all streams) ..?
    .
  • Or whether VDR filters the stream data to include only the streams for the requested channel
    (in that case, VDR should also have adjusted PAT and PMT data to include the selected channel's data only and not the data from all other channels as well)

Most likely, it's the second case that we're seeing here.
 
Let's look at the ffmpeg log:
 
5e54a0df18dfc_transponder_channels.jpg
 
There are quite a number of streams shown (from the other channels on the transponder).
 
ffmpeg is detecting which streams are available and which are not. This is important to understand the behavior were seeing:

  • In Emby Server 4.2.x we didn't use explicit stream mapping in ffmpeg commands.
    => That's why ffmpeg's automatic selection is choosing the first stream that is available (not #0:0)
    .
  • But after 4.2.x we had to switch to use explicit stream mapping (e.g. #v:0 - first video stream)
    => When the first video stream isn't the one that is present, the operation fails

Bottom line is that there's not much we can do about this right now. We cannot return to the previous implementation.
 
Currently, I see only two ways to resolve this:
 
1. Either, get VDR to filter out the PAT and PMT information for the non-existent streams.
(I don't know VDR, so I don't know whether that's possible)
 
2. Or wait, and in the future we will extend our plugin interface to allow specifying a certain stream that Emby should use

Edited by softworkz
Link to comment
Share on other sites

domenic

Thank you for the explanation, I will attempt to contact the VDR community to determine if the streaming application can be modified to "not just" dump the current transponder stream and parse some of the data.

Link to comment
Share on other sites

domenic

 

Just a note from the Stream Docs...

3.1 Usage HTTP server:----------------------You can use the HTTP part by accessing the server with a HTTP-capable mediaplayer (such as XINE, MPlayer, and so on, if you have appropriate MPEG2-codecsinstalled). In the PlugIn's Setup, you can specify the port the server willlisten to with the parameter "HTTP Server Port". The parameter "HTTP Streamtype"allows you to specify a default stream type, which is used if no specific typehas been requested in the URL (see below). The supported stream types are:  TS     Transport Stream (i.e. a dump from the device)  PES    Packetized Elemetary Stream (VDR's native recording format)  ES     Elementary Stream (only Video, if available, otherwise only Audio)  EXT    Pass stream through external script (e.g. for converting with mencoder)

@@frank84 can you expose this variable in the config? I want to try the different options including EXT to see what data shows up in the ffmpeg logs.

Edited by domenic
Link to comment
Share on other sites

@@softworkz can you explain then also the difference to embys IPTV plugin. According to @@domenic it's working with this plugin.

 

 

@@frank84 can you expose this variable in the config? I want to try the different options including EXT to see what data shows up in the ffmpeg logs.

I can do this, but keep in mind - as far as I know -  "PES" is obsolete since a while and EXT would be only an ugly workaround as it's using an external remux program for remuxing.

Link to comment
Share on other sites

@@softworkz can you explain then also the difference to embys IPTV plugin. According to @@domenic it's working with this plugin.

 

I'll try, but I need a bit more than just a few vague allusions...

How about a log file?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...