george 0 Posted October 26, 2014 Share Posted October 26, 2014 Hi Krustyreturns I have read almost all your posts about the serverwmc and the Is it possible to write a detailed post about the settings you have in the config.xml? I know the most of the people might not care about these settings but in my case I am trying to fine tune the setup I have. It would be nice if you explain the settings, their values that they get, their impact to Media browser, and your experience you have gotten all this time that you develop the serverwmc. I hope it is not too much for you. Now specifically to my problem as I have described on my previous posts my MB works pretty ok but I am having some minor issues. First I watch tv from the web and while it is ok the stream stops for half second. (it is not bandwidth problem and all logs seems to be ok). I was playing around with the Timeout_WaitForTS_MS (increased it to 30000) and Delay_WT2TS (increased it to 2000) and it seems these freezes happen not that often (again i have not eliminated the problem). Can you explain me those two settings ? Also I am starting the serverwmc as service and when I click the ServerWMC icon it says that it can not get connected to the service which I assume that I am starting a second servermc and the ports conflicts each other. Is there a way to delete the service from the windows registry and to be starting the serverwmc as program? Thanks Link to comment Share on other sites More sharing options...
krustyreturns 191 Posted October 26, 2014 Share Posted October 26, 2014 (edited) Sorry man, that is too much for me . I will be happy to help anyone who wants to document it in detail (and I will publish it), but I don't want to do it myself. Below I have posted the part of my c# code where these fields are defined and their corresponding (very brief) comments. That will give you at least a hint as to what they do. If you have questions about certain ones then ask. The param Timeout_WaitForTS_MS sets how long swmc will wait for the ts file (the file being streamed to MBS) before it issues a timeout and gives up on the list stream, so setting it bigger does not make swmc build up any more buffered data (if that's your goal). The field Delay_WTV2TS_MS sets a an optional delay from when the tuner is set to a channel and when swmc starts generating the ts file - this one does do some buffering but not actually the data being streamed, this field is more useful for debugging, I doubt it will improve performance. If your goal is to build up more stream data before MBS starts transcoding try increasing BufferDelayLiveMS. This will make swmc buffer more ts data before it returns control to MBS (remember the setting is in milliseconds). There are other things to look at that might be causing your pauses though. Like network or disk i/o or cpu load. As for the service stuff, stop the running swmc service. Then change to this param: <RunAsService>false</RunAsService> save the config.xml and restart swmc. config field definitions flow: public string sepG = "------------------------- General --------------------------------------"; public bool isAutoStart = false; // if true, start this app when windows starts public bool isMinToSystemTray = true; // if true, minimize to system tray public bool StartupMinimized = false; // if true, start up minimized public bool IsCloseToSysTray = false; // if true, the window closebox just minimizes the serverwindow to the systray public bool RunAsService = false; // whether ServerWMC will run as service, causing the UI to not host a _worker object public bool isNetworked = true; // if true, networked clients can connect public int ListenPort = 9080; // the port to use for socket IPC public string LastLocalRecFolder = ""; // the last value the recTV was set to (for checking if folder changes) public string NetworkRecFolder = ""; // the shared folder containing the WMC rec tv files public bool UseCredentialsInNetworkPath = false; // if true, credentials are to be appended to network path public string Credentials_Lgn = ""; // credentials login public string Credentials_Pwd = ""; // credentials pwd (stored encrypted, use SettingsTemp to access) public int MaintenanceTimerPeriodMIN = 8; // period of maintenance timer callbacks in minutes public int ClientInactiveIntervalMIN = 10; // purge clients have have been inactive for this amount of minutes public bool IsDisablingSleepWhenClientsActive = true; // if true, this server system is not allowed to sleep when clients are active public bool IsDisablingSleepForMB3Client = false; // if true, disable sleep mode if only client is MB3 public bool IsShowingRecTVErrorDialogAtStartup = true; // if true, user will see error/warnings about the recorded tv folder public bool IsShowingRecTVErrorDialogAtTab = true; // if true, user will see error/warnings when 'Folders' tab is selected public int ClientClockDriftThresholdMins = 5; // if difference between client and server clock are larger than this, a warning is set public bool ClientClockDriftSendMessage = true; // whether to send a notification to XBMC when clock drift is detected public bool HandleDuplicateClientNames = true; // whether to assign unique aliases "clientname2" "clientname3" etc when duplicate clients connect public string MACAddressOverride = ""; // send this MAC address to clients for WakeOnLan (if blank, 1st connected ethernet interface is used) public bool UseLocalPathsByDefault = true; // if true, local paths are used when client is on the same machine as server public bool UseIPAddressAsRemoteClientName = false; // if true, IP addresss are always used for remote client names public bool CreateUserImageFolders = true; // if true, create user defined image folders in image cache public string sepLg = "------------------------- Logging --------------------------------------"; public int LogDaysToKeep = 7; // delete log files older than this many days public string LogRequestNone = "GetServiceStatus,StreamFileSize,SignalStatus"; // request types that shouldnt be logged to the trace log public string LogRequestFull = ""; // request types that should be logged in full (all others will be logged as header only) public bool LogAllRequestFull = false; // if true, logs every request in full (except those set to None) public string sepU = "------------------------- Updates --------------------------------------"; public bool Updates_CheckForUpdates = true; // if true, will automatically check for updates once per day public int Updates_CheckForUpdateStartHour = 2; // hour of the day to perform daily check for updates public int Updates_CheckForUpdateTimesPerDay = 2; // number of times per day to perform check for updates public int Updates_CheckForUpdateRescheduleMins = 120; // if AutoCheck/Apply fails, reschedule a scan in this many minutes time public bool Updates_AllowUnsignedUpdates = false; // Updates are normally signature verified, if true this ignores signature errors public bool Updates_AutoApplyUpdates = false; // if true, will automatically apply updates when found (doesnt work well when UAC is enabled) public string Updates_UpdateXMLURL = VERSION.AutoUpdateXMLURL; // The URL to the update XML file public string Updates_LauncherProcAuto = "msiexec.exe"; // Update process, when applying automatically, supports parameter [updateFile] public string Updates_LauncherArgsAuto = "/i \"[updateFile]\" /quiet AUTO_UPDATE=1"; // Arguments for update process, when applying automatically, supports parameter [updateFile] public bool Updates_LauncherWaitAuto = false; // if true, code waits for process to complete, otherwise the process is fired asynchronously public string Updates_LauncherProcManual = "msiexec.exe"; // Update process, when applying manually, supports parameter [updateFile] public string Updates_LauncherArgsManual = "/i \"[updateFile]\" /passive AUTO_UPDATE=1"; // Arguments for update process, when applying manually, supports parameter [updateFile] public bool Updates_LauncherWaitManual = false; // if true, code waits for process to complete, otherwise the process is fired asynchronously public string NewVersionInfoUrl = VERSION.AutoUpdateChangeLogDefault; // the location of the newest change log retrieved from autoupdate.xml public string sepD = "------------------------- Display --------------------------------------"; public bool AddSeriesTimerString = true; // if true, add a string to timer title for series public bool isSeriesTimerPrefix = true; // if true, timer string is a suffix public string SeriesTimerString = "series:"; // set to the suffix/prefix to use for series timer names public bool useRepeatStringInDescription = true; // if true, append repeat string in description public string RepeatDescriptionString = " (repeat)"; // if true, append repeat string for descriptions fields public bool useEpisodeInTitleString = false; // if true, append episode to series title public string EpisodeInTitleString = " - "; // attach episode to title with this string public bool useRepeatInTitleString = true; // if true, append 'repeat' string in title public string RepeatInTitleString = " ®"; // string to indicate repeat in title public bool HideContentProtectedRec = true; // if true, hide content protected recordings from being shown public string ChannelDisplayFormatString = Config.DEFAULT_CHNL_FORMAT; // the string to use for channel formating public bool useEncryptedChannelString = true; // if true, append a string to encrypted channel display public string EncryptedChannelString = "-e"; // string to append to channel display if it is encrypted public bool useDRMChannelString = true; // if true, append a string to drm'd channels public string DRMChannelString = "-drm"; // string to append to channel display if it has any copy protection public bool UseHierarchicalRecordings = true; // use hierachical recordings list public bool GroupRecMovies = true; // if true, group movies into their own directory public string RecMoviesDirName = "Movies"; // the name of the directory to group movies under public bool UseCurrentRecordingDir = true; // if true group active recordings in their own dir public string CurrentRecordDirName = "* Recording now"; // the name of the currently recording dir public bool GroupRecSports = false; // if true, group sports into their own directory public string RecSportsDirName = "Sports"; // the name of the directory to group sports under public bool Sports_EpisodeInTitle = true; // if true, append episode title to main title for sports (both rec & epg) public bool IsIgnoringRecordingImages = false; // if true, ignore recording images url public bool IsIgnoringEpgImages = false; // if true, ignore epg images url public bool UseImageList = true; // if true, keep a list of image urls read from the guid public bool IsAppendingEpisodeCount = true; // if true, append episode count to series directory name public string AppendEpisodeCountFormat = " ({0})"; // the format to use for appending episode count public bool AutoRefreshTunerStatus = true; // if true, automatically requests TunerStatus refreshes whenever recording/streaming events occur public bool ForceStaleClientsToRefresh = true; // if true, clients that were running prior to ServerWMC startup will be triggered to refresh recordings/timers/channels public bool ForceStaleClientsToRefreshEPG = true; // if true, clients that were running prior to ServerWMC startup will be triggered to refresh EPG for all channels valid for that client public string sepC = "------------------------- Channels --------------------------------------"; public bool HideEncryptedChannel = false; // if true, hide content protected recordings from being shown public bool HideAllDRMChannels = true; // if true, hide any channel that show copy protection public bool HideNullSpaceChannels = false; // if true, hide channels with a null tuning space public bool HideOutOfRangeChannels = true; // if true, out-of-range channels are ignored public long ChannelOutOfRangeMAX = 9000; // channels above this number are considered 'OutOfRange' public bool TreatRadioChannelsAsTV = false; // if true, radio channels will be sent as TV channels (as well as radio channels) public string ForcedRadioChannels = ""; // comma separated list of channel numbers to be treated as radio channels public bool UseServiceName = false; // use the channel service name instead of the callsign public bool SortChannelsByNumber = true; // if false, sort channel by call sign public bool UseWMCChannelIcons = true; // if true, import wmc channel icons if false, ignore them public bool HideAllChannels = false; // if true all channels are hidden public string HideChannelGroups = ""; // comma separated list of channel group names to hide from clients public bool DisplayChannelsWithNoDataInGuide = true; // if true, channels with no EPG data are displayed in guide public string NoGuideDataAvailableStr = "No guide data available"; // the string to display in EPG if no guide data is available public bool LogChannelsWithNoEntries = true; // if true, channels without Epg data are logged public bool EnableFMRadioImport = true; // if true, radio fm stations (presets) are imported from registry & config public RadioPreset[] RadioPresets; // inputed presets set in config file, format <Name, Frequency> public string sepL = "------------------------- LiveTV --------------------------------------"; public bool isDeletingTempStreamFiles = true; // by default, delete temp stream files public int Delay_WTV2TS_MS = 0; // the delay between the start of wtv and the start of the remux (liveTV only) public bool IsStreamingWTV = false; // if true, stream wtv directly, else stream TS public int Timeout_WaitForTS_MS = 10000; // the timeout delay to wait for a ts file to start growing public long RemuxParseMinHeadersForAudio = 500; // minimum headers before checking if audio streams are loaded public long RemuxParseMaxHeadersForAudio = 2000; // maximum headers before discarding any additional unidentified audio streams public long RemuxParseMinHeadersRadioForAudio = 10; // RADIO channels minimum headers before evaluating descriptor pass exit conditions public long RemuxParseMaxHeadersRadioForAudio = 250; // RADIO channels maximum headers before exiting descriptor pass public bool AnalyzePacketsForDescriptors = true; // analyze data packets to determine any descriptors public bool UseHeadersForAudioFileExt = true; // just use header info to determine stream file extension public bool UseHeadersForVideoFileExt = true; // just use header info to determine stream file extension public ThreadPriority RemuxThreadPriority = ThreadPriority.AboveNormal; // set remux thread priority public bool RemuxOnlyOneLanguage = false; // if true, specified languages (comma separated) will be muxed to ts output (if its there) public string RemuxOutputLanguage = "eng"; // the language name to remux public bool RemuxIncludeHearingImpaired = false; // if false, any audio streams flagged as hearing impaired will not be remuxed public string RemuxCustomFolderUNC = ""; // specify a custom UNC folder for containing ts stream files public double LiveTVMaxTime = 0.0; // the max number of hours a stream can be on for (default 0 means no end time) public bool RemoveTruncatedStreams = true; // remove any 'truncated' streams found public bool IsFlagAllTruncatedStreams = true; // flag any live tv guid blocks that are too short (len<0) as Tuncated public bool UseAsyncRecorder = true; // use pvr async wrapper for COM recorder public bool EachRemuxClientGetsOwnTS = true; // if true, each remux client gets its own ts stream file public bool OnlyCopyFreeTuner = false; // if true, only tuners with CP of copy_free are used for LiveTV public bool OnlyNoDetectedDRMTuners = false; // if true, only tuners with DRM detection fails || copy_free are used for livetv public bool RemuxCaptionsCC = false; // if true, include Closed Captions in remuxed streams public bool RemuxCaptionsTT = false; // if true, include TeleText captions in remuxed streams public bool RemuxCaptionsDVB = false; // if true, include DVB captions in remuxed streams public bool CheckChannelAvailability = true; // if true, call ChannelAvailable to see if stream is generating data public bool CheckHDHRRemoteBusyState = true; // if true, check busy status of hdhr tuners by machines other than the swmc machine public bool IsUsingHDHRChannelLineUpOnly = false; // if true, filter out any channels that aren't in HDHR channel lineup public string HDHRConfigToolLocation = ""; // if not empty, use this full path to find 'hdhomerun_config.exe' (use SettingsTemp.HDHRConfigToolPath to access) public int Decoy_LiveStreamProtectLevel = 1; // 0=>no protection, 1=>OnDemand Decoys, 2=>Fixed Decoys per stream public int Decoy_FixedDecoysPerLiveStream = 1; // the number of decoys to try and obtain per stream in fixedPerStream mode public int Decoy_CheckIntervalSec = 30; // the frequency of OnDemand decoy creation checking public int Decoy_CheckOverlapSec = 5; // the overlap used in OnDemand decoy creation checking public int Decoy_ShortLivedDecoySec = 50; // duration until a "shortlived" decoy expires public bool UseDLNAChannels_MBS = false; // if true, send back dlna channel addresses for live streams to MBS public string sepR = "------------------------- Record --------------------------------------"; public bool UseRecLibraryWatcher = true; // use wmc's recording lib watcher to update recording file changes public short PrePaddingServer = 5; // server set pre padding amount (minutes) public short PostPaddingServer = 10; // server set post padding amount (minutes) public bool RequirePrePadding = false; // if true, pre-padding is a requirement public bool RequirePostPadding = false; // if true, post-padding is a requirement public bool UseSportsPadding = false; // if true, use custom padding for sports events public short PreSportsPadding = 5; // sports events pre padding amount (minutes) public short PostSportsPadding = 120; // sports events post padding amount (minutes) public PaddingSource PaddingType = 0; // source to use for default padding, 0=>wmcPadding, 1=>xbmcPadding, 2=>serverPadding public int InstantRecordEndIncrease_Mn = 15; // minutes to increase the instantrecord endTime by (for repeat butt press) public double MinInstantRecTime_Mn = 2; // the minimum record time of an instantrecord (must be less than an hour) public bool UseMetaDataForRecordings = false; // if true, GetRecordings can try to read params from metadata public bool UseTimerRequestedTimes = false; // if true, use 'requested' (padding included) start/end times in timers public string ManualRecordFileHeader = "Channel "; // the start of a file name for a manual recording public string sepP = "------------------------- PlayBack --------------------------------------"; public bool IsPrimeViewTimeEnabled = false; // if true, prime viewing time is enabled public double PrimeViewTimeStart = 6.0; // the prime viewing start time in hours (default 6AM) Range: 0 to <24 public double PrimeViewTimeEnd = 23.0; // the prime viewing end time in hours (default 11PM) Range: PrimeViewTimeStart to <PrimeViewTimeStart + 24 public bool RemuxActiveRecordings = true; // if true, active recordings are remuxed to 'ts' format for streaming public bool UseDurationHeader = true; // if true, for act Rec, clients will be passed a ts header with duration timing public bool IsRemuxToRecordingEnd = true; // keep remuxing an active recording until the recording ends public int BufferDelayActiveRecMS = 0; // let wtv/ts buffer for this amount of ms before playback starts public int BufferDelayLiveMS = 0; // let wtv/ts buffer for this amount of ms before playback starts public bool DecodeCaptionsToSRT = false; // if true decode captions to SRT file (if possible) public string sepDB = "------------------------- Debug --------------------------------------"; public bool Debug_RemuxAllRecordings = false; // force the remuxing of all recordings public bool Debug_RequestAllRecordings = false; // force all recordings to be requested public bool Debug_TempWTVfromRemuxCrash = true; // if true, same wtv files that cause remux crashes public bool Debug_OutputHeaders = false; // if true, outputs a debug statement for every header in the WTV file indicating it's type public bool Debug_LogChannelIconErrors = false; // if true, log all icon related errors public bool Debug_ChannelDetail = false; // if true, log each transferred channel's detail public bool Debug_AllChannelDetail = false; // if true, log detail of EVERY channel found (overrides Debug_ChannelDetail) public bool Debug_CheckSeriesIds = false; // if true, series Ids are checked against timers public bool Debug_LogRecordingsWithoutRequests = false; // if true, any recordings found that don't have a request are logged public bool Debug_LogRecordingStatusChanges = false; // log information when recordings change status public bool Debug_LogSleepMode = false; // if true, log sleep mode calls public bool Debug_LogGuideImageDetail = false; // if true log detail about all guide images found public bool Debug_LogDRMWarnings = true; // if true, log warnings when CP is probedpublic bool Debug_LogShareFolderDetail; public bool Debug_LogShareFolderDetail = false; // if true, log all the detail of shared folders public bool Debug_ListTunerClients = false; // if true, log tuner client owners when tuner is flagged as 'Busy' at live-tv start public bool Debug_LogGetRecordings = false; // if true, log more detail on GetRecordings command public bool Debug_SkipFileCreationCheck = false; // if true, skip file creation time check in GetRecordings public bool Debug_ListTunerUsagePerChannel = false; // if true, list tuner priority list and usage in log public bool Debug_DecoyMessages = false; // if true, logs debug messages in DecoyManager class public bool Debug_DecodeCaptionsToDumpFile = false; // if true, create a dump file with raw caption data (debug) public bool Debug_RemuxAllStreams = false; // if true, ignore all stream filters and remux all stream found Edited October 26, 2014 by krustyreturns 1 Link to comment Share on other sites More sharing options...
george 0 Posted October 26, 2014 Author Share Posted October 26, 2014 ok thanks krustyreturns. I will execute your suggestions and lets keep this post sticky and gather all settings in one post instead of being scatter Thanks Link to comment Share on other sites More sharing options...
tp546 39 Posted June 24, 2015 Share Posted June 24, 2015 Is there a way to remove channels from my list or hide all SD channels? the data takes forever to load on any device i use and going through the list of the first 700+ channels that i never use is tedious Link to comment Share on other sites More sharing options...
JeremyFr79 228 Posted June 25, 2015 Share Posted June 25, 2015 @@tp546, that is handled by media center, you have to go in under settings, then tv, then guide, and you can edit the guide list as to what channels are shown and what are not, this is global though so it will effect media center and any clients,extenders,and smc. Link to comment Share on other sites More sharing options...
krustyreturns 191 Posted June 25, 2015 Share Posted June 25, 2015 Another option is to create a channel group in wmc (called channel favorites) and have mediabrowser just import this group rather than all your channels. Link to comment Share on other sites More sharing options...
Deihmos 147 Posted August 13, 2015 Share Posted August 13, 2015 I selected hide drm and hide encrypted channels but it does nothing. All of the channels tagged as copyonce still show up in the list. Is there no way to filter out these channels without doing it manually? Link to comment Share on other sites More sharing options...
krustyreturns 191 Posted August 14, 2015 Share Posted August 14, 2015 That's weird. Can you post your serverwmc log? Link to comment Share on other sites More sharing options...
Deihmos 147 Posted August 16, 2015 Share Posted August 16, 2015 (edited) That's weird. Can you post your serverwmc log?Here is the log. This never worked. I didn't think it could work.ServerWMC.log Edited August 16, 2015 by Deihmos Link to comment Share on other sites More sharing options...
krustyreturns 191 Posted August 17, 2015 Share Posted August 17, 2015 I'm confused, according to your log, no copy-once channels were found. See this part of the log: 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Total LineUps: 1, Total channels imported: 50 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Channels found in database: 715 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Ignored Channels> Blocked in WMC: 659, User hidden: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Strange Channels> Null space: 1, Out-of-range(ignored): 6 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Radio Channels> TV(audio-only): 0, Presets: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> RadioPresets> Registry: 0, Config: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Protected Channels> encrypted: 0 DRM: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Edited Channels> Callsigns: 0, Numbers: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Channel Groups> Found: 1 2015/08/15 22:04:04.800 GetLineUpsAndChannels> Ignored Channel Groups> Blocked in WMC: 0, Empty groups: 0 2015/08/15 22:04:04.800 GetLineUpsAndChannels> done There is one channel that is marked copy_invalid because it has no tuning space, its this one: 2015/08/15 22:04:18.121 GetChannels> DRM channel found: Drama/702 drm: PROT_COPY_INVALID What channels are the ones marked as copy_once? and why do you think that? Link to comment Share on other sites More sharing options...
Deihmos 147 Posted August 17, 2015 Share Posted August 17, 2015 (edited) @@krustyreturns I have several channels that are copyonce. For example all the movie channels from 811 - 826 are copy once except 817. I know they are copyonce because they are indicated as copyonce on the hdhomerun and kodi cannot play them. Edited August 17, 2015 by Deihmos Link to comment Share on other sites More sharing options...
krustyreturns 191 Posted August 17, 2015 Share Posted August 17, 2015 Well we are at least homing in on the problem. Can you send me this file: C:\ProgramData\Silicondust\HDHomeRun\CableCARD.xml ? Link to comment Share on other sites More sharing options...
Deihmos 147 Posted August 17, 2015 Share Posted August 17, 2015 @@krustyreturns This file has nothing in it CableCARD.xml Link to comment Share on other sites More sharing options...
Deihmos 147 Posted August 17, 2015 Share Posted August 17, 2015 It turns out I need to run a channel scan in the hdhomerun setup for the list to generate. I am not sure why because the hdhomerun app has all the channels that I subscribe to listed and correctly marked as copyonce. It is now working and the copyonce channels are excluded. Thanks. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now