MERGING MediaPortal Url Source Splitter & IPTV Filter (3 Viewers)

kiwijunglist

Super Moderator
  • Team MediaPortal
  • June 10, 2008
    6,746
    1,751
    New Zealand
    Home Country
    New Zealand New Zealand
    ^ that i have already installed twice and manually registered and still have error.
    I have similar problem, see https://forum.team-mediaportal.com/threads/no-splitter-and-codecs-found-i-get-no-url.130691/

    If this is with the latest version provided by MPEI, maybe you AV software blocks access to the .ax file? (see my posts a page back, 8 of WirusTotals scanner engines mark this version as being infected. I have seen no strange behaviour on my network since then, but it really is a bit odd...)

    Using AVG. Didn't have any virus scanner alerts.
     

    georgius

    Retired Team Member
  • Premium Supporter
  • October 31, 2010
    1,376
    654
    Bratislava
    Home Country
    Slovakia Slovakia
    File list prior to uninstall / delete folder / reinstall
    C:\Program Files (x86)\Team Mediaportal\MPUrlSourceSpiltter\
    avcodec-mpurlsourcesplitter-54.dll
    avformat-mpurlsourcesplitter-54.dll
    avutil-mpurlsourcesplitter-51.dll
    libcurl.dll
    MPUrlSourceSplitter.ax
    MPUrlSourceSplitter_Afhs_Decryption_Akamai.dll
    MPUrlSourceSplitter_libcurl.dll
    MPUrlSourceSplitter_Parser_Asx.dll
    MPUrlSourceSplitter_Parser_Default.dll
    MPUrlSourceSplitter_Parser_F4M.dll
    MPUrlSourceSplitter_Parser_M3U8.dll
    MPUrlSourceSplitter_Parser_MPEG2TS.dll
    MPUrlSourceSplitter_Parser_MSHS.dll
    MPUrlSourceSplitter_Protocol_Afhs.dll
    MPUrlSourceSplitter_Protocol_Afhs_Decryption_Akamai.dll
    MPUrlSourceSplitter_Protocol_Afhs_Decryption_Default.dll
    MPUrlSourceSplitter_Protocol_Http.dll
    MPUrlSourceSplitter_Protocol_M3U8.dll
    MPUrlSourceSplitter_Protocol_Mms.dll
    MPUrlSourceSplitter_Protocol_Mshs.dll
    MPUrlSourceSplitter_Protocol_Rtmp.dll
    MPUrlSourceSplitter_Protocol_Rtsp.dll
    MPUrlSourceSplitter_Protocol_Udp.dll

    1. Uninstalled via MPEM (MP Client not running, TV Server not installed)
    2. Manually deleted folder
    3. Restarted Computer
    4. Installed MP IPV & URL Source Splitter via MPEM (Ran as administrator) v2.19.5600
    5. Restarted Computer
    6. Problem mostly fixed.

    I thought I had manually deleted the mpurlsourcesplitter folder before, but either
    1. I remember wrong and I didn't delete the folder
    2. It now worked because I restarted between uninstall+deleting folder and reinstallation
    3. Some other reason.

    Directory listing after above steps (Note: the absence of libcurl.dll)
    avcodec-mpurlsourcesplitter-54.dll
    avformat-mpurlsourcesplitter-54.dll
    avutil-mpurlsourcesplitter-51.dll
    MPUrlSourceSplitter.ax
    MPUrlSourceSplitter_libcurl.dll
    MPUrlSourceSplitter_Parser_Default.dll
    MPUrlSourceSplitter_Parser_F4M.dll
    MPUrlSourceSplitter_Parser_M3U8.dll
    MPUrlSourceSplitter_Parser_MPEG2TS.dll
    MPUrlSourceSplitter_Parser_MSHS.dll
    MPUrlSourceSplitter_Protocol_Afhs.dll
    MPUrlSourceSplitter_Protocol_Afhs_Decryption_Akamai.dll
    MPUrlSourceSplitter_Protocol_Afhs_Decryption_Default.dll
    MPUrlSourceSplitter_Protocol_Http.dll
    MPUrlSourceSplitter_Protocol_M3U8.dll
    MPUrlSourceSplitter_Protocol_Mshs.dll
    MPUrlSourceSplitter_Protocol_Rtmp.dll
    MPUrlSourceSplitter_Protocol_Rtsp.dll
    MPUrlSourceSplitter_Protocol_Udp.dll

    I seem to be able to play non local trailers in trakt now (wasn't working before). There are a some videos within online videos youtube that give no url error, but I suspect that is an O.V. problem. I can now play trailers in trakt, so that is great.

    @georgius - Thank you.
    The problem was probably in MPUrlSourceSplitter_Protocol_Mms.dll. This library is not in new filter and old version is absolutly incompatible. Strange is that this library was still on your system, installer should delete filter folder with all content before installing new filter.
     

    Nervesagent

    Portal Pro
    February 26, 2014
    150
    19
    44
    Home Country
    Denmark Denmark
    Am I right in thinking this could make it possible to watch online streams through tv-server and convert any non mpeg2 stream to make it work (hence the mpeg2tsparser variable? Is it like vodserver tries to accomplish this? I'm still having trouble getting my rtsp streams from my Fritz DVBC repeater to work in MP.
    Please look here and see if you can help:
    https://forum.team-mediaportal.com/...internet-streams-as-tv-channels.121732/page-7
     

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    Am I right in thinking this could make it possible to watch online streams through tv-server and convert any non mpeg2 stream to make it work
    I don't know if this filter supports converting to MPEG 2 TS yet, BUT...

    I'm still having trouble getting my rtsp streams from my Fritz DVBC repeater to work in MP.
    ...like I said in the thread that you linked: your RTSP streams should already be compatible.
     

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    @georgius
    I had not noticed that you had created a GUI plugin until now. :)

    Now that I've seen the settings in that way, I'm wondering if it is possible to configure different settings for each filter instance (?).
    If that is possible, I wonder if it would be good to integrate the RTMP, RTSP, UDP/RTP and HTTP settings into the "tuner settings" dialog.
    Since the settings for each protocol are similar, it could be possible to reduce to 7 settings:
    • preferred network interface
    • open connection timeout
    • open connection sleep time
    • total reopen connection timeout
    • client port range [RTSP only]
    • connection preference [RTSP only]
    • ignore RTP payload type [RTSP only]
    Then if people want to use different settings for different protocols, they can add multiple IPTV tuners with different settings for each (eg. 1 tuner for HTTP, 1 tuner for RTSP service 1, 1 tuner for RTSP service 2 etc.).

    What do you think?
     

    georgius

    Retired Team Member
  • Premium Supporter
  • October 31, 2010
    1,376
    654
    Bratislava
    Home Country
    Slovakia Slovakia
    Am I right in thinking this could make it possible to watch online streams through tv-server and convert any non mpeg2 stream to make it work
    I don't know if this filter supports converting to MPEG 2 TS yet, BUT...
    Not implemented, so online videos can be watched only in OnlineVideos.

    I'm still having trouble getting my rtsp streams from my Fritz DVBC repeater to work in MP.
    ...like I said in the thread that you linked: your RTSP streams should already be compatible.
    RTSP stream mostly should works, but ... stream must be MPEG 2 transport stream, not separate audio or video streams.

    @georgius
    I had not noticed that you had created a GUI plugin until now. :)
    It was needed, because setting parameters directly in URL was very complicated. There is also option to test url and see if stream is compatible with TV service.

    Now that I've seen the settings in that way, I'm wondering if it is possible to configure different settings for each filter instance (?).
    You can set different settings for each URL, so yes, you can set different settings for each filter instance. But ... these settings are in URL, so such URL must be stored in TV server database or must be scanned through scan playlist. Whole filter instance configuration is in URL, there are no common settings.

    If that is possible, I wonder if it would be good to integrate the RTMP, RTSP, UDP/RTP and HTTP settings into the "tuner settings" dialog.
    Since the settings for each protocol are similar, it could be possible to reduce to 7 settings:
    • preferred network interface
    • open connection timeout
    • open connection sleep time
    • total reopen connection timeout
    • client port range [RTSP only]
    • connection preference [RTSP only]
    • ignore RTP payload type [RTSP only]
    Then if people want to use different settings for different protocols, they can add multiple IPTV tuners with different settings for each (eg. 1 tuner for HTTP, 1 tuner for RTSP service 1, 1 tuner for RTSP service 2 etc.).

    What do you think?
    This is for discussion, but I don't think that's good idea. E.g. HTTP protocol hides M3U8 (Apple HTTP streaming, using MPEG2 TS, so it can be used with TV service), MSHS (Microsoft Smooth Streaming, not usable with TV server - yet) and AFHS (Adobe Flash HTTP Streaming, not usable with TV server - yet). RTMP is not usable with TV server (FLV video/audio stream), RTSP is usable, but only when MPEG2 TS stream is available, UDP/RTP is usable.

    I'm not sure, how do you want to distinguish between provider's HTTP stream and online video M3U8 stream (watched through TV service). There will be probably different timeout settings and with highest probability also different network interface.

    Also, as I write upper, there are no common settings, so everything must be passed in URL. So, in that case, each URL from database or playlist must be analysed by TV service, set required parameters and passed to filter. It's not impossible, only complicated.
     

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    I don't know if this filter supports converting to MPEG 2 TS yet, BUT...
    Not implemented, so online videos can be watched only in OnlineVideos.

    ...like I said in the thread that you linked: your RTSP streams should already be compatible.
    RTSP stream mostly should works, but ... stream must be MPEG 2 transport stream, not separate audio or video streams.
    Understood, thank you. :)

    You can set different settings for each URL, so yes, you can set different settings for each filter instance. But ... these settings are in URL, so such URL must be stored in TV server database or must be scanned through scan playlist. Whole filter instance configuration is in URL, there are no common settings.
    I think you misunderstood.
    With the old filter there was filter configuration [in MPIPTVSource.ini] and separate URL configuration. I'm talking about the "MPIPTVSource.ini" settings. From your new code, it looks like those settings are stored in MediaPortalIptvFilterAndUrlSourceSplitter.xml:
    https://github.com/MediaPortal/Medi...tvFilterAndUrlSourceSplitter/Settings.cs#L102
    https://github.com/MediaPortal/Medi...tvFilterAndUrlSourceSplitter/Settings.cs#L115

    ...not in the URL.

    This is for discussion, but I don't think that's good idea. E.g. HTTP protocol hides M3U8 (Apple HTTP streaming, using MPEG2 TS, so it can be used with TV service), MSHS (Microsoft Smooth Streaming, not usable with TV server - yet) and AFHS (Adobe Flash HTTP Streaming, not usable with TV server - yet). RTMP is not usable with TV server (FLV video/audio stream), RTSP is usable, but only when MPEG2 TS stream is available, UDP/RTP is usable.
    I was not saying that people should have one IPTV tuner per protocol. Just have one tuner per "needed different settings" (it's hard to describe! :) ).

    So for example, say that person X receives RTSP streams from their IPTV provider, and also has a SAT>IP network tuner [which also uses RTSP]. For best results/compatibility, these two sources need different settings (definitely different network interface, maybe different open connection timeout, client port range etc.). How can this be done?

    Right now I'm not sure if it is possible. Maybe you can set default values in MediaPortalIptvFilterAndUrlSourceSplitter.xml for the SAT>IP tuner... and then somehow override the defaults with the IPTV provider channel URLs. However, this is not very manageable when each source/provider has hundreds of channels.

    My suggestion is that person X could create 2 tuners - 1 for the IPTV provider and 1 for the SAT>IP tuner. Each tuner would get its own filter with its own settings (stored in TVE database eg. "Card" table).

    Now, maybe person X also wants to receive some HTTP streams from a closed circuit camera on their network. The settings for the SAT>IP network tuner (network interface, connection timeout etc.) are okay for the closed circuit camera too... so the existing tuner can be used for both sources (HTTP and RTSP). To be clear, there is only one "preferred network interface" setting which is shared for all protocols. If person X has sources which need different values of "preferred network interface", create another tuner with the different setting.

    Does it make sense?

    I'm not sure, how do you want to distinguish between provider's HTTP stream and online video M3U8 stream (watched through TV service). There will be probably different timeout settings and with highest probability also different network interface.
    Just create 2 tuners - 1 for the provider streams, and another tuner for the M3U8 streams - and assign the required timeout, network interface etc. to each. Channels are mapped/linked only to the tuner with the correct settings.

    Also, as I write upper, there are no common settings...
    When I say "common" I mean...
    RTSP, RTMP, RTP/UDP, HTTP... all have [for example] a "preferred network interface" setting.
    Currently you have [for example] 4 settings:
    • RTSP preferred network interface
    • RTMP preferred network interface
    • RTP/UDP preferred network interface
    • HTTP preferred network interface
    I am suggesting to have 1 "preferred network interface" setting (shared for all protocols) instead of 4. I think that might be more flexible and simpler for the code and for the end-user.
    For the code...
    What happens if you add support for another protocol (eg. M3U8)? Do you have to add another setting? No, the existing setting will be reused.
    What happens if the user wants to access streams with different preferred network interface values? Just create another tuner. That way the user can also have different preferred network interface for streams which use the same protocol (eg. HTTP provider and web stream, or RTSP provider and network tuner).

    ...so everything must be passed in URL. So, in that case, each URL from database or playlist must be analysed by TV service, set required parameters and passed to filter. It's not impossible, only complicated.
    But what about MediaPortalIptvFilterAndUrlSourceSplitter.xml/MPIPTVSource.ini? Doesn't the filter read that file directly?
     

    georgius

    Retired Team Member
  • Premium Supporter
  • October 31, 2010
    1,376
    654
    Bratislava
    Home Country
    Slovakia Slovakia
    You can set different settings for each URL, so yes, you can set different settings for each filter instance. But ... these settings are in URL, so such URL must be stored in TV server database or must be scanned through scan playlist. Whole filter instance configuration is in URL, there are no common settings.
    I think you misunderstood.
    With the old filter there was filter configuration [in MPIPTVSource.ini] and separate URL configuration. I'm talking about the "MPIPTVSource.ini" settings. From your new code, it looks like those settings are stored in MediaPortalIptvFilterAndUrlSourceSplitter.xml:
    https://github.com/MediaPortal/Medi...tvFilterAndUrlSourceSplitter/Settings.cs#L102
    https://github.com/MediaPortal/Medi...tvFilterAndUrlSourceSplitter/Settings.cs#L115

    ...not in the URL.
    There is big difference between MediaPortalIptvFilterAndUrlSourceSplitter.xml and MPIPTVSource.ini. MPIPTVSource.ini is used by MP IPTV filter as common configuration file and directly affects how IPTV filter behave. MediaPortalIptvFilterAndUrlSourceSplitter.xml is only configuration file for TV server plugin and it has no relation to merged filter - merged filter doesn't load this file.

    This is for discussion, but I don't think that's good idea. E.g. HTTP protocol hides M3U8 (Apple HTTP streaming, using MPEG2 TS, so it can be used with TV service), MSHS (Microsoft Smooth Streaming, not usable with TV server - yet) and AFHS (Adobe Flash HTTP Streaming, not usable with TV server - yet). RTMP is not usable with TV server (FLV video/audio stream), RTSP is usable, but only when MPEG2 TS stream is available, UDP/RTP is usable.
    I was not saying that people should have one IPTV tuner per protocol. Just have one tuner per "needed different settings" (it's hard to describe! :) ).

    So for example, say that person X receives RTSP streams from their IPTV provider, and also has a SAT>IP network tuner [which also uses RTSP]. For best results/compatibility, these two sources need different settings (definitely different network interface, maybe different open connection timeout, client port range etc.). How can this be done?
    If you start from scratch (I mean you have only playlist files and clean database), then you can use TV server plugin to load playlist, make necessary changes (mostly you need to change network interface) and save playlist. After that you can scan channels as usually.

    If channels are already in database, you can do same with database editor in TV server plugin, where you select mutliple channels, make necessary changes and store channels back to database. In that case, no scanning or re-scanning is required.

    Right now I'm not sure if it is possible. Maybe you can set default values in MediaPortalIptvFilterAndUrlSourceSplitter.xml for the SAT>IP tuner... and then somehow override the defaults with the IPTV provider channel URLs. However, this is not very manageable when each source/provider has hundreds of channels.
    It is possible, but settings are stored directly in URL in playlist file or in database. Maybe it's not easy manageable (especially when channels are often changed), but mostly you need do changes once.

    My suggestion is that person X could create 2 tuners - 1 for the IPTV provider and 1 for the SAT>IP tuner. Each tuner would get its own filter with its own settings (stored in TVE database eg. "Card" table).

    Now, maybe person X also wants to receive some HTTP streams from a closed circuit camera on their network. The settings for the SAT>IP network tuner (network interface, connection timeout etc.) are okay for the closed circuit camera too... so the existing tuner can be used for both sources (HTTP and RTSP). To be clear, there is only one "preferred network interface" setting which is shared for all protocols. If person X has sources which need different values of "preferred network interface", create another tuner with the different setting.

    Does it make sense?
    This makes sense, channels are mapped to cards, which can have their own specific settings. But I don't have any idea, how will works scanning of new channels, because TV server will not know, which IPTV card should be used.

    I'm not sure, how do you want to distinguish between provider's HTTP stream and online video M3U8 stream (watched through TV service). There will be probably different timeout settings and with highest probability also different network interface.
    Just create 2 tuners - 1 for the provider streams, and another tuner for the M3U8 streams - and assign the required timeout, network interface etc. to each. Channels are mapped/linked only to the tuner with the correct settings.

    Also, as I write upper, there are no common settings...
    When I say "common" I mean...
    RTSP, RTMP, RTP/UDP, HTTP... all have [for example] a "preferred network interface" setting.
    Currently you have [for example] 4 settings:
    • RTSP preferred network interface
    • RTMP preferred network interface
    • RTP/UDP preferred network interface
    • HTTP preferred network interface
    I am suggesting to have 1 "preferred network interface" setting (shared for all protocols) instead of 4. I think that might be more flexible and simpler for the code and for the end-user.
    For the code...
    What happens if you add support for another protocol (eg. M3U8)? Do you have to add another setting? No, the existing setting will be reused.
    What happens if the user wants to access streams with different preferred network interface values? Just create another tuner. That way the user can also have different preferred network interface for streams which use the same protocol (eg. HTTP provider and web stream, or RTSP provider and network tuner).
    I think that dedicated tuner(s) for each provider will need big changes in TV server and scanning tool. But maybe for end user it will be much easier to correctly configure dedicated tuner(s). This is question for users with IPTV, what will they prefer.

    ...so everything must be passed in URL. So, in that case, each URL from database or playlist must be analysed by TV service, set required parameters and passed to filter. It's not impossible, only complicated.
    But what about MediaPortalIptvFilterAndUrlSourceSplitter.xml/MPIPTVSource.ini? Doesn't the filter read that file directly?
    Correct :) MediaPortalIptvFilterAndUrlSourceSplitter.xml is only configuration file for TV server plugin, it is not read by merged IPTV filter.
     

    KayDiefenthal

    MP Donator
  • Premium Supporter
  • July 18, 2006
    1,176
    92
    45
    Germany - Bonn
    Home Country
    Germany Germany
    This is question for users with IPTV, what will they prefer.
    sure that is an silly answer and understand both sides DEV <-> USER
    from the User side make it so Easy as possible
    the user want not know How it works behind the Scene he will only consume the data what ever it is
     

    kiwijunglist

    Super Moderator
  • Team MediaPortal
  • June 10, 2008
    6,746
    1,751
    New Zealand
    Home Country
    New Zealand New Zealand
    Keep things simple.

    Make things complicated
    - a few users with special needs benefit.
    - 99% of users disadvantaged with added complexity in the settings menu and too many options. some users will change these settings and brake their installation.
     

    Users who are viewing this thread

    Top Bottom