Playlist chunks question

Paul 2017-06-14 17:17:04 UTC in WMSPanel functionality

My HLS app is 6 chunks of 6 seconds.

When viewer starts to watch live HLS stream, m3u8 only has 1 file in it, and it always ends with 0.ts,

Why then, doesn't it have 36 seconds worth of playlist?

nginx-rtmp with HLS, m3u8 is in nginx directory and is the same for all users, I guess it updates every ..second / few seconds?

is nimble playlist dynamic for each user?


i ask because it seems the next chunk doesn't start to download for a few second. I want it to download immediately, so users can buffer more stream, in case of their network being slow.

Any way to do this?

Alex Pokotilo 2017-06-15 02:02:55 UTC 

you probably setup "delayed" stream pull settings idle time for the stream. This way stream not loaded all the time but rather start loading just after user request playlist. is source stream for pull is Nimble it will provide enough data to start playback immediately and add enough chunks. If source is rtsp camera thats not always possible to get enough data and this is why you have only one chunk at the beginning. If you want you stream loaded all the time remove idle time from you pull settings. If this answer not enough please contact https://wmspanel.con/help as sensitive details will be required

Paul 2017-06-15 12:27:08 UTC 

Yes I use pull by request, I have 40 streams across many edge servers.

I also had to set rtmp_buffer_items = 4096 because sometimes the stream would not start playing until the user refresh the page.

Any idea how I can find a way to delay playback start for a few seconds and get more than 1 chunk in playlist?

will using a different values for rtmp_buffer_items help? what does 4096 value mean?

Thank you

Paul 2017-06-20 13:00:25 UTC 

any info on my previous reply please?

HLS pull by request always starts quick now, with rtmp_buffer_items, but it starts too quick! lots of small freezes now happen. Would like to get more than 1 chunk in playlist before starting playback....


Alex Pokotilo 2017-06-21 02:29:50 UTC 

you started several similar threads about the same problem.
If you pull from another Nimble origin please follow
If you pull from rtsp camera please add Nimble near to it and setup non-delayed pull and then setup edge->origin delayed pull as stated in the article. If not help start new support thread via as sensitive info will be requested during problem analysis

Paul 2017-06-21 12:40:55 UTC 

I've asked your what does 4096 represent, and you haven't answered.

My threads are different, related - yes, but different - yes.

Paul 2017-06-21 12:46:53 UTC 

This question is about how to delay pull-by-request HLS startup until at least 2 chunks in playlist - something which maybe you guys can change in the way Nimble creates playlist when using pull-by-request.

other topic is about Dash very slow startup.

other topic is about best chunk sizes for people on very slow internet.

3 very different questions.

Now is anybody please going to tell me what 4096 represents and if changing this value would have any effect on startup delay?

Alex Pokotilo 2017-06-22 04:20:23 UTC 

-4096 is item count in frame ring buffer for your stream. if you poll rtsp from camera this parameter will not help you as rtsp doesn't support stream buffering. Please check article title it's about rtmp delayed pull improvements.

"This question is about how to delay pull-by-request HLS startup until at least 2 chunks in playlist - something which maybe you guys can change in the way Nimble creates playlist when using pull-by-request"
There is nothing to change from our team POV. You need to setup your delayed pull as I pointed in previous answer. rtmp has ability to specify requested buffer offset. rtsp doesn't have this ability. This is why if you you setup relayed pull for rtsp you may have a problems till Nimble get necessary buffer to split stream into chunks. This is the same problem that you have for DASH. Just setup two servers. One to pull rtsp streams without delay and one to pull streams using rtmp. This way you get what you want for HLS and DASH.

Or you can use rtmp/sldp for playback.
You will get stream immediately without delay and without chunking issues you refer.

Please read this and previous replies and provided links to articles. In something still not clear check rtmp/rtsp protocol details as you will not get all points if you don't know protocols internals.

Paul 2017-06-27 13:00:23 UTC 

OK thanks for the info.

