home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MERGING MediaPortal Url Source Splitter & IPTV Filter
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="georgius" data-source="post: 1021780" data-attributes="member: 107951"><p style="text-align: center"><span style="font-size: 15px"><span style="color: #ff0000">JIRA MP1-4155 : Rework of DVBIP RTSP Filter</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #ff0000"><a href="https://issues.team-mediaportal.com/browse/MP1-4155" target="_blank">https://issues.team-mediaportal.com/browse/MP1-4155</a></span></span></p><p></p><p><a href="https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4155-FEAT-Merge_of_IPTV_filter_and_MediaPortal_Url_Source_Splitter" target="_blank">GIT</a> branch: <a href="https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4155-FEAT-Merge_of_IPTV_filter_and_MediaPortal_Url_Source_Splitter" target="_blank">https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4155-FEAT-Merge_of_IPTV_filter_and_MediaPortal_Url_Source_Splitter</a></p><p></p><p><span style="font-size: 18px">Supported protocols</span></p><p>Filter should be more stable and reliable than version provided with MediaPortal. Latest version supports protocols:</p><ul> <li data-xf-list-type="ul">IPTV (TV Service)<ul> <li data-xf-list-type="ul">UDP sources</li> <li data-xf-list-type="ul">RTP sources</li> <li data-xf-list-type="ul">HTTP sources<br /> </li> <li data-xf-list-type="ul">RTSP sources</li> <li data-xf-list-type="ul">M3U8 sources (Apple HTTP live streaming)</li> </ul></li> <li data-xf-list-type="ul">splitter (OnlineVideos)<ul> <li data-xf-list-type="ul">UDP sources</li> <li data-xf-list-type="ul">RTP sources<br /> </li> <li data-xf-list-type="ul">HTTP sources</li> <li data-xf-list-type="ul">RTSP sources</li> <li data-xf-list-type="ul">RTMP sources</li> <li data-xf-list-type="ul">AFHS sources (Adobe Flash HTTP streaming)</li> <li data-xf-list-type="ul">MSHS sources (Microsoft HTTP streaming)</li> <li data-xf-list-type="ul">M3U8 sources (Apple HTTP live streaming)</li> </ul></li> </ul><p><strong>Note:</strong> Filter doesn't have ability to transcode or to mux incoming stream to MPEG2 TS format (yet). This is planned to be added but later (after all things, which are already planned).</p><p></p><p><span style="font-size: 18px">Compatibility</span></p><p>Filter is compatible and tested with MP 1.7.1. If you found that filter is compatible with any other MP version, let me know to update.</p><p></p><p><span style="font-size: 18px">Compatibility with standard MediaPortal IPTV filter</span></p><p>Filter is partially backward compatible with standard MediaPortal IPTV filter delivered by MediaPortal installer. It can partially handle URL parameters from standard MediaPortal IPTV filter. From standard MediaPortal IPTV filter URL parameters are supported parameters:</p><table style='width: 100%'><tr><td><strong>MediaPortal IPTV filter parameter name</strong></td><td><strong>MergedMediaPortal IPTV filter and url source splitter parameter name</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">url</span></td><td><span style="font-family: 'Courier New'">Url</span></td><td>The URL to open.<br /> </td></tr><tr><td><span style="font-family: 'Courier New'">interface</span></td><td><span style="font-family: 'Courier New'">Interface</span></td><td>The name of network card interface to use to open URL.<br /> </td></tr><tr><td><span style="font-family: 'Courier New'">SidValue</span></td><td><span style="font-family: 'Courier New'">Mpeg2TsProgramNumber</span></td><td>The program number in program association section (PAT) and in transport stream program map section (PMT).</td></tr><tr><td><span style="font-family: 'Courier New'">PidValue</span></td><td><span style="font-family: 'Courier New'">Mpeg2TsProgramMapPID</span></td><td>The program map PID in program association section (PAT) or PID of packet containing transport stream program map section (PMT).</td></tr></table><p><strong>Note</strong>: The URL from standard MediaPortal IPTV filter don't have to be changed to MediaPortal IPTV filter and url source splitter URL format.</p><p></p><p><span style="font-size: 18px">TV Plugin</span></p><p>From version 2.1.3.5440 is in filter installer included TV plugin to edit scan playlist with possibility to set various filter parameters for each url. The TV plugin is available from TV-Server Configuration tool. After enabling plugin in <a href="http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/141_Configuration/TV-Server_Configuration/13_Plugins" target="_blank">Plugins</a> section, you can edit playlist or set default parameters for several protocols.</p><p></p><p>On main_screen_with_playlist.png image is main screen with loaded playlist. There is <strong>Channel name</strong>, <strong>Url</strong>, <strong>Protocol</strong>, <strong>Filter url</strong> and special icon column. Below playlist is property grid, when can be changed various settings for select url(s). It is possible to select mutiple urls, after that is possible to change settings for multiple urls.</p><p></p><p>In special column is by default blue question mark. It is possible to test URL by clicking on icon, while testing url is shown two arrows in circle (testing_channel.png). If testing is successful, green tick icon is shown (testing_channel_successful.png) else red cross icon is shown (testing_channel_failed.png). The reason of failure is shown in tool tip over the red cross icon.</p><p></p><p>Next to playlist editor tab are tabs with general settings for protocols. Each protocol has its own general settings. These settings are applied to url default settings on loading of playlist or pressing <strong>Apply settings</strong> button. If some settings have wrong value, then next to value is shown exclamation mark with short description of error (in tool tip over icon).</p><p></p><p>When some filter url exceedes maximum length of url in TV server database (by default 200 characters), the <strong>Update database</strong> button is shown. In that case is needed to update database (press button) or you have to find exceeding url(s) and change settings to fit url in database.</p><p></p><p>From version 2.1.4.5454 is included in TV plugin also database editor to update channel url directly in database (no scanning is necessary in this case). Database editor is very similar to playlist editor. After urls editing is needed to store changes into database by pressing <strong>Store changes</strong> button. By pressing <strong>Set M2TS parser</strong> button are set transport stream ID, program number and program map PID to MPEG2 TS parser settings in channel url.</p><p></p><p>From version 2.2.8.5875 is possible to specify remote server authentication and proxy server authentication for HTTP, AFHS, MSHS and M3U8 protocols.</p><p></p><p><strong><span style="font-size: 12px">HTTP protocol settings</span></strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Arial'">Interface</span></td><td>System default</td><td>The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).</td></tr><tr><td><span style="font-family: 'Arial'">Open connetion timeout</span></td><td>5000</td><td>The timeout to open HTTP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Arial'">Open connection sleep time</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Arial'">Total reopen connection timeout</span></td><td>60000</td><td>The total timeout to open HTTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.</td></tr></table><p><strong><span style="font-size: 12px">RTMP protocol settings</span></strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Arial'">Interface</span></td><td>System default</td><td>The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).</td></tr><tr><td><span style="font-family: 'Arial'">Open connetion timeout</span></td><td>20000</td><td>The timeout to open RTMP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Arial'">Open connection sleep time</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Arial'">Total reopen connection timeout</span></td><td>60000</td><td>The total timeout to open RTMP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.</td></tr></table><p><strong><span style="font-size: 12px">RTSP protocol settings</span></strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Arial'">Interface</span></td><td>System default</td><td>The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).</td></tr><tr><td><span style="font-family: 'Arial'">Open connetion timeout</span></td><td>1500</td><td>The timeout to open RTSP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Arial'">Open connection sleep time</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Arial'">Total reopen connection timeout</span></td><td>60000</td><td>The total timeout to open RTSP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.</td></tr><tr><td><span style="font-family: 'Arial'">Client port range</span></td><td>50000 - 65535</td><td>The minimum and maximum UDP port to be used in UDP transport.</td></tr><tr><td><span style="font-family: 'Arial'">Connection preference</span></td><td>same connection, UDP, UDP multicast</td><td>The preference of each type of streaming. If negotiation of type of streaming failed, then filter tries to negotiate another type of transport. Changing preference order usually lead to faster opening of RTSP url.</td></tr><tr><td><span style="font-family: 'Arial'">Ignore RTP payload type</span></td><td>false (not checked)</td><td>Specifies if filter have to ignore RTP packet payload type (in other case is RTP packet payload type compared to payload type specified in SDP).</td></tr></table><p><strong><span style="font-size: 12px">UDP or RTP protocol settings</span></strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Arial'">Interface</span></td><td>System default</td><td>The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).</td></tr><tr><td><span style="font-family: 'Arial'">Open connetion timeout</span></td><td>1000</td><td>The timeout to open UDP or RTP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Arial'">Open connection sleep time</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection. UDP multicast protocol sometimes needs additional time to subscribe and unsubscribe from multicast group. In that case is recommended 200 milliseconds.</td></tr><tr><td><span style="font-family: 'Arial'">Total reopen connection timeout</span></td><td>60000</td><td>The total timeout to open UDP or RTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.</td></tr><tr><td><span style="font-family: 'Arial'">Receive data check interval</span></td><td>500</td><td>The time in milliseconds to check incomming data. If length of incoming data is same, then connection is assumed as lost and is closed and opened new connection.</td></tr></table><p><span style="font-size: 18px">MPEG2 Transport Stream parser settings</span></p><p>When successfully tested stream (in playlist or database editor), you can access to MPEG2 Transport stream parser settings (m2ts_parser_in_editor.png). The MPEG2 Transport Stream parser settings are divided into three sections: basic settings, filtering program elements and stream analysis.</p><p></p><p>The basic settings (m2ts_basic.png) controls simple parser functionality. <strong>Align to MPEG2 TS packet</strong> checkbox controls aligning stream to MPEG2 TS packet boundary. If this is not checked, then other functionality of MPEG2 TS parser will not work. <strong>Detect discontinuity</strong> checkbox controls detecting discontinuities in MPEG2 TS packets in stream. The information about discontinuity is logged into filter's log file. <strong>Set stream as not encrypted</strong> checkbox controls filter ability to clear all encryption flags and data in stream. It doesn't decrypt stream. This option can be useful if stream is not encrypted, but TV service detects stream as encrypted.</p><p></p><p><strong>Force stream identification</strong> box allow to change stream identification for TV service. It can be useful when stream identification is changing (e.g. because of provider), but channel is still same. When stream identification is changed TV service cannot tune to channel. Values for transport stream ID, program number and program map PID can be found in stream analysis section or can be set in playlist or database editor by pressing <strong>Set M2TS parser</strong> button. Forcing stream identification is not recommended in case of multiple programs in stream. In this case is also shown warning about multiple programs (m2ts_multiple_programs_warning.png).</p><p></p><p><strong>Filtering program elements</strong> section is used to filter specific programs in stream (e.g. single radio channel in multiple radio channels stream). After successful stream test is this section populated with detected information from stream. Each tab represents one Transport Stream program map section (PMT) with all program elements (audio, video, subtitles, etc).</p><p></p><p><strong>Transport stream program map PID</strong> text box can be used to manually create new filtering tab. <strong>Add</strong> button adds new filtering tab, <strong>Remove</strong> button remoes actually selected tab.</p><p></p><p><strong>Allow filtering program elements</strong> allows filter to leave selected program elements in stream. <strong>Leave program elements</strong> is populated with program element PIDs and only selected program elements are left in stream.</p><p></p><p><span style="font-size: 18px">Future plans</span></p><ul> <li data-xf-list-type="ul">add back missing protocols and parsers (MMS)</li> <li data-xf-list-type="ul">transcoding to MPEG2 TS format</li> </ul><p><span style="font-size: 18px">Installation</span></p><p>For proper filter working you need <a href="https://www.microsoft.com/en-us/download/details.aspx?id=40784" target="_blank">Microsoft Visual C++ 2013 Redistributable Package (x86)</a>. Install through MediaPortal Extensions Installer or <a href="https://www.team-mediaportal.com/extensions/movies-videos/mediaportal-iptv-filter-and-url-source-splitter" target="_blank">download</a> MPEI package.</p><p></p><p>Reverting filter installation:</p><ol> <li data-xf-list-type="ol">close MediaPortal</li> <li data-xf-list-type="ol">uninstall MediaPortal IPTV filter and url source splitter in MediaPortal Extensions Installer</li> <li data-xf-list-type="ol">if you're using OnlineVideos, install MediaPortal Url Source Splitter through MediaPortal Extensions Installer</li> </ol><p><span style="font-size: 18px">Reporting bugs or problems</span></p><p>When you report bug or problem, please attach log files, which in best case can be obtained by this procedure:</p><ol> <li data-xf-list-type="ol">stop TvService and MediaPortal</li> <li data-xf-list-type="ol">clear TvService and MediaPortal log folder</li> <li data-xf-list-type="ol">start TvService</li> <li data-xf-list-type="ol">run MediaPortal</li> <li data-xf-list-type="ol">watch channel in TV or watch video in OnlineVideos</li> <li data-xf-list-type="ol">wait for bug or problem occur</li> <li data-xf-list-type="ol">close MediaPortal</li> <li data-xf-list-type="ol">stop TvService</li> <li data-xf-list-type="ol">post all logs from TvService and MediaPortal log folder</li> </ol><p><strong>Note:</strong> In case of crash (MP or TvService) filter produce crash dump files in log folder (MP or TvService, it depends on which component crashed). Crash dump files are generated only in case, when any filter component is cause of crash. These files are big (approx. 200 MB), so they can't be packed and posted.</p><p></p><p><span style="font-size: 18px">Technical documentation</span></p><p>[COLLAPSE]</p><p><span style="font-size: 18px">Supported URLs' formats</span></p><p>Because filter comes from MediaPortal Url Source Splitter, which is part of OnlineVideos, then all URL's must conform of general URL format for OnlineVideos. General format for URL has this structure (used ABNF syntax, <a href="http://tools.ietf.org/html/rfc5234" target="_blank">RFC 5234</a>):</p><p>[CODE]URL = PROTOCOLURL *1("####" PARAMETERS)</p><p>PARAMETERS = PARAMETER *("&" PARAMETER)</p><p>PARAMETER = NAME "=" VALUE</p><p>NAME = 1*ALPHADIGIT</p><p>VALUE = 1*(ALPHADIGIT / "%")</p><p></p><p>HOSTPORT = HOST [ ":" PORT ]</p><p>HOST = HOSTNAME | HOSTNUMBER</p><p>HOSTNAME = *[ DOMAINLABEL "." ] TOPLABEL</p><p>DOMAINLABEL = ALPHADIGIT | ALPHADIGIT *[ ALPHADIGIT | "-" ] ALPHADIGIT</p><p>TOPLABEL = ALPHA | ALPHA *[ ALPHADIGIT | "-" ] ALPHADIGIT</p><p>PORT = 1*DIGIT</p><p>ALPHADIGIT = ALPHA | DIGIT</p><p>ALPHA = LOWALPHA | HIGHALPHA</p><p>LOWALPHA = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |</p><p> "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |</p><p> "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |</p><p> "y" | "z"</p><p>HIGHALPHA = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" |</p><p> "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" |</p><p> "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"</p><p>DIGIT = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"[/CODE]</p><p>If in URL is specified <span style="font-family: 'Courier New'"><span style="color: rgb(0, 0, 255)">####</span></span>, then <span style="font-family: 'Courier New'"><span style="color: rgb(0, 0, 255)">HEADER</span></span> part is ignored. In many cases is sufficient to specify only <span style="font-family: 'Courier New'"><span style="color: rgb(0, 0, 255)">HEADER</span></span> part of URL. Each parameter value<strong> MUST BE</strong> encoded for URL (in C# System.Web.HttpUtility.UrlEncode() method), this ensures that all special characters in parameter value (like space, ampersand (<span style="font-family: 'Courier New'">&</span>), cross (<span style="font-family: 'Courier New'">#</span>), equal (<span style="font-family: 'Courier New'">=</span>), etc.) are properly encoded.</p><p></p><p><strong>General filter parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">Url</span></td><td>Empty</td><td>The URL to open.</td></tr><tr><td><span style="font-family: 'Courier New'">Interface</span></td><td>Empty</td><td>The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).</td></tr><tr><td><span style="font-family: 'Courier New'">LogFileName</span></td><td><br /> <ul> <li data-xf-list-type="ul">Common application data\Team MediaPortal\MPIPTVSource.log - for IPTV</li> <li data-xf-list-type="ul">Common application data\Team MediaPortal\MPUrlSourceSplitter.log - for splitter</li> </ul> </td><td>Specifies log file name for filter.</td></tr><tr><td><span style="font-family: 'Courier New'">LogMaxSize</span></td><td>10485760</td><td>The maximum size of log file in bytes (default is 10 MB).</td></tr><tr><td><span style="font-family: 'Courier New'">LogVerbosity</span></td><td>4</td><td>Log file verbosity level. Possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - no messages are logged to log file</li> <li data-xf-list-type="ul">1 - error messages are logged to log file</li> <li data-xf-list-type="ul">2 - warning messages are logged to log file</li> <li data-xf-list-type="ul">3 - information messages are logged to log file</li> <li data-xf-list-type="ul">4 - verbose messages are logged to log file</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">MaxPlugins</span></td><td>256</td><td>The maximum value of plugins to be loaded.</td></tr><tr><td><span style="font-family: 'Courier New'">CacheFolder</span></td><td><br /> <ul> <li data-xf-list-type="ul">Common application data\Team MediaPortal\MPIPTVSource - for IPTV</li> <li data-xf-list-type="ul">Common application data\Team MediaPortal\MPUrlSourceSplitter - for splitter</li> </ul> </td><td>Specifies cache folder for filter. Here are stored temporary files for splitter or IPTV. They are used to minimize memory consumption and for faster seeking in streams.</td></tr><tr><td><span style="font-family: 'Courier New'">LiveStream</span></td><td><br /> <ul> <li data-xf-list-type="ul">0 - for splitter</li> <li data-xf-list-type="ul">1 - for IPTV</li> </ul> </td><td>The flag specifying that stream is live stream. Live streams should set this parameter to 1. IPTV has always this flag set to 1.</td></tr><tr><td><span style="font-family: 'Courier New'">DumpProtocolInputData</span></td><td>0</td><td>The flag specifying that protocol input data should be dumped. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - disabled</li> <li data-xf-list-type="ul">1 - enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">DumpProtocolOutputData</span></td><td>0</td><td>The flag specifying that protocol output data should be dumped. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - disabled</li> <li data-xf-list-type="ul">1 - enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">DumpParserInputData</span></td><td>0</td><td>The flag specifying that parser input data should be dumped. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - disabled</li> <li data-xf-list-type="ul">1 - enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">DumpParserOutputData</span></td><td>0</td><td>The flag specifying that parser output data should be dumped. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - disabled</li> <li data-xf-list-type="ul">1 - enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">DumpOutputPinData</span></td><td>0</td><td>The flag specifying that output pin data should be dumped. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - disabled</li> <li data-xf-list-type="ul">1 - enabled</li> </ul> </td></tr></table><p><strong>Note:</strong> Unknown parameters are ignored by filter.</p><p></p><p><span style="color: rgb(179, 0, 179)"><strong>UDP and RTP protocols</strong></span></p><p>UDP and RTP protocols URLs are in this format:</p><p>[CODE]PROTOCOLURL = SCHEME "://" *1(SOURCEHOST "@") LOCALHOST</p><p>SCHEME = 1*1("UDP" | "RTP")</p><p>SOURCEHOST = HOSTPORT</p><p>LOCALHOST = HOSTPORT[/CODE]</p><p>The scheme of protocol can be "UDP" or "RTP", it doesn't matter. The protocol is determined on first received packet.</p><p></p><p>Examples:</p><ul> <li data-xf-list-type="ul">udp://233.10.12.1:7777</li> <li data-xf-list-type="ul">udp://@233.10.12.1:7777</li> <li data-xf-list-type="ul">udp://192.168.15.50:4477@233.10.12.1:7777</li> </ul><p><strong>UDP and RTP protocol parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">UdpOpenConnectionTimeout</span></td><td>2000</td><td>The timeout to open UDP or RTP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">UdpOpenConnectionSleepTime</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection. UDP multicast protocol sometimes needs additional time to subscribe and unsubscribe from multicast group. In that case is recommended 200 milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">UdpTotalReopenConnectionTimeout</span></td><td>60000</td><td>The total timeout to open UDP or RTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).</td></tr><tr><td><span style="font-family: 'Courier New'">UdpReceiveDataCheckInterval</span></td><td>500</td><td>The time in milliseconds to check incomming data. If count of incoming data is same, then connection is assumed as lost and is closed and opened new connection.</td></tr></table><p>Example of UDP URL with url (udp://@233.10.12.1:7777) and network interface (Local Area Connection):</p><p>[CODE]udp://@233.10.12.1:7777####Url=udp%3a%2f%2f%40233.10.12.1%3a7777&Interface=Local%20Area%20Connection[/CODE]</p><p><span style="color: rgb(179, 0, 179)"><strong>HTTP protocol</strong></span></p><p>HTTP protocol URL is defined in <a href="http://www.ietf.org/rfc/rfc1738.txt" target="_blank">RFC 1738</a>. By general in format:</p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "http" | "https"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]http://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]http://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]http://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>HTTP protocol parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">HttpOpenConnectionTimeout</span></td><td>20000</td><td>The timeout to open HTTP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpOpenConnectionSleepTime</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpTotalReopenConnectionTimeout</span></td><td>60000</td><td>The total timeout to open HTTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).</td></tr><tr><td><span style="font-family: 'Courier New'">HttpReferer</span></td><td>Empty</td><td>The value of referer HTTP header to send to remote server.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpUserAgent</span></td><td>Empty</td><td>The value of user agent HTTP header to send to remote server.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpCookie</span></td><td>Empty</td><td>The value of cookie HTTP header to send to remote server.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpVersion</span></td><td>0</td><td>Forces to use specific HTTP protocol version. Possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - automatic HTTP protocol version (by default it is HTTP 1.1)</li> <li data-xf-list-type="ul">1 - forces to use HTTP 1.0</li> <li data-xf-list-type="ul">2 - forces to use HTTP 1.1</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpIgnoreContentLength</span></td><td>0</td><td>Specifies if content length HTTP header have to be ignored (e.g. because server reports bad content length). Possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - doesn't ignore content length HTTP header</li> <li data-xf-list-type="ul">1 - ignore content length HTTP header</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpCookiesCount</span></td><td>0</td><td>Specifies the count of HTTP cookies parameters (<span style="font-family: 'Courier New'">HttpCookie00000000</span>, <span style="font-family: 'Courier New'">HttpCookie00000001</span>, etc.).</td></tr><tr><td><span style="font-family: 'Courier New'">HttpCookie%08u</span></td><td>Empty</td><td>The value of specific HTTP cookie in Netscape or Mozilla format or regular HTTP style cookie header. HTTP cookies are used to initialize cookie engine, but used are only these cookies, which are related to HTTP url. The parameters are indexed from zero.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpSeekingSupported</span></td><td>0</td><td>Specifies if seeking is supported by specifying range HTTP header in request. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - seeking is not supported<br /> </li> <li data-xf-list-type="ul">1 - forces seeking support</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpSeekingSupportDetection</span></td><td>1</td><td>Enables or disables automatic detection of seeking support. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - automatic detection is disabled (in that case is seeking support specified by <span style="font-family: 'Courier New'">HttpSeekingSupported </span>parameter)<br /> </li> <li data-xf-list-type="ul">1 - automatic detection is enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpServerAuthenticate</span></td><td>0</td><td>Enables or disables remote server authentication. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - authentication is disabled<br /> </li> <li data-xf-list-type="ul">1 - authentication is enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpServerUserName</span></td><td>Empty</td><td>The remote server user name.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpServerPassword</span></td><td>Empty</td><td>The remote server password.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServerAuthenticate</span></td><td>0</td><td>Enables or disables proxy server authentication. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - proxy server authentication is disabled<br /> </li> <li data-xf-list-type="ul">1 - proxy server authentication is enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServer</span></td><td>Empty</td><td>The URL or IP address of proxy server.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServerPort</span></td><td>Empty</td><td>The proxy server port.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServerUserName</span></td><td>Empty</td><td>The proxy server user name.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServerPassword</span></td><td>Empty</td><td>The proxy server password.</td></tr><tr><td><span style="font-family: 'Courier New'">HttpProxyServerType</span></td><td>1</td><td>The type of proxy server. The possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - no proxy server type, invalid value<br /> </li> <li data-xf-list-type="ul">1 - HTTP proxy server</li> <li data-xf-list-type="ul">2 - HTTP/1.0 proxy server</li> <li data-xf-list-type="ul">3 - SOCKS4 proxy server</li> <li data-xf-list-type="ul">4 - SOCKS5 proxy server</li> <li data-xf-list-type="ul">5 - SOCKS4A proxy server</li> <li data-xf-list-type="ul">6 - SOCKS5 proxy server with resolving hostname</li> </ul> </td></tr></table><p>Example of HTTP URL with url ([plain]http://www.youtube.com[/plain]), referer ([plain]http://www.test.tv[/plain]) and user agent (Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0):</p><p>[CODE]http://www.youtube.com####Url=http%3a%2f%2fwww.youtube.com&HttpReferer=http%3a%2f%2fwww.test.tv&HttpUserAgent=Mozilla%2f5.0+(Windows+NT+6.1%3b+WOW64%3b+rv%3a24.0)+Gecko%2f20100101+Firefox%2f24.0[/CODE]</p><p></p><p><span style="color: rgb(179, 0, 179)"><strong>RTSP protocol</strong></span></p><p>RTSP protocol URL has same format as HTTP protocol URL, except scheme:</p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "rtsp"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]rtsp://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]rtsp://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]rtsp://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>RTSP protocol parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">RtspOpenConnectionTimeout</span></td><td>20000</td><td>The timeout to open RTSP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspOpenConnectionSleepTime</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspTotalReopenConnectionTimeout</span></td><td>60000</td><td>The total timeout to open RTSP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).</td></tr><tr><td><span style="font-family: 'Courier New'">RtspMulticastPreference</span></td><td>2</td><td>The preference of multicast UDP transport.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspUdpPreference</span></td><td>1</td><td>The preference of unicast UDP transport.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspSameConnectionTcpPreference</span></td><td>0</td><td>The preference of interleaved TCP transport.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspClientPortMin</span></td><td>50000</td><td>The minimum UDP port to be used in UDP transport.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspClientPortMax</span></td><td>65535</td><td>The maximum UDP port to be used in UDP transport.</td></tr><tr><td><span style="font-family: 'Courier New'">RtspIgnoreRtpPayloadType</span></td><td>0</td><td>Value set to 1 ignores check of received RTP packets payload type against payload type specified in SDP.</td></tr></table><p>The RTSP protocol negotiate way how to transport data from server to client. The filter needs to know which transport is more preferred by user (e.g. because of firewalls, NATs, routers, etc.). For this purpose there are three parameters: <span style="font-family: 'Courier New'">RtspMulticastPreference</span>, <span style="font-family: 'Courier New'">RtspUdpPreference</span> and <span style="font-family: 'Courier New'">RtspSameConnectionTcpPreference</span>. More preferred transport is that with lower value. In default configuration is transport of data negotiated in this order: same TCP connection, new UDP connection and last is new multicast UDP connection. If your server supports only specific type of connection or you simply want to reorder negotiations, just change these three parameters values. Reordering negotiations can lead to faster opening of RTSP URLs, because filter doesn't create RTSP requests which are denied by remote RTSP server (because of unsupported transport).</p><p></p><p>For UDP connection there are two additional parameters: <span style="font-family: 'Courier New'">RtspClientPortMin</span> and <span style="font-family: 'Courier New'">RtspClientPortMax</span>. They specify minimum and maximum UDP ports to be used in negotiating transport.</p><p></p><p>Example of RTSP URL with url (rtsp://test.tv:5678/channel), network interface (Local Area Connection), preferred order of transports (first UDP, second same TCP, third multicast UDP) and minimum UDP client port (55000):</p><p>[CODE]rtsp://test.tv:5678/channel####Url=rtsp%3a%2f%2ftest.tv%3a5678%2fchannel&Interface=Local%20Area%20Connection&RtspUdpPreference=0&RtspSameConnectionTcpPreference=1&RtspClientPortMin=55000[/CODE]</p><p><span style="color: rgb(179, 0, 179)"><strong>RTMP protocol</strong></span></p><p>RTMP protocol is proprietary protocol. RTMP protocol URL is in format:</p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "rtmp" | "rtmpt" | "rtmpe" | "rtmpte" | "rtmps" | "rtmpts"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]rtmp://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]rtmp://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]rtmp://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>RTMP protocol parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">RtmpOpenConnectionTimeout</span></td><td>20000</td><td>The timeout to open RTMP url in milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpOpenConnectionSleepTime</span></td><td>0</td><td>The time in milliseconds to sleep before opening connection.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpTotalReopenConnectionTimeout</span></td><td>60000</td><td>The total timeout to open RTMP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpApp</span></td><td>Empty</td><td>Name of application to connect to on the RTMP server.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpTcUrl</span></td><td>Empty</td><td>URL of the target stream.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpPageUrl</span></td><td>Empty</td><td>URL of the web page in which the media was embedded.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpSwfUrl</span></td><td>Empty</td><td>URL of the SWF player for the media.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpFlashVer</span></td><td>Empty</td><td>Version of the Flash plugin used to run the SWF player.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpAuth</span></td><td>Empty</td><td>Authentication string to be appended to the connect string.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpArbitraryData</span></td><td>Empty</td><td>Appends arbitrary AMF data to the Connect message. The type must be B for Boolean, N for number, S for string, O for object, or Z for null. For Booleans the data must be either 0 or 1 for FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or 1 to end or begin an object, respectively. Data items in subobjects may be named, by prefixing the type with 'N' and specifying the name before the value, e.g. NB:myFlag:1. This option may be used multiple times to construct arbitrary AMF sequences. E.g. [plain]conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0[/plain]</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpPlayPath</span></td><td>Empty</td><td>The play path of media.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpPlaylist</span></td><td>0</td><td>If the value is 1, issue a set_playlist command before sending the play command.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpLive</span></td><td>0</td><td>If the value is 1, specifies that the media is a live stream. This flag is only for RTMP protocol and it has different meaning as <span style="font-family: 'Courier New'">LiveStream</span> parameter.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpSubscribe</span></td><td>Empty</td><td>Name of live stream to subscribe to.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpBuffer</span></td><td>30000</td><td>Sets buffer time to specified value in milliseconds.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpToken</span></td><td>Empty</td><td>Key for SecureToken response, used if the server requires SecureToken authentication.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpJtv</span></td><td>Empty</td><td>JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken.</td></tr><tr><td><span style="font-family: 'Courier New'">RtmpSwfVerify</span></td><td>0</td><td>If the value is 1, the SWF player is retrieved from the specified <span style="font-family: 'Courier New'">RtmpSwfUrl</span> for performing SWF Verification. The SWF hash and size (used in the verification step) are computed automatically.</td></tr></table><p>Example of RTMP URL with url ([plain]rtmp://rtmp.server.tv[/plain]), application ([plain]/vod/test.flv[/plain]), target stream URL ([plain]rtmp://rtmp.server.tv/vod/test.flv[/plain]), page URL ([plain]http://my.server.tv[/plain]), SWF file URL ([plain]http://my.server.tv/sources/player.swf[/plain]) and verification (1):</p><p>[CODE]rtmp://rtmp.server.tv####Url=rtmp%3a%2f%2frtmp.server.tv&RtmpApp=%2fvod%2ftest.flv&RtmpTcUrl=rtmp%3a%2f%2frtmp.server.tv%2fvod%2ftest.flv&RtmpPageUrl=http%3a%2f%2fmy.server.tv&RtmpSwfUrl=http%3a%2f%2fmy.server.tv%2fsources%2fplayer.swf&RtmpSwfVerify=1[/CODE]</p><p><span style="color: rgb(179, 0, 179)"><strong>AFHS protocol</strong></span></p><p>AFHS (Adobe Flash HTTP Streaming) protocol URL has same format as HTTP protocol URL, except scheme:</p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "afhs"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>AFHS protocol parameters</strong></p><p>All HTTP protocol parameters are allowed for AFHS protocol. The following parameters are added for AFHS protocol:</p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">AfhsSegmentFragmentUrlExtraParameters</span></td><td>Empty</td><td>Specifies string, which is added to each segment and fragment HTTP URL.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsBootstrapInfo</span></td><td>Empty</td><td>The content of bootstrap info in BASE64 encoding.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsBaseUrl</span></td><td>Empty</td><td>The base URL to create stream segements and fragments URL. Created from manifest URL, omitted is everything including last forward slash of path.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsMediaPartUrl</span></td><td>Empty</td><td>The content of <span style="font-family: 'Courier New'">url</span> attribute of <span style="font-family: 'Courier New'">media</span> element in manifest.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsMediaMetadata</span></td><td>Empty</td><td>The content of <span style="font-family: 'Courier New'">metadata</span> element in <span style="font-family: 'Courier New'">media</span> element in manifest.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsMediaBootstrapInfoUrl</span></td><td>Empty</td><td>The URL to bootstrap info (if specified in manifest).</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsManifestUrl</span></td><td>Empty</td><td>The URL to manifest.</td></tr><tr><td><span style="font-family: 'Courier New'">AfhsManifestContent</span></td><td>Empty</td><td>The content of Flash Media Manifest (F4M file).</td></tr></table><p><strong>Note</strong>: DRM protected streams are not supported.</p><p><span style="color: rgb(179, 0, 179)"></span></p><p><span style="color: rgb(179, 0, 179)"><strong>MSHS protocol</strong></span></p><p><span style="color: rgb(179, 0, 179)"><span style="color: rgb(0, 0, 0)">MSHS (Microsoft Smooth HTTP Streaming) protocol URL has same format as HTTP protocol URL, except scheme:</span></span></p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "mshs"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]mshs://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]mshs://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]mshs://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>MSHS protocol parameters</strong></p><p>All HTTP protocol parameters are allowed for MSHS protocol. The following parameters are added for AFHS protocol:</p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">MshsBaseUrl</span></td><td>Empty</td><td>The base URL to create stream fragments URL. Created from manifest URL, omitted is everything including last forward slash of path.</td></tr><tr><td><span style="font-family: 'Courier New'">MshsManifest</span></td><td>Empty</td><td>The content of manifest, zipped and encoded to BASE64 encoding.</td></tr></table><p><strong>Note</strong>: DRM protected streams are not supported.</p><p><strong>Note</strong>: From family of possible video and audio formats are supported:</p><ul> <li data-xf-list-type="ul">video: H264</li> <li data-xf-list-type="ul">audio: AACL</li> </ul><p><span style="color: rgb(179, 0, 179)"><strong>M3U8 protocol</strong></span></p><p>M3U8 (Apple HTTP live streaming) protocol URL has same format as HTTP protocol URL, except scheme:</p><p>[CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ]</p><p>SCHEME = "m3u8"[/CODE]</p><p>Examples:</p><ul> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv[/PLAIN]<br /> </li> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv/channel[/PLAIN]</li> <li data-xf-list-type="ul">[PLAIN]afhs://test.tv:5678/channel[/PLAIN]</li> </ul><p><strong>M3U8 protocol parameters</strong></p><p>All HTTP protocol parameters are allowed for MSHS protocol. The following parameters are added for M3U8protocol:</p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">M3u8PlaylistUrl</span></td><td>Empty</td><td>The M3U8 playlist URL.</td></tr><tr><td><span style="font-family: 'Courier New'">M3u8PlaylistContent</span></td><td>Empty</td><td>The playlist content (compressed by zlib) in BASE64 encoding.</td></tr></table><p><strong>Note</strong>: DRM protected streams are not supported.</p><p><strong>Note</strong>: Currently are supported only media playlists up to version 7, but tested were only up to version 3.</p><p></p><p><span style="font-size: 18px">Parsers</span></p><p>The filter can parse and handle several types of files:</p><ul> <li data-xf-list-type="ul"><a href="http://osmf.org/dev/osmf/specpdfs/FlashMediaManifestFileFormatSpecification.pdf" target="_blank">Flash Media Manifest</a> (F4M) - Adobe Flash HTTP Streaming</li> <li data-xf-list-type="ul"><a href="http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-SSTR%5D.pdf" target="_blank">Smooth Streaming Media</a> - Microsoft Smooth HTTP Streaming</li> <li data-xf-list-type="ul">MPEG2 Transport Stream parser - do specific things with MPEG2 Transport Stream</li> <li data-xf-list-type="ul"><a href="http://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/history/" target="_blank">M3U8 playlist</a> - Apple HTTP live streaming</li> </ul><p>This means that you don't have to specify specific AFHS, MSHS or M3U8 protocol url, just specify HTTP url to F4M file, MSHS manifest file or M3U8 playlist file.</p><p></p><p><strong><span style="color: rgb(179, 0, 179)">MPEG2 Transport Stream parser</span></strong></p><p>MPEG2 Transport Stream parser do several changes to MPEG2 stream:</p><ul> <li data-xf-list-type="ul">align MPEG2 transport stream packets to their boundary</li> <li data-xf-list-type="ul">detects discontinuity in MPEG2 stream based on continuity counters of MPEG2 transport stream packets</li> <li data-xf-list-type="ul">can change transport stream ID in program association section (TSID in PAT)</li> <li data-xf-list-type="ul">can change program number in program association section (program number in PAT) and transport stream program map section (program number in PMT)</li> <li data-xf-list-type="ul">can change program map PID and PID of PSI packets containing transport stream program map (PMT PID)</li> </ul><p>The last three options (changing transport stream ID, changing program number and/or changing program map PID) you need to use in case that your provider is chaning this identificators in stream and you need to rescan channels in TV-Server Configuration tool.</p><p></p><p><strong>Note</strong>: MPEG2 Transport Stream parser can change program number and/or program map PID only in case that in MPEG2 stream is only one program.</p><p></p><p><strong>MPEG2 Transport Stream parser parameters</strong></p><table style='width: 100%'><tr><td><strong>Parameter name</strong></td><td><strong>Default value</strong></td><td><strong>Specification</strong></td></tr><tr><td><span style="font-family: 'Courier New'">Mpeg2TsDetectDiscontinuity</span></td><td>1</td><td>Enables or disables discontinuity detection by analysing continuity counters of packets. Possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - discontinuity detection is disabled</li> <li data-xf-list-type="ul">1 - discontinuity detection is enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">Mpeg2TsAlignToMpeg2TSPacket</span></td><td>1</td><td>Align MPEG2 Transport Stream packets to their boundaries. It is strongly recommended to have this option left in default configuration. Without properly aligned MPEG2 packets, other functions in parser will not work. Probably also filter stops working (depending if you're using splitter or IPTV filter). Possible values are:<br /> <ul> <li data-xf-list-type="ul">0 - aligning of packets is disabled</li> <li data-xf-list-type="ul">1 - aligning of packets is enabled</li> </ul> </td></tr><tr><td><span style="font-family: 'Courier New'">Mpeg2TsTransportStreamID</span></td><td>Empty</td><td>The value of transport stream ID in program association section (PAT).</td></tr><tr><td><span style="font-family: 'Courier New'">Mpeg2TsProgramNumber</span></td><td>Empty</td><td>The value of program number in program association section (PAT) and transport stream program map section (PMT).</td></tr><tr><td><span style="font-family: 'Courier New'">Mpeg2TsProgramMapPID</span></td><td>Empty</td><td>The value of program map PID in program association section (PAT) and PID of packet containing transport stream program section (PMT).</td></tr></table><p>[/COLLAPSE]</p></blockquote><p></p>
[QUOTE="georgius, post: 1021780, member: 107951"] [CENTER][SIZE=4][COLOR=#ff0000]JIRA MP1-4155 : Rework of DVBIP RTSP Filter [URL]https://issues.team-mediaportal.com/browse/MP1-4155[/URL][/COLOR][/SIZE][/CENTER] [URL='https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4155-FEAT-Merge_of_IPTV_filter_and_MediaPortal_Url_Source_Splitter']GIT[/URL] branch: [URL]https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4155-FEAT-Merge_of_IPTV_filter_and_MediaPortal_Url_Source_Splitter[/URL] [SIZE=5]Supported protocols[/SIZE] Filter should be more stable and reliable than version provided with MediaPortal. Latest version supports protocols: [LIST] [*]IPTV (TV Service) [LIST] [*]UDP sources [*]RTP sources [*]HTTP sources [*]RTSP sources [*]M3U8 sources (Apple HTTP live streaming) [/LIST] [*]splitter (OnlineVideos) [LIST] [*]UDP sources [*]RTP sources [*]HTTP sources [*]RTSP sources [*]RTMP sources [*]AFHS sources (Adobe Flash HTTP streaming) [*]MSHS sources (Microsoft HTTP streaming) [*]M3U8 sources (Apple HTTP live streaming) [/LIST] [/LIST] [B]Note:[/B] Filter doesn't have ability to transcode or to mux incoming stream to MPEG2 TS format (yet). This is planned to be added but later (after all things, which are already planned). [SIZE=5]Compatibility[/SIZE] Filter is compatible and tested with MP 1.7.1. If you found that filter is compatible with any other MP version, let me know to update. [SIZE=5]Compatibility with standard MediaPortal IPTV filter[/SIZE] Filter is partially backward compatible with standard MediaPortal IPTV filter delivered by MediaPortal installer. It can partially handle URL parameters from standard MediaPortal IPTV filter. From standard MediaPortal IPTV filter URL parameters are supported parameters: [TABLE][TR][TD][B]MediaPortal IPTV filter parameter name[/B][/TD][TD][B]MergedMediaPortal IPTV filter and url source splitter parameter name[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]url[/FONT][/TD][TD][FONT=Courier New]Url[/FONT][/TD][TD]The URL to open. [/TD][/TR][TR][TD][FONT=Courier New]interface[/FONT][/TD][TD][FONT=Courier New]Interface[/FONT][/TD][TD]The name of network card interface to use to open URL. [/TD][/TR][TR][TD][FONT=Courier New]SidValue[/FONT][/TD][TD][FONT=Courier New]Mpeg2TsProgramNumber[/FONT][/TD][TD]The program number in program association section (PAT) and in transport stream program map section (PMT).[/TD][/TR][TR][TD][FONT=Courier New]PidValue[/FONT][/TD][TD][FONT=Courier New]Mpeg2TsProgramMapPID[/FONT][/TD][TD]The program map PID in program association section (PAT) or PID of packet containing transport stream program map section (PMT).[/TD][/TR][/TABLE][B]Note[/B]: The URL from standard MediaPortal IPTV filter don't have to be changed to MediaPortal IPTV filter and url source splitter URL format. [SIZE=5]TV Plugin[/SIZE] From version 2.1.3.5440 is in filter installer included TV plugin to edit scan playlist with possibility to set various filter parameters for each url. The TV plugin is available from TV-Server Configuration tool. After enabling plugin in [URL='http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/141_Configuration/TV-Server_Configuration/13_Plugins']Plugins[/URL] section, you can edit playlist or set default parameters for several protocols. On main_screen_with_playlist.png image is main screen with loaded playlist. There is [B]Channel name[/B], [B]Url[/B], [B]Protocol[/B], [B]Filter url[/B] and special icon column. Below playlist is property grid, when can be changed various settings for select url(s). It is possible to select mutiple urls, after that is possible to change settings for multiple urls. In special column is by default blue question mark. It is possible to test URL by clicking on icon, while testing url is shown two arrows in circle (testing_channel.png). If testing is successful, green tick icon is shown (testing_channel_successful.png) else red cross icon is shown (testing_channel_failed.png). The reason of failure is shown in tool tip over the red cross icon. Next to playlist editor tab are tabs with general settings for protocols. Each protocol has its own general settings. These settings are applied to url default settings on loading of playlist or pressing [B]Apply settings[/B] button. If some settings have wrong value, then next to value is shown exclamation mark with short description of error (in tool tip over icon). When some filter url exceedes maximum length of url in TV server database (by default 200 characters), the [B]Update database[/B] button is shown. In that case is needed to update database (press button) or you have to find exceeding url(s) and change settings to fit url in database. From version 2.1.4.5454 is included in TV plugin also database editor to update channel url directly in database (no scanning is necessary in this case). Database editor is very similar to playlist editor. After urls editing is needed to store changes into database by pressing [B]Store changes[/B] button. By pressing [B]Set M2TS parser[/B] button are set transport stream ID, program number and program map PID to MPEG2 TS parser settings in channel url. From version 2.2.8.5875 is possible to specify remote server authentication and proxy server authentication for HTTP, AFHS, MSHS and M3U8 protocols. [B][SIZE=3]HTTP protocol settings[/SIZE][/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Arial]Interface[/FONT][/TD][TD]System default[/TD][TD]The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).[/TD][/TR][TR][TD][FONT=Arial]Open connetion timeout[/FONT][/TD][TD]5000[/TD][TD]The timeout to open HTTP url in milliseconds.[/TD][/TR][TR][TD][FONT=Arial]Open connection sleep time[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Arial]Total reopen connection timeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open HTTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.[/TD][/TR][/TABLE] [B][SIZE=3]RTMP protocol settings[/SIZE][/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Arial]Interface[/FONT][/TD][TD]System default[/TD][TD]The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).[/TD][/TR][TR][TD][FONT=Arial]Open connetion timeout[/FONT][/TD][TD]20000[/TD][TD]The timeout to open RTMP url in milliseconds.[/TD][/TR][TR][TD][FONT=Arial]Open connection sleep time[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Arial]Total reopen connection timeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open RTMP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.[/TD][/TR][/TABLE] [B][SIZE=3]RTSP protocol settings[/SIZE][/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Arial]Interface[/FONT][/TD][TD]System default[/TD][TD]The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).[/TD][/TR][TR][TD][FONT=Arial]Open connetion timeout[/FONT][/TD][TD]1500[/TD][TD]The timeout to open RTSP url in milliseconds.[/TD][/TR][TR][TD][FONT=Arial]Open connection sleep time[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Arial]Total reopen connection timeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open RTSP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.[/TD][/TR][TR][TD][FONT=Arial]Client port range[/FONT][/TD][TD]50000 - 65535[/TD][TD]The minimum and maximum UDP port to be used in UDP transport.[/TD][/TR][TR][TD][FONT=Arial]Connection preference[/FONT][/TD][TD]same connection, UDP, UDP multicast[/TD][TD]The preference of each type of streaming. If negotiation of type of streaming failed, then filter tries to negotiate another type of transport. Changing preference order usually lead to faster opening of RTSP url.[/TD][/TR][TR][TD][FONT=Arial]Ignore RTP payload type[/FONT][/TD][TD]false (not checked)[/TD][TD]Specifies if filter have to ignore RTP packet payload type (in other case is RTP packet payload type compared to payload type specified in SDP).[/TD][/TR][/TABLE] [B][SIZE=3]UDP or RTP protocol settings[/SIZE][/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Arial]Interface[/FONT][/TD][TD]System default[/TD][TD]The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).[/TD][/TR][TR][TD][FONT=Arial]Open connetion timeout[/FONT][/TD][TD]1000[/TD][TD]The timeout to open UDP or RTP url in milliseconds.[/TD][/TR][TR][TD][FONT=Arial]Open connection sleep time[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection. UDP multicast protocol sometimes needs additional time to subscribe and unsubscribe from multicast group. In that case is recommended 200 milliseconds.[/TD][/TR][TR][TD][FONT=Arial]Total reopen connection timeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open UDP or RTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored.[/TD][/TR][TR][TD][FONT=Arial]Receive data check interval[/FONT][/TD][TD]500[/TD][TD]The time in milliseconds to check incomming data. If length of incoming data is same, then connection is assumed as lost and is closed and opened new connection.[/TD][/TR][/TABLE] [SIZE=5]MPEG2 Transport Stream parser settings[/SIZE] When successfully tested stream (in playlist or database editor), you can access to MPEG2 Transport stream parser settings (m2ts_parser_in_editor.png). The MPEG2 Transport Stream parser settings are divided into three sections: basic settings, filtering program elements and stream analysis. The basic settings (m2ts_basic.png) controls simple parser functionality. [B]Align to MPEG2 TS packet[/B] checkbox controls aligning stream to MPEG2 TS packet boundary. If this is not checked, then other functionality of MPEG2 TS parser will not work. [B]Detect discontinuity[/B] checkbox controls detecting discontinuities in MPEG2 TS packets in stream. The information about discontinuity is logged into filter's log file. [B]Set stream as not encrypted[/B] checkbox controls filter ability to clear all encryption flags and data in stream. It doesn't decrypt stream. This option can be useful if stream is not encrypted, but TV service detects stream as encrypted. [B]Force stream identification[/B] box allow to change stream identification for TV service. It can be useful when stream identification is changing (e.g. because of provider), but channel is still same. When stream identification is changed TV service cannot tune to channel. Values for transport stream ID, program number and program map PID can be found in stream analysis section or can be set in playlist or database editor by pressing [B]Set M2TS parser[/B] button. Forcing stream identification is not recommended in case of multiple programs in stream. In this case is also shown warning about multiple programs (m2ts_multiple_programs_warning.png). [B]Filtering program elements[/B] section is used to filter specific programs in stream (e.g. single radio channel in multiple radio channels stream). After successful stream test is this section populated with detected information from stream. Each tab represents one Transport Stream program map section (PMT) with all program elements (audio, video, subtitles, etc). [B]Transport stream program map PID[/B] text box can be used to manually create new filtering tab. [B]Add[/B] button adds new filtering tab, [B]Remove[/B] button remoes actually selected tab. [B]Allow filtering program elements[/B] allows filter to leave selected program elements in stream. [B]Leave program elements[/B] is populated with program element PIDs and only selected program elements are left in stream. [SIZE=5]Future plans[/SIZE] [LIST] [*]add back missing protocols and parsers (MMS) [*]transcoding to MPEG2 TS format [/LIST] [SIZE=5]Installation[/SIZE] For proper filter working you need [URL='https://www.microsoft.com/en-us/download/details.aspx?id=40784']Microsoft Visual C++ 2013 Redistributable Package (x86)[/URL]. Install through MediaPortal Extensions Installer or [URL='https://www.team-mediaportal.com/extensions/movies-videos/mediaportal-iptv-filter-and-url-source-splitter']download[/URL] MPEI package. Reverting filter installation: [LIST=1] [*]close MediaPortal [*]uninstall MediaPortal IPTV filter and url source splitter in MediaPortal Extensions Installer [*]if you're using OnlineVideos, install MediaPortal Url Source Splitter through MediaPortal Extensions Installer [/LIST] [SIZE=5]Reporting bugs or problems[/SIZE] When you report bug or problem, please attach log files, which in best case can be obtained by this procedure: [LIST=1] [*]stop TvService and MediaPortal [*]clear TvService and MediaPortal log folder [*]start TvService [*]run MediaPortal [*]watch channel in TV or watch video in OnlineVideos [*]wait for bug or problem occur [*]close MediaPortal [*]stop TvService [*]post all logs from TvService and MediaPortal log folder [/LIST] [B]Note:[/B] In case of crash (MP or TvService) filter produce crash dump files in log folder (MP or TvService, it depends on which component crashed). Crash dump files are generated only in case, when any filter component is cause of crash. These files are big (approx. 200 MB), so they can't be packed and posted. [SIZE=5]Technical documentation[/SIZE] [COLLAPSE] [SIZE=5]Supported URLs' formats[/SIZE] Because filter comes from MediaPortal Url Source Splitter, which is part of OnlineVideos, then all URL's must conform of general URL format for OnlineVideos. General format for URL has this structure (used ABNF syntax, [URL='http://tools.ietf.org/html/rfc5234']RFC 5234[/URL]): [CODE]URL = PROTOCOLURL *1("####" PARAMETERS) PARAMETERS = PARAMETER *("&" PARAMETER) PARAMETER = NAME "=" VALUE NAME = 1*ALPHADIGIT VALUE = 1*(ALPHADIGIT / "%") HOSTPORT = HOST [ ":" PORT ] HOST = HOSTNAME | HOSTNUMBER HOSTNAME = *[ DOMAINLABEL "." ] TOPLABEL DOMAINLABEL = ALPHADIGIT | ALPHADIGIT *[ ALPHADIGIT | "-" ] ALPHADIGIT TOPLABEL = ALPHA | ALPHA *[ ALPHADIGIT | "-" ] ALPHADIGIT PORT = 1*DIGIT ALPHADIGIT = ALPHA | DIGIT ALPHA = LOWALPHA | HIGHALPHA LOWALPHA = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" HIGHALPHA = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" DIGIT = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"[/CODE] If in URL is specified [FONT=Courier New][COLOR=rgb(0, 0, 255)]####[/COLOR][/FONT], then [FONT=Courier New][COLOR=rgb(0, 0, 255)]HEADER[/COLOR][/FONT] part is ignored. In many cases is sufficient to specify only [FONT=Courier New][COLOR=rgb(0, 0, 255)]HEADER[/COLOR][/FONT] part of URL. Each parameter value[B] MUST BE[/B] encoded for URL (in C# System.Web.HttpUtility.UrlEncode() method), this ensures that all special characters in parameter value (like space, ampersand ([FONT=Courier New]&[/FONT]), cross ([FONT=Courier New]#[/FONT]), equal ([FONT=Courier New]=[/FONT]), etc.) are properly encoded. [B]General filter parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]Url[/FONT][/TD][TD]Empty[/TD][TD]The URL to open.[/TD][/TR][TR][TD][FONT=Courier New]Interface[/FONT][/TD][TD]Empty[/TD][TD]The name of network card interface to use to open URL (in default case is network interface card chosen by operating system).[/TD][/TR][TR][TD][FONT=Courier New]LogFileName[/FONT][/TD][TD] [LIST] [*]Common application data\Team MediaPortal\MPIPTVSource.log - for IPTV [*]Common application data\Team MediaPortal\MPUrlSourceSplitter.log - for splitter [/LIST] [/TD][TD]Specifies log file name for filter.[/TD][/TR] [TR][TD][FONT=Courier New]LogMaxSize[/FONT][/TD][TD]10485760[/TD][TD]The maximum size of log file in bytes (default is 10 MB).[/TD][/TR][TR][TD][FONT=Courier New]LogVerbosity[/FONT][/TD][TD]4[/TD][TD]Log file verbosity level. Possible values are: [LIST] [*]0 - no messages are logged to log file [*]1 - error messages are logged to log file [*]2 - warning messages are logged to log file [*]3 - information messages are logged to log file [*]4 - verbose messages are logged to log file [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]MaxPlugins[/FONT][/TD][TD]256[/TD][TD]The maximum value of plugins to be loaded.[/TD][/TR][TR][TD][FONT=Courier New]CacheFolder[/FONT][/TD][TD] [LIST] [*]Common application data\Team MediaPortal\MPIPTVSource - for IPTV [*]Common application data\Team MediaPortal\MPUrlSourceSplitter - for splitter [/LIST] [/TD][TD]Specifies cache folder for filter. Here are stored temporary files for splitter or IPTV. They are used to minimize memory consumption and for faster seeking in streams.[/TD][/TR][TR][TD][FONT=Courier New]LiveStream[/FONT][/TD][TD] [LIST] [*]0 - for splitter [*]1 - for IPTV [/LIST] [/TD][TD]The flag specifying that stream is live stream. Live streams should set this parameter to 1. IPTV has always this flag set to 1.[/TD][/TR][TR][TD][FONT=Courier New]DumpProtocolInputData[/FONT][/TD][TD]0[/TD][TD]The flag specifying that protocol input data should be dumped. The possible values are: [LIST] [*]0 - disabled [*]1 - enabled [/LIST] [/TD][/TR] [TR][TD][FONT=Courier New]DumpProtocolOutputData[/FONT][/TD][TD]0[/TD][TD]The flag specifying that protocol output data should be dumped. The possible values are: [LIST] [*]0 - disabled [*]1 - enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]DumpParserInputData[/FONT][/TD][TD]0[/TD][TD]The flag specifying that parser input data should be dumped. The possible values are: [LIST] [*]0 - disabled [*]1 - enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]DumpParserOutputData[/FONT][/TD][TD]0[/TD][TD]The flag specifying that parser output data should be dumped. The possible values are: [LIST] [*]0 - disabled [*]1 - enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]DumpOutputPinData[/FONT][/TD][TD]0[/TD][TD]The flag specifying that output pin data should be dumped. The possible values are: [LIST] [*]0 - disabled [*]1 - enabled [/LIST] [/TD][/TR][/TABLE] [B]Note:[/B] Unknown parameters are ignored by filter. [COLOR=rgb(179, 0, 179)][B]UDP and RTP protocols[/B][/COLOR] UDP and RTP protocols URLs are in this format: [CODE]PROTOCOLURL = SCHEME "://" *1(SOURCEHOST "@") LOCALHOST SCHEME = 1*1("UDP" | "RTP") SOURCEHOST = HOSTPORT LOCALHOST = HOSTPORT[/CODE] The scheme of protocol can be "UDP" or "RTP", it doesn't matter. The protocol is determined on first received packet. Examples: [LIST] [*]udp://233.10.12.1:7777 [*]udp://@233.10.12.1:7777 [*]udp://192.168.15.50:4477@233.10.12.1:7777 [/LIST] [B]UDP and RTP protocol parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]UdpOpenConnectionTimeout[/FONT][/TD][TD]2000[/TD][TD]The timeout to open UDP or RTP url in milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]UdpOpenConnectionSleepTime[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection. UDP multicast protocol sometimes needs additional time to subscribe and unsubscribe from multicast group. In that case is recommended 200 milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]UdpTotalReopenConnectionTimeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open UDP or RTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).[/TD][/TR][TR][TD][FONT=Courier New]UdpReceiveDataCheckInterval[/FONT][/TD][TD]500[/TD][TD]The time in milliseconds to check incomming data. If count of incoming data is same, then connection is assumed as lost and is closed and opened new connection.[/TD][/TR][/TABLE] Example of UDP URL with url (udp://@233.10.12.1:7777) and network interface (Local Area Connection): [CODE]udp://@233.10.12.1:7777####Url=udp%3a%2f%2f%40233.10.12.1%3a7777&Interface=Local%20Area%20Connection[/CODE] [COLOR=rgb(179, 0, 179)][B]HTTP protocol[/B][/COLOR] HTTP protocol URL is defined in [URL='http://www.ietf.org/rfc/rfc1738.txt']RFC 1738[/URL]. By general in format: [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "http" | "https"[/CODE] Examples: [LIST] [*][PLAIN]http://test.tv[/PLAIN] [*][PLAIN]http://test.tv/channel[/PLAIN] [*][PLAIN]http://test.tv:5678/channel[/PLAIN] [/LIST] [B]HTTP protocol parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]HttpOpenConnectionTimeout[/FONT][/TD][TD]20000[/TD][TD]The timeout to open HTTP url in milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]HttpOpenConnectionSleepTime[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Courier New]HttpTotalReopenConnectionTimeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open HTTP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).[/TD][/TR][TR][TD][FONT=Courier New]HttpReferer[/FONT][/TD][TD]Empty[/TD][TD]The value of referer HTTP header to send to remote server.[/TD][/TR][TR][TD][FONT=Courier New]HttpUserAgent[/FONT][/TD][TD]Empty[/TD][TD]The value of user agent HTTP header to send to remote server.[/TD][/TR][TR][TD][FONT=Courier New]HttpCookie[/FONT][/TD][TD]Empty[/TD][TD]The value of cookie HTTP header to send to remote server.[/TD][/TR][TR][TD][FONT=Courier New]HttpVersion[/FONT][/TD][TD]0[/TD][TD]Forces to use specific HTTP protocol version. Possible values are: [LIST] [*]0 - automatic HTTP protocol version (by default it is HTTP 1.1) [*]1 - forces to use HTTP 1.0 [*]2 - forces to use HTTP 1.1 [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpIgnoreContentLength[/FONT][/TD][TD]0[/TD][TD]Specifies if content length HTTP header have to be ignored (e.g. because server reports bad content length). Possible values are: [LIST] [*]0 - doesn't ignore content length HTTP header [*]1 - ignore content length HTTP header [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpCookiesCount[/FONT][/TD][TD]0[/TD][TD]Specifies the count of HTTP cookies parameters ([FONT=Courier New]HttpCookie00000000[/FONT], [FONT=Courier New]HttpCookie00000001[/FONT], etc.).[/TD][/TR][TR][TD][FONT=Courier New]HttpCookie%08u[/FONT][/TD][TD]Empty[/TD][TD]The value of specific HTTP cookie in Netscape or Mozilla format or regular HTTP style cookie header. HTTP cookies are used to initialize cookie engine, but used are only these cookies, which are related to HTTP url. The parameters are indexed from zero.[/TD][/TR][TR][TD][FONT=Courier New]HttpSeekingSupported[/FONT][/TD][TD]0[/TD][TD]Specifies if seeking is supported by specifying range HTTP header in request. The possible values are: [LIST] [*]0 - seeking is not supported [*]1 - forces seeking support [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpSeekingSupportDetection[/FONT][/TD][TD]1[/TD][TD]Enables or disables automatic detection of seeking support. The possible values are: [LIST] [*]0 - automatic detection is disabled (in that case is seeking support specified by [FONT=Courier New]HttpSeekingSupported [/FONT]parameter) [*]1 - automatic detection is enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpServerAuthenticate[/FONT][/TD][TD]0[/TD][TD]Enables or disables remote server authentication. The possible values are: [LIST] [*]0 - authentication is disabled [*]1 - authentication is enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpServerUserName[/FONT][/TD][TD]Empty[/TD][TD]The remote server user name.[/TD][/TR][TR][TD][FONT=Courier New]HttpServerPassword[/FONT][/TD][TD]Empty[/TD][TD]The remote server password.[/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServerAuthenticate[/FONT][/TD][TD]0[/TD][TD]Enables or disables proxy server authentication. The possible values are: [LIST] [*]0 - proxy server authentication is disabled [*]1 - proxy server authentication is enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServer[/FONT][/TD][TD]Empty[/TD][TD]The URL or IP address of proxy server.[/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServerPort[/FONT][/TD][TD]Empty[/TD][TD]The proxy server port.[/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServerUserName[/FONT][/TD][TD]Empty[/TD][TD]The proxy server user name.[/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServerPassword[/FONT][/TD][TD]Empty[/TD][TD]The proxy server password.[/TD][/TR][TR][TD][FONT=Courier New]HttpProxyServerType[/FONT][/TD][TD]1[/TD][TD]The type of proxy server. The possible values are: [LIST] [*]0 - no proxy server type, invalid value [*]1 - HTTP proxy server [*]2 - HTTP/1.0 proxy server [*]3 - SOCKS4 proxy server [*]4 - SOCKS5 proxy server [*]5 - SOCKS4A proxy server [*]6 - SOCKS5 proxy server with resolving hostname [/LIST] [/TD][/TR][/TABLE]Example of HTTP URL with url ([plain]http://www.youtube.com[/plain]), referer ([plain]http://www.test.tv[/plain]) and user agent (Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0): [CODE]http://www.youtube.com####Url=http%3a%2f%2fwww.youtube.com&HttpReferer=http%3a%2f%2fwww.test.tv&HttpUserAgent=Mozilla%2f5.0+(Windows+NT+6.1%3b+WOW64%3b+rv%3a24.0)+Gecko%2f20100101+Firefox%2f24.0[/CODE] [COLOR=rgb(179, 0, 179)][B]RTSP protocol[/B][/COLOR] RTSP protocol URL has same format as HTTP protocol URL, except scheme: [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "rtsp"[/CODE] Examples: [LIST] [*][PLAIN]rtsp://test.tv[/PLAIN] [*][PLAIN]rtsp://test.tv/channel[/PLAIN] [*][PLAIN]rtsp://test.tv:5678/channel[/PLAIN] [/LIST] [B]RTSP protocol parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]RtspOpenConnectionTimeout[/FONT][/TD][TD]20000[/TD][TD]The timeout to open RTSP url in milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]RtspOpenConnectionSleepTime[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Courier New]RtspTotalReopenConnectionTimeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open RTSP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).[/TD][/TR][TR][TD][FONT=Courier New]RtspMulticastPreference[/FONT][/TD][TD]2[/TD][TD]The preference of multicast UDP transport.[/TD][/TR][TR][TD][FONT=Courier New]RtspUdpPreference[/FONT][/TD][TD]1[/TD][TD]The preference of unicast UDP transport.[/TD][/TR][TR][TD][FONT=Courier New]RtspSameConnectionTcpPreference[/FONT][/TD][TD]0[/TD][TD]The preference of interleaved TCP transport.[/TD][/TR][TR][TD][FONT=Courier New]RtspClientPortMin[/FONT][/TD][TD]50000[/TD][TD]The minimum UDP port to be used in UDP transport.[/TD][/TR][TR][TD][FONT=Courier New]RtspClientPortMax[/FONT][/TD][TD]65535[/TD][TD]The maximum UDP port to be used in UDP transport.[/TD][/TR][TR][TD][FONT=Courier New]RtspIgnoreRtpPayloadType[/FONT][/TD][TD]0[/TD][TD]Value set to 1 ignores check of received RTP packets payload type against payload type specified in SDP.[/TD][/TR][/TABLE] The RTSP protocol negotiate way how to transport data from server to client. The filter needs to know which transport is more preferred by user (e.g. because of firewalls, NATs, routers, etc.). For this purpose there are three parameters: [FONT=Courier New]RtspMulticastPreference[/FONT], [FONT=Courier New]RtspUdpPreference[/FONT] and [FONT=Courier New]RtspSameConnectionTcpPreference[/FONT]. More preferred transport is that with lower value. In default configuration is transport of data negotiated in this order: same TCP connection, new UDP connection and last is new multicast UDP connection. If your server supports only specific type of connection or you simply want to reorder negotiations, just change these three parameters values. Reordering negotiations can lead to faster opening of RTSP URLs, because filter doesn't create RTSP requests which are denied by remote RTSP server (because of unsupported transport). For UDP connection there are two additional parameters: [FONT=Courier New]RtspClientPortMin[/FONT] and [FONT=Courier New]RtspClientPortMax[/FONT]. They specify minimum and maximum UDP ports to be used in negotiating transport. Example of RTSP URL with url (rtsp://test.tv:5678/channel), network interface (Local Area Connection), preferred order of transports (first UDP, second same TCP, third multicast UDP) and minimum UDP client port (55000): [CODE]rtsp://test.tv:5678/channel####Url=rtsp%3a%2f%2ftest.tv%3a5678%2fchannel&Interface=Local%20Area%20Connection&RtspUdpPreference=0&RtspSameConnectionTcpPreference=1&RtspClientPortMin=55000[/CODE] [COLOR=rgb(179, 0, 179)][B]RTMP protocol[/B][/COLOR] RTMP protocol is proprietary protocol. RTMP protocol URL is in format: [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "rtmp" | "rtmpt" | "rtmpe" | "rtmpte" | "rtmps" | "rtmpts"[/CODE] Examples: [LIST] [*][PLAIN]rtmp://test.tv[/PLAIN] [*][PLAIN]rtmp://test.tv/channel[/PLAIN] [*][PLAIN]rtmp://test.tv:5678/channel[/PLAIN] [/LIST] [B]RTMP protocol parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]RtmpOpenConnectionTimeout[/FONT][/TD][TD]20000[/TD][TD]The timeout to open RTMP url in milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]RtmpOpenConnectionSleepTime[/FONT][/TD][TD]0[/TD][TD]The time in milliseconds to sleep before opening connection.[/TD][/TR][TR][TD][FONT=Courier New]RtmpTotalReopenConnectionTimeout[/FONT][/TD][TD]60000[/TD][TD]The total timeout to open RTMP url in milliseconds. It is applied when lost connection and trying to open new one. Filter will be trying to open connection until this timeout occurs. This parameter is ignored in case of live stream (IPTV or specified live stream in OnlineVideos).[/TD][/TR][TR][TD][FONT=Courier New]RtmpApp[/FONT][/TD][TD]Empty[/TD][TD]Name of application to connect to on the RTMP server.[/TD][/TR][TR][TD][FONT=Courier New]RtmpTcUrl[/FONT][/TD][TD]Empty[/TD][TD]URL of the target stream.[/TD][/TR][TR][TD][FONT=Courier New]RtmpPageUrl[/FONT][/TD][TD]Empty[/TD][TD]URL of the web page in which the media was embedded.[/TD][/TR][TR][TD][FONT=Courier New]RtmpSwfUrl[/FONT][/TD][TD]Empty[/TD][TD]URL of the SWF player for the media.[/TD][/TR][TR][TD][FONT=Courier New]RtmpFlashVer[/FONT][/TD][TD]Empty[/TD][TD]Version of the Flash plugin used to run the SWF player.[/TD][/TR][TR][TD][FONT=Courier New]RtmpAuth[/FONT][/TD][TD]Empty[/TD][TD]Authentication string to be appended to the connect string.[/TD][/TR][TR][TD][FONT=Courier New]RtmpArbitraryData[/FONT][/TD][TD]Empty[/TD][TD]Appends arbitrary AMF data to the Connect message. The type must be B for Boolean, N for number, S for string, O for object, or Z for null. For Booleans the data must be either 0 or 1 for FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or 1 to end or begin an object, respectively. Data items in subobjects may be named, by prefixing the type with 'N' and specifying the name before the value, e.g. NB:myFlag:1. This option may be used multiple times to construct arbitrary AMF sequences. E.g. [plain]conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0[/plain][/TD][/TR][TR][TD][FONT=Courier New]RtmpPlayPath[/FONT][/TD][TD]Empty[/TD][TD]The play path of media.[/TD][/TR][TR][TD][FONT=Courier New]RtmpPlaylist[/FONT][/TD][TD]0[/TD][TD]If the value is 1, issue a set_playlist command before sending the play command.[/TD][/TR][TR][TD][FONT=Courier New]RtmpLive[/FONT][/TD][TD]0[/TD][TD]If the value is 1, specifies that the media is a live stream. This flag is only for RTMP protocol and it has different meaning as [FONT=Courier New]LiveStream[/FONT] parameter.[/TD][/TR][TR][TD][FONT=Courier New]RtmpSubscribe[/FONT][/TD][TD]Empty[/TD][TD]Name of live stream to subscribe to.[/TD][/TR][TR][TD][FONT=Courier New]RtmpBuffer[/FONT][/TD][TD]30000[/TD][TD]Sets buffer time to specified value in milliseconds.[/TD][/TR][TR][TD][FONT=Courier New]RtmpToken[/FONT][/TD][TD]Empty[/TD][TD]Key for SecureToken response, used if the server requires SecureToken authentication.[/TD][/TR][TR][TD][FONT=Courier New]RtmpJtv[/FONT][/TD][TD]Empty[/TD][TD]JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken.[/TD][/TR][TR][TD][FONT=Courier New]RtmpSwfVerify[/FONT][/TD][TD]0[/TD][TD]If the value is 1, the SWF player is retrieved from the specified [FONT=Courier New]RtmpSwfUrl[/FONT] for performing SWF Verification. The SWF hash and size (used in the verification step) are computed automatically.[/TD][/TR][/TABLE] Example of RTMP URL with url ([plain]rtmp://rtmp.server.tv[/plain]), application ([plain]/vod/test.flv[/plain]), target stream URL ([plain]rtmp://rtmp.server.tv/vod/test.flv[/plain]), page URL ([plain]http://my.server.tv[/plain]), SWF file URL ([plain]http://my.server.tv/sources/player.swf[/plain]) and verification (1): [CODE]rtmp://rtmp.server.tv####Url=rtmp%3a%2f%2frtmp.server.tv&RtmpApp=%2fvod%2ftest.flv&RtmpTcUrl=rtmp%3a%2f%2frtmp.server.tv%2fvod%2ftest.flv&RtmpPageUrl=http%3a%2f%2fmy.server.tv&RtmpSwfUrl=http%3a%2f%2fmy.server.tv%2fsources%2fplayer.swf&RtmpSwfVerify=1[/CODE] [COLOR=rgb(179, 0, 179)][B]AFHS protocol[/B][/COLOR] AFHS (Adobe Flash HTTP Streaming) protocol URL has same format as HTTP protocol URL, except scheme: [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "afhs"[/CODE] Examples: [LIST] [*][PLAIN]afhs://test.tv[/PLAIN] [*][PLAIN]afhs://test.tv/channel[/PLAIN] [*][PLAIN]afhs://test.tv:5678/channel[/PLAIN] [/LIST] [B]AFHS protocol parameters[/B] All HTTP protocol parameters are allowed for AFHS protocol. The following parameters are added for AFHS protocol: [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]AfhsSegmentFragmentUrlExtraParameters[/FONT][/TD][TD]Empty[/TD][TD]Specifies string, which is added to each segment and fragment HTTP URL.[/TD][/TR][TR][TD][FONT=Courier New]AfhsBootstrapInfo[/FONT][/TD][TD]Empty[/TD][TD]The content of bootstrap info in BASE64 encoding.[/TD][/TR][TR][TD][FONT=Courier New]AfhsBaseUrl[/FONT][/TD][TD]Empty[/TD][TD]The base URL to create stream segements and fragments URL. Created from manifest URL, omitted is everything including last forward slash of path.[/TD][/TR][TR][TD][FONT=Courier New]AfhsMediaPartUrl[/FONT][/TD][TD]Empty[/TD][TD]The content of [FONT=Courier New]url[/FONT] attribute of [FONT=Courier New]media[/FONT] element in manifest.[/TD][/TR][TR][TD][FONT=Courier New]AfhsMediaMetadata[/FONT][/TD][TD]Empty[/TD][TD]The content of [FONT=Courier New]metadata[/FONT] element in [FONT=Courier New]media[/FONT] element in manifest.[/TD][/TR][TR][TD][FONT=Courier New]AfhsMediaBootstrapInfoUrl[/FONT][/TD][TD]Empty[/TD][TD]The URL to bootstrap info (if specified in manifest).[/TD][/TR][TR][TD][FONT=Courier New]AfhsManifestUrl[/FONT][/TD][TD]Empty[/TD][TD]The URL to manifest.[/TD][/TR][TR][TD][FONT=Courier New]AfhsManifestContent[/FONT][/TD][TD]Empty[/TD][TD]The content of Flash Media Manifest (F4M file).[/TD][/TR][/TABLE][B]Note[/B]: DRM protected streams are not supported. [COLOR=rgb(179, 0, 179)] [B]MSHS protocol[/B] [COLOR=rgb(0, 0, 0)]MSHS (Microsoft Smooth HTTP Streaming) protocol URL has same format as HTTP protocol URL, except scheme:[/COLOR][/COLOR] [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "mshs"[/CODE] Examples: [LIST] [*][PLAIN]mshs://test.tv[/PLAIN] [*][PLAIN]mshs://test.tv/channel[/PLAIN] [*][PLAIN]mshs://test.tv:5678/channel[/PLAIN] [/LIST] [B]MSHS protocol parameters[/B] All HTTP protocol parameters are allowed for MSHS protocol. The following parameters are added for AFHS protocol: [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]MshsBaseUrl[/FONT][/TD][TD]Empty[/TD][TD]The base URL to create stream fragments URL. Created from manifest URL, omitted is everything including last forward slash of path.[/TD][/TR][TR][TD][FONT=Courier New]MshsManifest[/FONT][/TD][TD]Empty[/TD][TD]The content of manifest, zipped and encoded to BASE64 encoding.[/TD][/TR][/TABLE][B]Note[/B]: DRM protected streams are not supported. [B]Note[/B]: From family of possible video and audio formats are supported: [LIST] [*]video: H264 [*]audio: AACL [/LIST] [COLOR=rgb(179, 0, 179)][B]M3U8 protocol[/B][/COLOR] M3U8 (Apple HTTP live streaming) protocol URL has same format as HTTP protocol URL, except scheme: [CODE]PROTOCOLURL = SCHEME "://" HOSTPORT [ "/" PATH ] SCHEME = "m3u8"[/CODE] Examples: [LIST] [*][PLAIN]afhs://test.tv[/PLAIN] [*][PLAIN]afhs://test.tv/channel[/PLAIN] [*][PLAIN]afhs://test.tv:5678/channel[/PLAIN] [/LIST] [B]M3U8 protocol parameters[/B] All HTTP protocol parameters are allowed for MSHS protocol. The following parameters are added for M3U8protocol: [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]M3u8PlaylistUrl[/FONT][/TD][TD]Empty[/TD][TD]The M3U8 playlist URL.[/TD][/TR][TR][TD][FONT=Courier New]M3u8PlaylistContent[/FONT][/TD][TD]Empty[/TD][TD]The playlist content (compressed by zlib) in BASE64 encoding.[/TD][/TR][/TABLE][B]Note[/B]: DRM protected streams are not supported. [B]Note[/B]: Currently are supported only media playlists up to version 7, but tested were only up to version 3. [SIZE=5]Parsers[/SIZE] The filter can parse and handle several types of files: [LIST] [*][URL='http://osmf.org/dev/osmf/specpdfs/FlashMediaManifestFileFormatSpecification.pdf']Flash Media Manifest[/URL] (F4M) - Adobe Flash HTTP Streaming [*][URL='http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-SSTR%5D.pdf']Smooth Streaming Media[/URL] - Microsoft Smooth HTTP Streaming [*]MPEG2 Transport Stream parser - do specific things with MPEG2 Transport Stream [*][URL='http://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/history/']M3U8 playlist[/URL] - Apple HTTP live streaming [/LIST] This means that you don't have to specify specific AFHS, MSHS or M3U8 protocol url, just specify HTTP url to F4M file, MSHS manifest file or M3U8 playlist file. [B][COLOR=rgb(179, 0, 179)]MPEG2 Transport Stream parser[/COLOR][/B] MPEG2 Transport Stream parser do several changes to MPEG2 stream: [LIST] [*]align MPEG2 transport stream packets to their boundary [*]detects discontinuity in MPEG2 stream based on continuity counters of MPEG2 transport stream packets [*]can change transport stream ID in program association section (TSID in PAT) [*]can change program number in program association section (program number in PAT) and transport stream program map section (program number in PMT) [*]can change program map PID and PID of PSI packets containing transport stream program map (PMT PID) [/LIST] The last three options (changing transport stream ID, changing program number and/or changing program map PID) you need to use in case that your provider is chaning this identificators in stream and you need to rescan channels in TV-Server Configuration tool. [B]Note[/B]: MPEG2 Transport Stream parser can change program number and/or program map PID only in case that in MPEG2 stream is only one program. [B]MPEG2 Transport Stream parser parameters[/B] [TABLE][TR][TD][B]Parameter name[/B][/TD][TD][B]Default value[/B][/TD][TD][B]Specification[/B][/TD][/TR][TR][TD][FONT=Courier New]Mpeg2TsDetectDiscontinuity[/FONT][/TD][TD]1[/TD][TD]Enables or disables discontinuity detection by analysing continuity counters of packets. Possible values are: [LIST] [*]0 - discontinuity detection is disabled [*]1 - discontinuity detection is enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]Mpeg2TsAlignToMpeg2TSPacket[/FONT][/TD][TD]1[/TD][TD]Align MPEG2 Transport Stream packets to their boundaries. It is strongly recommended to have this option left in default configuration. Without properly aligned MPEG2 packets, other functions in parser will not work. Probably also filter stops working (depending if you're using splitter or IPTV filter). Possible values are: [LIST] [*]0 - aligning of packets is disabled [*]1 - aligning of packets is enabled [/LIST] [/TD][/TR][TR][TD][FONT=Courier New]Mpeg2TsTransportStreamID[/FONT][/TD][TD]Empty[/TD][TD]The value of transport stream ID in program association section (PAT).[/TD][/TR][TR][TD][FONT=Courier New]Mpeg2TsProgramNumber[/FONT][/TD][TD]Empty[/TD][TD]The value of program number in program association section (PAT) and transport stream program map section (PMT).[/TD][/TR][TR][TD][FONT=Courier New]Mpeg2TsProgramMapPID[/FONT][/TD][TD]Empty[/TD][TD]The value of program map PID in program association section (PAT) and PID of packet containing transport stream program section (PMT).[/TD][/TR][/TABLE][/COLLAPSE] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MERGING MediaPortal Url Source Splitter & IPTV Filter
Contact us
RSS
Top
Bottom