Important: After an update to Recording Service 1.33 the following additional measures may be required:
User names and passwords for Web Server access configured in previous versions must be re-entered in the Recordings Service Options → Web Settings. Old credentials are invalid since the whole password system has changed. Now it also includes streaming. Please refer to the section “Authentication” (see below) for more information.
When using the Web Interface please force the browser to reload it without cache usage by pressing Ctrl + F5 or clear the browser cache before using the Web Interface. Due to major changes it may not work correctly if old files get involved.
Since the out-dated Unicast Server is now disabled by default, it may be necessary in certain cases to enable it again in the Options if you are using it. Most existing installations will not be affected, however.
Changes in version 1.33 Beta:
Favorites
The Web Interface now displays favorites that have been configured in the DVBViewer Pro Channel Editor. The following checkboxes in the Recording Service Options → Web Settings refer to favorites:
Additionally show favorites lets the Web Interface display the favorites resp. their categories at the top of the channel list.
Only show favorites lets the Web Interface only show the favorites resp. their categories.
These two checkboxes are also available on the Configuration Page of the Web Interface. They apply to all channel list representations and to UPnP, which means, in “favorites only” mode only favorites are visible for UPnP clients. Other channels are still available via URLs that contain a channel number or ID, however. Please refer to the API section for more information.
Recording Service Options → EPG Options → Only receive transponders with favorites lets the automatic EPG update only scan transponders that contain at least one favorite channel. This option can reduce the update duration and amount of stored EPG data considerably.
Media Page
The Media Page of the Web Interface (formerly UPnP Media) has been reworked. It now enables enhanced access to the media libraries on the local PC (where the Recording Service is running), provided they are configured in the Recording Service Options → Media Libraries. The enhancements include the following points:
In case of local media the Media Page and streaming now accesses the Media Libraries directly, without the UPnP Server → UPnP Client detour, thus enabling faster access, more information in the Details Window, jumping resp. channel switching in the playback window and independence from the experimental “Enable UPnP Controller” setting (see Recording Service Options → Web/UPnP).
The Web Interface provides a simple Image Viewer allowing to display photos resp. images from the media libraries or other UPnP servers in the network.
Clicking a folder icon on the Media page creates a M3U playlist that contains URLs of all playable items within this category resp. folder. This feature includes photos, because some software like VLC or Windows Media Player play image playlists as slide show. Please note that creating playlists containing scores of items from other UPnP servers may block the Recording Service for some time, particularly if the server in question sends the information slowly.
The Media Page remembers and restores its last state by means of cookies.
A navigation bar has been added at the top, allowing to return to higher hierarchy levels. If the Experimental UPnP Controller is disabled (see Recording Service Options → Web/UPnP) the Web Interface automatically hides the top bar that allows to browse the media content of other UPNP servers and to use UPnP Render Control.
A Radio → Internet sub-section with internet radio channels can be added by storing a radio.ini file in the config sub-directory of the configuration folder. The file must conform to the DVBViewer channel list INI format and can be created in the DVBViewer GE channel list window or with TransEdit 4.1. Please note: The 1.33 release installs a sample Radio.ini containing public radio stations from Germany, Austria, Switzerland and the UK.
WAV files are now included in the music library (takes effect on new installations or after removing the file uPnPProfilesV2.xml from the config sub-directory of the configuration folder, restarting the Recording Service and re-building the music database). More audio file types can be added in the file uPnPProfilesV2.xml
Streaming
There are important changes concerning streams delivered by the Web Server. In contrast to previous Recording Service versions they are password-protected if a password is set in the Recording Service Options, thus enabling streaming over the internet. Please refer to the authentication section for further information. Secondly the Web Server is now able to deliver the original live streams or media files without transcoding. Previously this kind of streaming was restricted to the Live and Media Streaming Server that are mainly intended for UPnP in the home network. The enhancements in detail:
The URLs for obtaining non-transcoded streams from the Web Server are the same as for the Live and Media Streaming Server, but with the Web Server port. The basic scheme is
http: //[IP]:[Port]/upnp/[xxxxx]/[ID].[Extension]
[xxxxx] can be channelstream, recordings, video, audio or photo
[ID] is a channel number or channel ID in case of live streams or an integer ID in case of recordings / video / audio / photo that can be retrieved from the corresponding API (recordings or mediafiles, see API section).
[Extension] is the extension of the delivered file or .ts in case of live streams. The extension is not required for the Recording Service, but may help client software to recognize the media type.
The new tweak “Use Web Server URLs in M3U playlists” (→ launch RSTweaker.bat) applies to URLs contained in M3U playlists (or channel lists) downloaded from the Web Server within the local network. If switched on the Web Server port is used (enabling password protection and reverse proxy support). If switched off the Media or Live Streaming Server port without these capabilities is used. This is the default setting for compatibility reasons. For transcoded streams or requests from other networks (internet) the Web Server port is a must, so it is used in any case.
M3U files downloaded with the “HTTP Single Stream” button in the Stream Configuration window now additionally provide the title / channel name and duration if available, and in case of recordings the correct file extension in the URL (previously always .ts). M3U files referencing a local video or audio file can now be exported without the experimental UPnP Controller being enabled since the Recording Service's UPnP client is not used anymore for this purpose.
In case of TV/Radio streaming the Live Streaming Server and Web Server are now able to detect wrong or missing channel data (PIDs) and correct them automatically. For transcoded streaming this is only done once initially, because FFmpeg can't cope with PID changes after transcoding has started. However, when delivering the original transport stream the servers adapt to all channel data changes, e. g. a temporary switchover to regional streams. In this case it depends on the client's capabilities whether it works or not. If not the stream has to be re-started after the switch-over. The servers also consider the “Don't update automatically” flag that has been introduced with DVBViewer Pro 5.6. If it is set the servers use the channel data as it is without any correction / adjustment.
API
The Recording Service 1.33 provides new APIs for reading settings from the service.xml and enumerating available media files. Additionally existing APIs are extended for accessing favorites and using EPG search capabilities. “Read only” API functions that don't change data are now available for guest access. The details:
The getchannelsxml API provides two new parameters for the query part of the URL: fav=1 lets the API enumerate the favorites at the top of the channel list. favonly=1exclusively enumerates the favorites. Both parameters also apply to “rootsonly” and “groupsonly” mode, which means, the favorite groups resp. the favorite root are enumerated additionally or only.
Remarks: Favorites and channels appear as a contiguous virtual channel list, where favorites are numbered from -NoOfFavorites to -1 and channels from 0 to NoOfChannels-1. The negative favorite numbers can be used in URLs for channel selection (e. g. chid=-1). However, it is recommendable to rather use the channel ID than the index, because the latter may change in future Recording Service versions during runtime.
The new /api/setting.html API provides an easy way to read settings from the file service.xml. It requires two parameters specifying the section and name (= identifier) of the value in question. The following example gets the port of the Live Streaming Server:
/api/setting.html?sec=WebGeneral&id=StreamPort&def=7522
The line reads the value from the section sec with the identifier id and returns it as plain text. The def parameter is optional. It specifies a default that is returned if the entry does not exist. If def is not specified the API returns an empty string in this case.
The new /api/mediafiles.html request lists media files as xml. Only files in the Media Libraries (see Recording Service Options) are included. The following parameters are supported:
audio=1: Lets the API list music directories and files instead of video.
photo=1: Lets the API list image directories and files instead of video.
dirid=[integer directory ID]: Lets the API list the files in the directory identified by its ID. If this parameter is missing, the API lists the directories and sub-directories containing the requested media file type as linear list. Besides other attributes each directory or file item provides an integer ID that allows to list the directory content resp. can be used as part of a URL. URLs for non-transcoded streaming are described in the Media Streaming section (see above), URLs for transcoded streaming are explained in the file transcoding_params_en.txt in the Docs sub-directory of the Recording Service installation.
thumbs=1: Adds a relative URL referencing a video / photo thumbnail or album artwork to the file items.
The new /api/tasks.xml?task=... request executes the task with the specified name without delivering a HTML page. Please note that tasks cannot be executed with guest (read only) rights. If the rights are not sufficient or the specified task does not exists, the Web Server responds with a HTTP 404 status code (not found).
/api/epg.html now accepts two additional parameters in the query part. search=... specifies a search term. Only EPG items containing the term are listed. options=... specifies the search options as character string containing one or more of the following letters that correspond to the EPG search options in the Web Interface:
T: Search in title.
S: Search in sub-title
D: Search in description
C: Case sensitive
R: Use regular expression
If the options parameter is missing or contains none of the letters TSD, the default is T.
/api/status2.html now provides an additional entry <rights>...</rights> in the XML output, that specifies rhe current access rights. Possible values are “full” (full access rights) or “read” (guest access rights).
If /api/recdelete cannot delete an existing recording because it is used somewhere else, the corresponding database entry is not deleted either (previously it was removed so the file could not be referenced anymore). The API now returns a “423 Locked” status code in this case.
api/getconfigfile now allows to create a list of files that are located in a directory by using a file mask, e. g. /api/getconfigfile.html?file=config/*.ini. The list is provided as UTF-8 coded plain text. Each filename in the list is followed by CR and LF.
Authentication
Authentication has been enhanced considerably in version 1.33. Previously it only applied to the Web Interface and the API. Now it includes everything delivered by the Web Server, particularly streams. This means, the streaming client must be able to handle authentication, if a password is configured. Furthermore the Web Server generally rejects connections from other (sub)nets or the internet without password, so it must be configured for this purpose. However, the Options → Web Settings allow to decide whether the home network shall be included in this password protection or not, and there are expert tweaks for a more sophisticated handling, if required. Please read more:
Please note that already existing credentials for Web Interface access are now invalid and must be re-entered since the whole user name / password system and the defaults have changed. Please also note that other server instances in the Recording Service (Live and Media Streaming Server, UPnP / RTSP / Sat>IP Server) cannot be password-protected, so their ports must never be exposed to the internet!
In the Options → Web Settings there is a new checkbox “Allow access from internet” that explicitly permits resp. prohibits access from other (sub)nets than the one(s) the Web Server is belonging to. This setting is separately available for the user account (full access rights) and the guest account (read-only access). Please note that permission is only possible if a password has been entered. Access over the internet additionally requires setting up firewall rules and the router accordingly (port forwarding). If access over the internet is prohibited or no password is set, the Web Server immediately rejects such connection attempts.
Options → Web Settings → Password also for LAN/WLAN takes effect if a password is set. The checkbox specifies whether accessing the Web Server locally requires credentials or not. If it is unchecked the Web Server will only ask for user name and password in case of requests from other (sub-)nets resp. the internet (see above). This setting is separately available for the user and guest account.
Web Interface: The input lines for configuring user name and password on the Configuration Page have been removed due to security reasons.
Logging: If authentication is required, the Web Server writes authentication attempts to the file svcusers.log in the configuration folder. It only logs one successful authentication from the same user, IP and user agent per 15 minutes, but every authentication failure!
Expert tweaks: In the file svcuserdata.xml IP addresses or address ranges can be specified as “trusted”, “local” or the opposite, independently from what they really are. Access from trusted client IP addresses never requires a password and grants full rights. Client IP addresses specified as “local” are handled by the Web Server as if belonging to the same (sub)net even if they are assigned to other subnets or the internet. Please use the following template for adding such IP addresses in the file svcuserdata.xml:
<section name="TrustedDevices">
<entry name="TrustedIPs">[IP List]</entry>
<entry name="LocalIPs">[IP List]</entry>
</section>
Replace [IP List] by a single IP address or a list of IP addresses separated by semicolons. It is also possible to specify IP ranges by using CIDR notation or a hyphen for a simple from...to notation, e. g. 192.168.10.4-192.168.10.7 as list item. E. g. if you want to exclude the PC the Recording Service is running on from password protection enter 127.0.0.1 as trusted IP. Besides white-listing the Recording Service also supports black-listing of IP addresses resp. ranges. Prefix a minus sign for specifying IP addresses as “not trusted” (always requiring a password if configured) resp. “not local” (always regarded as belonging to some external net). Example: -192.168.10.8. Please note that these tweaks precede settings in the Recording Service Options and must be applied with care because potentially they can enable or disable Web Server access altogether for everybody!
The tweak “Maximum number of Web Server connections” (→ launch RSTweaker.bat) may serve as additional measure against unauthorized access. It only applies to connections from other (sub-)nets resp. the internet. The default is 100. Lowering the value increases the protection against brute force attacks. However, please note that clients (particular browsers) often try to establish several connections at the same time. So the value should not be lower than 10 per user (!) that wants to access the Recording Service over the internet.
Reverse Proxy Support
A reverse proxy is a kind of additional server in front of the actual server (the Recording Service in our case). It may provide additional capabilities like SSL encryption or firewall-like security measures. Clients only see the reverse proxy. It forwards requests to the actual (but hidden) server. The Recording Service 1.33 provides some facilities for reverse proxy usage:
The tweak “Reverse Proxy IP” (→ launch RSTweaker.bat) enables Reverse Proxy support and specifies the reverse proxy “inside” IP as seen by the Web Server. From its point of view the reverse proxy is the only client. If (and only if) the configured reverse proxy IP matches the IP of a client request the Web Server assumes that reverse proxy is involved and triggers additional measures described below. Typically a Reverse Proxy that is used for private purpose will reside on the same PC as the Recording Service, so its “inside” IP address is simply 127.0.0.1.
Original client address: The reverse proxy must inform the Web Server about the original client IP, which is important for authentication and avoiding streaming limitations (the Web Server only allows a single transcoded stream per client IP and user agent). This means, the reverse proxy must be configured to add a HTTP header containing the original client IP to requests. The Web Server first tries to read the "x-real-ip" header, and if it is not available, the "x-forwarded-for" header. If none of them is available, the Web Server drops reverse proxy support.
Reverse proxy “outside” address: The Web Server needs to know the reverse proxy URL as seen by clients from the outside. This is particularly important for creating correct URLs in exported M3U playlists. The reverse proxy URL that is hiding the Web Server may for example look like
https://myhost/tv. Again the reverse proxy may use headers to inform the Web Server about certain parts of this URL: "x-forwarded-proto", "x-forwarded-host", "x-forwarded-port", "x-forwarded-path". However, if the reverse proxy can't be configured for all that or you don't know how to do it, you may want to use the tweak below:
The tweak “Reverse Proxy URL” (→ launch RSTweaker.bat) specifies the "outside" URL of the reverse proxy as used by clients. This setting only takes effect if reverse proxy support is enabled (see above). It overrides the information provided by the “x-forwarded-xxxx” headers (except “x-forwarded-for”, of course). However, the Web server also accepts a partially specified URL. If parts are missing (protocol, host, port or path, not all may be relevant) the web server reads them from headers added by the reverse proxy, if available, or uses defaults like HTTP for the protocol.
Password handling: If a reverse proxy handles authentication for the Web Server, you may need to declare the whole IPv4 address range (0.0.0.0/0 in CIDR notation) as local or trusted by using the expert tweak described in the authentication section. Otherwise the Web Server will demand a second authentication or reject internet connections altogether.
Caddy: Enabling SSL encryption (“https”) for the Web Server has successfully been tested with Caddy as reverse proxy. Configuring it is quite simple (at least compared to servers like Apache). Maybe you want to give it a try. Please ask in the forum if you need more information.
Recorder
Though the recorder was no main development subjects in version 1.33 there are some fixes and enhancements particularly concerning automatic correction of channel data:
Automatic channel data correction in the recorder does not depend anymore on at least one of the “All Audio Tracks”, “DVB Subtitles” and “Auto-Split” options being switched on. Missing streams are dynamically added to TS recordings in any case if the recorder detects that PIDs in the channel data are wrong. Additionally bugs like the missing check for a wrong teletext PID have been fixed. Please note that streams cannot be dynamically added to ongoing MPG and pure audio (e. g. MP2) recordings. They require a restart resp. the auto-split option for this purpose.
The Recorder considers the “Don't update automatically” flag in the channel data that has been introduced in DVBViewer Pro 5.6. The flag prevents auto-update actions and auto-corrections for the channel in question, including auto-split on channel data change, but still allows dynamically adding subtitle and audio streams to TS recordings if the “Include Subtitles” resp. “Include All Audio Tracks” options are switched on.
Logging: The recorder additionally writes timer properties like intended start time, options and the EPG monitoring mode to the recording log when the recording starts. Furthermore “device removal” events (e. g. due to a defective contact) are logged in the recording log, if an ongoing recording is affected.
Miscellaneous
This section enumerates changes and fixes from various subject areas:
Changed: General: New Icons for the Recording Service, the Options and the Tray Tool.
Changed: Unicast Server: The out-dated Unicast Server is now disabled by default. In most cases existing installations will not be affected.
Removed: Language Files: Scores of unused entries from the files rc_english.lng and rc_deutsch.lng.
Changed: Web Interface: Numeric input fields don't accept invalid characters anymore. They turn red in this case and disable the Save Button on the corresponding page.
Fix: Web Interface: The EPG Search with “Use regular expressions” unchecked failed if the search item contained characters like brackets that have a special meaning in regular expressions. On a search started from the EPG Details window the title as search item was cut off at '&' characters.
Added: EPG Update: The EPG Updater automatically includes the Freesat EPG transponder 11427 H on Astra 28° East (delivering the whole Freesat EPG within 20 seconds), if Options → EPG → Receive Freesat EPG data is switched on and the channel resp. favorites list contains at least one channel from the British Astra 28° East position. It is not necessary anymore to have a channel from the Freesat EPG transponder in the list.
Fix: EPG Update: Issues if “Save” was clicked on the Configuration page (an unintended EPG update started after 5 minutes, a manually started EPG update got stuck at the current transponder) or in case of DVB hardware allocation changes (EPG data from a transponder was not read completely or not at all).
Fix: General: If putting the PC after a recording to sleep mode did not take effect (e. g. because the PC was in away mode) the Recording Service remained in a “partly switched off” state with disabled UPnP server, RTSP server and task execution including recording timers, requiring a restart to become fully functional again.
Removed: Web Options: Checkbox “Use compression for web pages” which turned out to be not necessary anymore. The setting is still available as tweak in the file service.xml (in the WebGeneral section as “Gzip” entry). The default is “on”, which means, textual data like HTML and XML is compressed.
Change: CI Handling: Decryption is now triggered without a valid PMT PID (e.g. for channels that were scanned as inactive), so that it is not necessary anymore to retune with the correct PMT PID. The CI handling only refers to the Service ID for channel recognition and similar tasks, not to the PMT PID anymore.
Added: Hardware Database: Consideration of (known) DVB-C devices requiring the symbol rate to be multiplied by 1000 before it is passed to the driver. “Scan Devices” automatically adds the SRx1000 flag to the hardware settings in this case.
Change: Hardware Options: The server detection in the RTSP Device Settings window only displays one address per server instance. If more than one address is available it displays the more advantageous one, e. g. the IP belonging to the same subnet as the Recording Service, if possible.