By the way, I made a big mistake. Apologies for posting about this when I did not have rtmp_buffer_items enabled after I moved to a new origin server :(

Maybe this explains slow dash startup and HLS freezing and stuttering after start.

Hopefully this help someone - check your config, lol.

Post a reply

Post a new question



nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRcachewmsauthNimbleAPIdvrapitranscoderSRTffmpegrtmpVODfailoversrtsldpstreamingDASHwmspanelvodudprtsppaywallsubtitlesDispersavideoRTSPyoutubeabrlivelivestreamingmp4WMSAuthMPEG-DASHgeopay-per-viewbandwidthdashstreamerSLDPedgeWMSPanelWindowsencryptionuser agenthttpsUDPwhite labelconfigsmilsslFFMPEGmulticastMPEG-TSCORSaudiore-streamingmpeg-dashchunksraspberry piandroidperformancecorsadvertizervlcS3DRMrules.confplaylistadvertisingipv6MPEGTSFastSpringRAMthumbnailFMLEVATcrossdomainipupdateSMILRecordingmpegtsaespushakamaiwowzamobileserversPullbalanceerrorTranscodem3u8SSLchromecastWowzaplaylist_dvrconfigurationbugIDreportingdownloadrepublishingdomainnimblestreamerLarixIPmpeg-tsloopVidillionHttpschunkNDIawsAWSorigincloudfrontraspianwms panelroutesCDNpublish controlcodecnimble webcam html5UIbitrateRegistration Issuedirect link32-bit Windowstwitchcache_controlitworkmelive abr support mpeg-dashwmspanelapiresumertmp abrbeirutWWDCdubaideep statsCentOS v6.4hls to multicast udpnooblogWowza AgentRemote StorageIIS Smooth StreamingcloudmediaHot-linking protectionHTTPSAbrHDSvaddioalertsjwplayer websitebaselinewhmcsnginx rtmp nimbleAV BridgeVaddioPI3 Ubuntuview timeAuthentication in HLSpricelimitOld logsscte-35screencastinterfacesDVRRecordingloadbalancingmod_rewritemetadataprofileattaching domainsID3 tagsgbpsAxiscontainerwmsauthsignhighhds hotlinkrestreamcostgentoo install server nimblePublic Iptranscoding using NvidiaPaywall AuthofflinedocumentationNimble streamer upgradehls restreamingTrancoderconcurrent-connectionsfileVLCniblerServer-sidedecodertransocding republishingVideo Playertasks-controlstoppedNimble Streamer versionAliasmainlost trafficlebanonlocationmanifestMP4 not playedspacepay per viewicecast urlruleseekingdvr_archivesmpeg dashhot linkingobsTCOchangeopensslamfnginxPlayReadyamazon web servicelimuxdvr stream twicesdphot-linkAXVVGExpression EncoderonSteam stopped workingblocknvencHLS vod7HLS PlayerbrandingDASH PlayeranalyticspaywalapplicationtrialMP4microsoft streamerrorsrocksoftlog traffic statsdebianscreen freezecan't registerprogressive downloadABR DASHFFmpegmultiple originsnimblesessionidprivate networkLarge DVR fileslive video on demandbandwithno WMSPanelheaderlive videoserverinterleavingmac osx installlog nimble analysertmp playbackvideojswotermarkvimeohelp errorsourceadaptiveAV1 codecload balanceNGINX-RTMPJWPLAYERSnapshotscache expirycdnvsomlive streamvideo stopViewer Stats4Kcrossdomain more then 1 domainstreamscpuDelaympeg2tsattachmentServer-Side-Task-Controldisk migrationscreen capturestereo to monovod no soundconcurrent connectiondvr streamconnectivityUbuntu 20 ARM - AWSunique visitorAWS 3buttdrmresourceaes encryptionsubscriptionfallbackamazonControl APIWidevineTranscoderLive streamingsecurityABR HLS Bitrateslive pull settingsWMSPanel settingsrtmp for YouTubenot foundCPU LoadpullAS3udp streamingoutrateicecastnimble streamer vod hls transmuxingloggingtwitch larix broadcaster androidDVRSettingsinstall players setup ready to goDelete recordsApplelearnerinsert logovideo loopdvr streamsAVCaptureMovieFileOutputblock downloadautomationnimble streamer web server php script pageNimble Streamer APIlivestreamstarttime duration seekpointrebootmonitorNimble CapacityABR DVR problemPost processingadd_chunk failedfake extensionMPEG DASHUbuntu artful 17.10Transcoder MPEG DASHnimble.confrtmp republishing transcodeIIS Media Servicsapi accessDeep statsLive Switcherweb playerstatus:errorFFMPEG;RTMP;I/O errortranscodingnot to stealLive Broadcastcontent-dispositionMPEG-Dashlarix broadcasterNimble ServerpaymentStreaming routeHotlinking ProtectionbroadcasterOSXRTMP republishstatsPIDreloadadvp9contentRTMP RepublishdemandIOSpremium featureserver incorrect timeThumbnailsLiveLIVEHLS StreamingHow to do live stream with multiple audio tracksoundHLS Meta Tag editing.Progressivenimble aliasesdelaympeg4Load-Balancingnimble streamer mpeg-ts multiple inputswmsAuthSignthumbnail dvr-thumbnailrmtpno internettranscoder nimblereportsavoid refreshraspberrySecureJetson Nanopublish streamStream Delaytraffichd25Larix BroadcasterAArch64Androiduser_agentdvr on wmspanelVideo cant be playedS3 AWSBroadcastvbv-maxratetranscodeRepublishingdockerlivestream bitratedomain lockVOD HLS streaming on public IPoutputUsers limitcloudflareVR-360Failoveranalisysscteincoming streamno soundInvalid frame headerPacketizingABR bitratesbuildHTML5 playerGopNimbleStreamerav1 codecfastspringmp2 audioNimble streamerdata slicesaliasplayer sldplatency.movalias routestoragedistributionsoftware versionadjustqataritworkscdnvideo.jsspeedup my videoiOSissuepricinggoogle cloud storagecompatibility protocolsRAM LoadtransocderlivestreaminCSSactionscript 3server ssl errorscte35ubuntu 18Teradek Decoderdiskstorage space available3.6.1-1dissapointmentpay-per-minuteSO_RCVBUFbuffering videogpurestarthelpFallbackcredentialsFairplayincomingmulti-viewerPaywallvideo and audio not matchhow-tomanage_dvrError when installingrulesDVRStreamsaws amazona recordwirecasthttp serverSSL requestserver ip21hotlink protectionultra low latencyVP9sha265broadcast videoprogressivewebhookdvr to livenimble on cloudprerollrtpnimble dvrdurationBandwidthdynamic linksTLSV 1.2 CertificatePORTDVR SettinganalyseStreamIDUDP MulticastMax connectionMPEG2 Videologo in streamDVR Setting limitssaibufferRIST Bondingplayoutvideo audioCross DomainSRT protocolabr fallbackNimble connectionsmd5artifactsrtsp push androidtuningvideo streamingQuickTime

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.