SRT and UDP for broadcast delievery

Aaron 2018-12-18 19:34:17 UTC in Nimble Streamer

So here is what I'm doing I have a main server the ingests several SPTS from my Motorola BNC systems for satellite broadcast. I want to send these streams to various locations around the world that my C-Band satellite over North America cannot reach. Specifically my Work flow is as follows UDP IP IN -> Main SRT Delievery Server -> SRT OUT -> internet -> Remote Device SRT In -> Output UDP Multicast streams. Everything in this work flow works great except the last step which is the UDP output. I can watch the UDP output just fine in VLC and TSReader doesn't see any issues with it from what I can tell. However when I in my testing or others at the remote site try to groom this feed into there hardware/software cherry pickers to grooming into there IP video setup for what is I would assume STB delivery they are complaining of a high I assuming PCR Jitter of 100ms +. I'm also having similar issues decoding the UDP streams with a hardware IRD. Also, I have not issue monitor stream on the receiving side using HLS, RTMP, … so I'm confident the stream is making to the end device just fine using SRT.

I have tried various nimble reciever setup specifically both windows an linux and did the various TCP stack tuning but it doesn't seems to help at all. Since this only seems to be an issue with UDP output to hardware decoders. To me the output UDP traffic looks too bursty for what is probably a small input buffer on the IRD to handle but that is just a guess.

If anyone has any ideas on how to get this work, what the issue maybe or has done this succefully I would love to know how you did it.

Max 2018-12-19 04:52:16 UTC 

Hello Aaron,

How did you get that there is high PCR jitter, is it just a guess or you see it in some logs/tool output?

To reduce PCR jitter please try to enable "Mux rate" option on SRT receivers broadcasting stream(s) via UDP (i.e. in UDP streaming options), set "Mux rate" to e.g. 10-20% higher than input stream's bitrate and check if it helps.

Max 2018-12-19 04:52:30 UTC 
Aaron 2019-01-02 22:09:54 UTC 

Just to follow up after lot of trial and error and help for the support folks I did get this setup to work. See details below:

1. Disable Windows Defender on receiving nimble - this was causing all kinds of packet out of order issues, bandwidth spikes, and latency problems.

2. Disabled Windows firewall on the NIC sending out the UDP Multicast stream

3. This one maybe specific to the hardware decoder and the stream I'm sending but I needed to enable the MUX Rate options on the out going UDP streams and set the MUX delay to 4000ms. I think this value has to do with my older h.264 hardware decoders I'm using that are part of my satellite uplink. If I was doing this with one of my MPEG2 video streams I suspect the default 700ms value would work just fine.

4. This last one is probably specific to my IRD I'm using to decode the video but I had to set it's multicast input stream buffer to it's lowest setting of 50ms anything higher and I had issues decoding the stream. This one wasn't very intuitive to figure out. Since I was having problems I was raising the size which didn't help.

Post a reply

Post a new question



nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRwmsauthcacheNimbleffmpegdvrAPIapitranscoderVODstreamingfailoverDASHwmspanelrtmpvodudprtsppaywallsubtitlesRTSPDispersayoutubelivelivestreamingmp4MPEG-DASHWMSAuthpay-per-viewgeodashvideostreamerabrWindowsencryptionUDPhttpswhite labeluser agentconfigsmilFFMPEGmulticastsslaudioMPEG-TSedgeCORSre-streamingchunksraspberry piandroidsldpbandwidthmpeg-dashadvertizercorsvlcDRMrules.confadvertisingipv6FastSpringRAMwms panelthumbnailFMLEVATcrossdomainupdatempegtsRecordingplaylistSMILakamaiaespushserversSRTwowzaSSLerrorm3u8Transcodebalanceplaylist_dvrWowzachromecastconfigurationreportingsrtbugdownloadIDS3nimblestreamerdomainperformancempeg-tsraspianpublish controlcodecWMSPanelmobilerepublishingVidillionHttpsIPloopawschunknimble webcam html5UIRegistration Issuedirect link32-bit Windowstwitchanalysecache_controlitworkmelive abr support mpeg-dashrtmp abrbeirutWWDCdubaideep statshls to multicast udplogIIS Smooth StreamingcloudmediaCDNHTTPSAbrHot-linking protectionHDSvaddioMPEGTSalertsNDIViewer Statsjwplayer websitewhmcsbaselineAuthentication in HLSCentOS v6.4nginx rtmp nimblepricedurationAV BridgelimitOld logsscreencastVaddioPI3 Ubuntuview timeattaching domainswmspanelapiinterfacesWMSCONFIG_HOMEmessageDVRRecordingrestreamcostloadbalancingoriginmetadatamod_rewriteprofileAxisgbpsID3 tagswmsauthsignhighhls restreaminghds hotlinkVideo Playertransocding republishingdecodergentoo install server nimbleAliaslost traffictranscoding using NvidiaPublic IpPaywall Authdocumentationofflineconcurrent-connectionsTrancoderfileipicecast urllebanonlocationmanifestruleMP4 not playedspacehot linkingServer-sidechangetasks-controlamfseekingstoppedplayoutmainPlayReadylimuxamazon web servicedvr streamconnectivityunique visitorondvr stream twicealiasdata slicespay per viewHLS vodAXVVGhot-linkblockanalyticsapplicationpaywalmpeg dashTCO7opensslbrandingtrialMP4microsoft streamerrorsrocksoftlog traffic statsExpression EncoderdebianHLS Playerlive video on demandABR DASHprogressive downloadDASH Playerbandwithmultiple originsFFmpegnimblesessionidserverlog nimble analysertmp playbackvideojsbitrateSnapshotsprivate networkadaptiveAV1 codecJWPLAYERNGINX-RTMPPullno WMSPanellive videomac osx installsoundHLS Meta Tag editing.streamsattachmentsourcecrossdomain more then 1 domain4Kwotermarkhelp errorvimeoconcurrent connectionvod no soundload balancebuttFairplaycdnvsomRemote StorageWowza Agentlive streamnot foundfallbackamazonControl APIWidevinepullTranscoderLive streamingAS3securitympeg2tsServer-Side-Task-Controldisk migrationinstall players setup ready to goDVRSettingstwitch larix broadcaster androidAppleDelete recordsstereo to monoscreen capturedrmicecastresourceaes encryptionsubscriptionvideo looplive pull settingsABR HLS Bitratesstarttime duration seekpointrebootrtmp for YouTubemonitorIIS Media Servicsrtmp republishing transcodenimble.confDeep statsapi accessdvr streamsoutrateinterleavingweb playernimble streamer web server php script pageautomationNimble Streamer APIlivestreamNimble CapacityABR DVR problemnimble streamer vod hls transmuxingloggingscreen freezecan't registercontent-dispositionlearnerheaderactionscript 3Live SwitcherCross Domaininsert logonot to stealLive BroadcastDVRStreamsNimble Serverblock downloadAVCaptureMovieFileOutputUbuntu artful 17.10Transcoder MPEG DASHMPEG DASHadd_chunk failedPost processingfake extensionbroadcastertranscodingFFMPEG;RTMP;I/O errorstatus:errorHotlinking ProtectionStreaming routeMPEG-Dashlarix broadcasterThumbnailsserver incorrect timepremium featureLIVELivenimble on cloudroutesprerollpaymentHow to do live stream with multiple audio tracknimble aliasesProgressiveincoming streamno soundstatsreloadvp9adRTMP republishrmtpno internetSecuredemandlivestreamintransocderAndroiduser_agentdvr on wmspanelS3 AWSreportsraspberryavoid refreshIOSrestartPIDHLS Streamingthumbnail dvr-thumbnailwmsAuthSignnimble streamer mpeg-ts multiple inputsLoad-BalancingDVR SettingPORTlatencycredentialsadjusttranscodeRepublishingHTML5 playerdelaympeg4transcoder nimbleVR-360Failoverhttp servera record21server ipBroadcastLarixbuildABR bitratesPacketizingav1 codecNimble connectionsabr fallbackTeradek Decoderubuntu 18SLDPssaiDVR Setting limitbufferartifactsrtsp push androidcache expiryQuickTimevideo streamingtraffichd25publish streamAArch64buffering videoSO_RCVBUFdissapointmentpay-per-minuteAWSiOSspeedup my videolivestream bitrateUDP Multicastlogo in streamMPEG2 Videonimble dvrfastspringmp2 audioprogressivewebhookdvr to liveCSSdistributionstoragealias route.movoutputcloudflareVOD HLS streaming on public IPdomain lockRTMP RepublishcontentrulesError when installingvideo and audio not matchcloudfrontanalisyssctestorage space availabledisk3.6.1-1qataritworkscdnvideo.jsgoogle cloud storageissuepricing

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.