crazybbs 24 Posted February 4, 2016 Share Posted February 4, 2016 Hi, I posted this on emby theater beta forum and would like to know if @@Sven , you could do anything to resolve the issue of direct playing live tv I analyzed the logs to find a way to make nextpvr live tv to direct play and I saw in the logs 2016-02-03 20:35:15.4202 Info HttpServer: HTTP Response 422 to 192.168.51.3. Time: 2648ms (slow). http://192.168.51.3:...=90&accept=webp2016-02-03 20:35:15.4202 Info HttpServer: HTTP POST http://192.168.51.3:...tartTimeTicks=0. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) EmbyTheater/1.0.40 Chrome/47.0.2526.110 Electron/0.36.7 Safari/537.362016-02-03 20:35:15.4202 Debug LiveTvMediaSourceProvider: MediaSources: [{"Protocol":"Http","Id":"6e03ce330e5073c0ca6efe4f5413676d","Path":"http://192.168.51.3:...ault","Name":"4TVA","ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"RequiresOpening":true,"OpenToken":"LiveTvChannel_6e03ce330e5073c0ca6efe4f5413676d_6e03ce330e5073c0ca6efe4f5413676d","RequiresClosing":false,"BufferMs":1500,"MediaStreams":[],"PlayableStreamFileNames":[],"Formats":[],"RequiredHttpHeaders":{}}]2016-02-03 20:35:15.4202 Info App: Bitrate exceeds DirectPlay limit2016-02-03 20:35:15.4202 Info App: Bitrate exceeds DirectPlay limit2016-02-03 20:35:15.4202 Info App: Profile: Unknown Profile, Path: http://192.168.51.3:8096, isEligibleForDirectPlay: False, isEligibleForDirectStream: False2016-02-03 20:35:15.4202 Info App: Bitrate exceeds DirectPlay limit2016-02-03 20:35:15.4202 Info App: Bitrate exceeds DirectPlay limit2016-02-03 20:35:15.4202 Info App: Profile: Unknown Profile, Path: http://192.168.51.3:8096, isEligibleForDirectPlay: False, isEligibleForDirectStream: False2016-02-03 20:35:15.4202 Info HttpServer: HTTP Response 200 to 192.168.51.3. Time: 4ms. http://192.168.51.3:...tartTimeTicks=02016-02-03 20:35:15.4374 Info HttpServer: HTTP POST http://192.168.51.3:...409aae0e40b0958. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) EmbyTheater/1.0.40 Chrome/47.0.2526.110 Electron/0.36.7 Safari/537.362016-02-03 20:35:15.4374 Info App: Opening channel stream from Next Pvr, external channel Id: 95642016-02-03 20:35:15.4374 Info App: [NextPvr] Start ChannelStream2016-02-03 20:35:15.4374 Info App: [NextPvr] Streaming http://192.168.51.3:...64&client=MB3.42016-02-03 20:35:15.4374 Info App: Live stream info: {"Protocol":"Http","Id":"4","Path":"http://192.168.51.3:...ttpHeaders":{}}2016-02-03 20:35:15.4374 Debug MediaSourceManager: Live stream opened: {"Protocol":"Http","Id":"4","Path":"http://192.168.51.3:...ttpHeaders":{}}2016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, Path: http://192.168.51.3:...64&client=MB3.4, isEligibleForDirectPlay: True, isEligibleForDirectStream: True2016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, No direct play profiles found for Path: http://192.168.51.3:...64&client=MB3.42016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, Path: http://192.168.51.3:...64&client=MB3.4, isEligibleForDirectPlay: True, isEligibleForDirectStream: True2016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, No direct play profiles found for Path: http://192.168.51.3:...64&client=MB3.42016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, Path: http://192.168.51.3:...64&client=MB3.4, isEligibleForDirectPlay: True, isEligibleForDirectStream: True2016-02-03 20:35:15.4374 Info App: Profile: Unknown Profile, No direct play profiles found for Path: http://192.168.51.3:...64&client=MB3.42016-02-03 20:35:15.4374 Info HttpServer: HTTP Response 200 to 192.168.51.3. Time: 3ms. http://192.168.51.3:...409aae0e40b09582016-02-03 20:35:15.7753 Info HttpClient: HttpClientManager GET: http://192.168.51.3:.../event/26271754 Do you know why it says Bitrate exceeds DirectPlay limit , I tried with bitrate to auto and to max 50MBPS and still have the same log , do you think it's a plugin problem or server? Thank you for your help Link to comment Share on other sites More sharing options...
Sven 136 Posted February 5, 2016 Share Posted February 5, 2016 I think i need some help from @@Luke or maybe @@sub3 Because no transcoding is necessary on the plugin. So it should stream it directly from nextpvr... Link to comment Share on other sites More sharing options...
Luke 37064 Posted February 5, 2016 Share Posted February 5, 2016 the plugin is not supplying a bitrate, among other data. therefore the apps have no idea if they can handle it directly or not Link to comment Share on other sites More sharing options...
Sven 136 Posted February 5, 2016 Share Posted February 5, 2016 the plugin is not supplying a bitrate, among other data. therefore the apps have no idea if they can handle it directly or not Where should it be set? And what should be the value? Link to comment Share on other sites More sharing options...
Luke 37064 Posted February 5, 2016 Share Posted February 5, 2016 on the media source. it should be the correct value. if you can't determine this, then leave it blank. Link to comment Share on other sites More sharing options...
Sven 136 Posted February 5, 2016 Share Posted February 5, 2016 @@sub3 do we have that information? @@Luke when we don't have it and it's empty. It will be the same result as know no? Link to comment Share on other sites More sharing options...
sub3 64 Posted February 5, 2016 Share Posted February 5, 2016 (edited) We don't know information about the stream until you've started it (ie when we get to look at the data flowing by). Is that too late? Several attributes about streams can change on the fly, so NextPVR monitors it continually while it's playing live tv etc. Edited February 5, 2016 by sub3 Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 7, 2016 Author Share Posted February 7, 2016 @@Sven I would like to test with an arbitry value based on my analyse of a hd channel stream, its always 4-4.5 MBS if I put a 5MBPS bitrate it should work just for a test? I downloaded the sourcecode and want to put this value , Do I put it in bytes , kb or mpbs?? Link to comment Share on other sites More sharing options...
sub3 64 Posted February 7, 2016 Share Posted February 7, 2016 @@Sven @@Luke, what information does the backend need to supply for this? Link to comment Share on other sites More sharing options...
Luke 37064 Posted February 7, 2016 Share Posted February 7, 2016 @@Sven @@Luke, what information does the backend need to supply for this? Well it needs to know at the time of opening the stream. If you truly don't have that information at that point in time, then it's best to just leave it as-is. I could add back the server probing that we used to have but it will create longer startup times. Here's an example of the data that the hdhomerun provider supplies: https://github.com/MediaBrowser/Emby/blob/master/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs#L234 You can see they're just estimates. The purpose is really just to help the client app determine if it can handle the codecs and bitrates. I think one day we'll probably buffer the stream server side in order to improve recording capabilities. At that point we'll probably get exact media info, but until then that will suffice. Link to comment Share on other sites More sharing options...
Sven 136 Posted February 8, 2016 Share Posted February 8, 2016 Well it needs to know at the time of opening the stream. If you truly don't have that information at that point in time, then it's best to just leave it as-is. I could add back the server probing that we used to have but it will create longer startup times. Here's an example of the data that the hdhomerun provider supplies: https://github.com/MediaBrowser/Emby/blob/master/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs#L234 You can see they're just estimates. The purpose is really just to help the client app determine if it can handle the codecs and bitrates. I think one day we'll probably buffer the stream server side in order to improve recording capabilities. At that point we'll probably get exact media info, but until then that will suffice. Maybe i can try to use those values, no? Link to comment Share on other sites More sharing options...
pünktchen 1258 Posted February 8, 2016 Share Posted February 8, 2016 @@Sven You've got a pm Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 8, 2016 Author Share Posted February 8, 2016 (edited) I tried to put some value in bitrate but still got the same errors @@Sven do someone know where this log come from I can't find it in LiveTVservices.cs 2016-02-08 11:47:17.2199 Debug LiveTvMediaSourceProvider: MediaSources: [{"Protocol":"Http","Id":"5e2e7052b439dd51ab2beb7f5282834a","Path":"http://192.168.51.3:8096","Type":"Default","Name":"D-HD","ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"RequiresOpening":true,"OpenToken":"LiveTvChannel_5e2e7052b439dd51ab2beb7f5282834a_5e2e7052b439dd51ab2beb7f5282834a","RequiresClosing":false,"BufferMs":1500,"MediaStreams":[],"PlayableStreamFileNames":[],"Formats":[],"RequiredHttpHeaders":{}}] @@Luke the logs show 2 problems one with bitrate exceeds and one with unknown profil, As you can see in the logs after the bitrate exceed, the starting stream send bitrate but still answer unknown profil?? Thank you for you help server-63590528760.txt Edited February 8, 2016 by crazybbs Link to comment Share on other sites More sharing options...
arrbee99 1560 Posted February 9, 2016 Share Posted February 9, 2016 May one gently and politely enquire as to how long this might take to get working ? Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 10, 2016 Author Share Posted February 10, 2016 Bump, anyone can help me with #13 request, i'm available to modfiy the code to test and commit the change after. Thank you, Link to comment Share on other sites More sharing options...
Luke 37064 Posted February 10, 2016 Share Posted February 10, 2016 For starters, use the sample link I gave you and try to mimic that. Then once you've mocked something up, then you can worry about getting it accurate. Without having a test setup for each of these tv plugins these questions can be difficult to visualize so you need to be wiling to experiment a little. Link to comment Share on other sites More sharing options...
Sven 136 Posted February 10, 2016 Share Posted February 10, 2016 Feel free to change the code. I can test and upload a new version. @@Luke is it possible to know what profile to use? Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 10, 2016 Author Share Posted February 10, 2016 @@Luke I already compared with the Hdhomerun source code and inserted some new settings to test but I still don't know why it says unknown profil , where do I can see an emby theater profil or nextpvr one??? Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 10, 2016 Author Share Posted February 10, 2016 @@Luke I found this in MediaBrowserTheaterProfile.cs new DirectPlayProfile { Container = "avi,mkv,ts,mp4,mov,m4v,asf,wmv,mpg,mpeg,flv,3gp,mpegts,m2ts,vob,webm", Type = DlnaProfileType.Video }, is it because nextpvr send an url without container that it says unknown profile?? I dont find MediaBrowserTheaterProfile.dll on my emby theater folder , is it because it's hosted online? Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 11, 2016 Author Share Posted February 11, 2016 Well, Can someone post me a logs (Server, Emby theater ) using Emby tv Homerun tuner watching live tv with emby theater, so I can see what informations it send Thank you, Link to comment Share on other sites More sharing options...
crazybbs 24 Posted February 12, 2016 Author Share Posted February 12, 2016 (edited) Just an update , I finally found a way to direct play in Emby theater by modifiing parameters copying from emby tv plugin and it's working. but the problem is i'm not sure if it's doable for everyone. I hardcoded video codec and sound codec in the plugin because i'm using hauppauge hdpvr and I know that it's always pushing h264 and Ac3. @@Sven may be put optionnal in plugin config?? this is what I modified in livetvservices.cs public async Task<MediaSourceInfo> GetChannelStream(string channelOid, string mediaSourceId, CancellationToken cancellationToken) { _logger.Info("[NextPvr] Start ChannelStream"); var config = Plugin.Instance.Configuration; var baseUrl = Plugin.Instance.Configuration.WebServiceUrl; _liveStreams++; if (config.TimeShift) { var options = new HttpRequestOptions { CancellationToken = cancellationToken, Url = string.Format("{0}/public/VLCService/Dump/StreamByChannel/OID/{1}", baseUrl, channelOid) }; using (var stream = await _httpClient.Get(options).ConfigureAwait(false)) { var vlcObj = new VLCResponse().GetVLCResponse(stream, _jsonSerializer, _logger); _logger.Debug(vlcObj.StreamLocation); while (!File.Exists(vlcObj.StreamLocation)) { await Task.Delay(200).ConfigureAwait(false); } await Task.Delay(20000).ConfigureAwait(false); _logger.Info("[NextPvr] Finishing wait"); _heartBeat.Add(_liveStreams, vlcObj.ProcessId); return new MediaSourceInfo { Id = _liveStreams.ToString(CultureInfo.InvariantCulture), Path = vlcObj.StreamLocation, Protocol = MediaProtocol.File, MediaStreams = new List<MediaStream> { new MediaStream { Type = MediaStreamType.Video, IsInterlaced = true, BitRate = 5000000, Codec = "h264", // Set the index to -1 because we don't know the exact index of the video stream within the container Index = -1 }, new MediaStream { Type = MediaStreamType.Audio, IsInterlaced = true, BitRate = 192000, Codec = "ac3", // Set the index to -1 because we don't know the exact index of the audio stream within the container Index = -1 } }, RequiresOpening = false, RequiresClosing = false, BufferMs = 0, Container = "ts", SupportsDirectPlay = true, SupportsDirectStream = true, SupportsTranscoding = true }; } } string streamUrl = string.Format("{0}/live?channeloid={1}&client=MB3.{2}", baseUrl, channelOid, _liveStreams.ToString()); _logger.Info("[NextPvr] Streaming " + streamUrl); return new MediaSourceInfo { Id = _liveStreams.ToString(CultureInfo.InvariantCulture), Path = streamUrl, Protocol = MediaProtocol.Http, MediaStreams = new List<MediaStream> { new MediaStream { Type = MediaStreamType.Video, IsInterlaced = true, BitRate = 5000000, Codec = "h264", // Set the index to -1 because we don't know the exact index of the video stream within the container Index = -1, }, new MediaStream { Type = MediaStreamType.Audio, IsInterlaced = true, BitRate = 192000, Codec = "ac3", // Set the index to -1 because we don't know the exact index of the audio stream within the container Index = -1 } }, RequiresOpening = false, RequiresClosing = false, BufferMs = 0, Container = "ts", SupportsDirectPlay = true, SupportsDirectStream = true, SupportsTranscoding = true }; } I didn't touch recording because i'm not using it but should do the same in it. @@Luke I had to remove wasapi audio renderer, if not directshow crashed playing, do you know why ? I put it in default and everything is working. Edited February 12, 2016 by crazybbs Link to comment Share on other sites More sharing options...
Sven 136 Posted February 15, 2016 Share Posted February 15, 2016 It's working for me. But there must be a method to get the profile that they are using in the Interface. But i don't think that's possible for the moment in the ILiveTVService. Link to comment Share on other sites More sharing options...
pünktchen 1258 Posted February 15, 2016 Share Posted February 15, 2016 It's working for me. But there must be a method to get the profile that they are using in the Interface. But i don't think that's possible for the moment in the ILiveTVService.What about my pm? Link to comment Share on other sites More sharing options...
Sven 136 Posted February 15, 2016 Share Posted February 15, 2016 You don't work with the emby profile as far as i can see... Link to comment Share on other sites More sharing options...
pünktchen 1258 Posted February 15, 2016 Share Posted February 15, 2016 You don't work with the emby profile as far as i can see...Because it's not needed. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now