Forum

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?

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:1.96,
l_545953_105388123_0.ts?nimblesessionid=35707&wmsAuthSign=c2VydmVyX3RpbWU9Ni8xNC8yMDE3IDU6MDk6MzEgUE0maGFzaF92YWx1ZT01RmZlRVNnWjJWOE5jMzNzVUpLb0V3PT0mdmFsaWRtaW51dGVzPTE4MDA=

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 

Hi,
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....

thanks

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

Hi,
you started several similar threads about the same problem.
If you pull from another Nimble origin please follow http://blog.wmspanel.com/2016/10/rtmp-delayed-pull-buffer-improvements.html
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 https://wmspaenl.com/contact 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 http://blog.wmspanel.com/2016/10/rtmp-delayed-pull-buffer-improvements.html 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

Categories:

Tags:

nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRwmsauthcacheNimbleffmpegdvrAPIapitranscoderfailoverVODstreamingDASHwmspanelrtmpvodudprtsppaywallsubtitlesDispersaRTSPyoutubelivelivestreamingmp4MPEG-DASHWMSAuthgeopay-per-viewdashstreamervideoabrWindowsencryptionUDPhttpswhite labelconfiguser agentsmilFFMPEGmulticastsslaudioMPEG-TSedgere-streamingCORSchunksraspberry piandroidsldpbandwidthmpeg-dashadvertizercorsvlcDRMS3rules.confadvertisingipv6FastSpringRAMwms panelthumbnailFMLEVATcrossdomainupdatempegtsRecordingplaylistSMILaespushakamaiserversSRTwowzam3u8TranscodeerrorSSLbalanceplaylist_dvrWowzachromecastconfigurationreportingsrtbugIDdownloadnimblestreamerdomainperformancempeg-tsraspianpublish controlcodecVidillionHttpsloopAWSIPWMSPanelmobilerepublishingawschunknimble 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 nimbledurationpriceAV BridgelimitOld logsVaddioscreencastPI3 Ubuntuview timewmspanelapiattaching domainsinterfacesWMSCONFIG_HOMEmessageDVRRecordingloadbalancingrestreamcostoriginmetadatamod_rewriteprofileAxisgbpsID3 tagswmsauthsignhighhds streamhls restreamingciscolocalVLCresumenibler.net hotlinkVideo Playertransocding republishingdecodergentoo install server nimbleAliaslost traffictranscoding using NvidiaPublic IpPaywall Authdocumentationofflineconcurrent-connectionsTrancoderfilelebanonlocationmanifestipMP4 not playedspaceicecast urlruleServer-sidehot linkingseekingtasks-controlchangeamfstoppedmainplayoutPlayReadylimuxamazon web servicedvr stream twicedvr streamconnectivityunique visitoronAXVVGhot-linkpay per viewaliasdata slicesblockHLS vod7mpeg dashanalyticsapplicationpaywalbrandingTCOtrialopensslMP4microsoft streamerrorsrocksoftlog traffic statsExpression EncoderdebianABR DASHprogressive downloadmultiple originsFFmpegnimblesessionidHLS PlayerDASH Playerlive video on demandbandwithheaderserverlog nimble analysertmp playbackvideojsbitrateadaptiveAV1 codecJWPLAYERNGINX-RTMPprivate networkSnapshotsno WMSPanelPulllive videosourcecrossdomain more then 1 domain4Kmac osx installsoundHLS Meta Tag editing.streamswotermarkattachmenthelp errorvimeoconcurrent connectionvod no soundload balanceAWS 3buttFairplaycdnvsomfallbackamazonControl APIlive streamRemote StorageWowza AgentTranscoderLive streamingWidevinenot foundsecuritypullAS3mpeg2tsServer-Side-Task-Controldisk migrationstereo to monoscreen captureinstall players setup ready to goDVRSettingstwitch larix broadcaster androidAppleDelete recordsicecastdrmresourceaes encryptionsubscriptionvideo looplive pull settingsABR HLS Bitratesrtmp for YouTubestarttime duration seekpointrebootmonitordvr streamsIIS Media Servicsrtmp republishing transcodenimble.confnimble streamer web server php script pageautomationNimble Streamer APIlivestreamoutrateDeep statsapi accessinterleavingweb playerNimble CapacityABR DVR problemnimble streamer vod hls transmuxingloggingLive Switcherlearnerscreen freezecan't registercontent-dispositionCross Domainactionscript 3not to stealLive Broadcastinsert logoDVRStreamsNimble Serverblock downloadAVCaptureMovieFileOutputbroadcasterUbuntu artful 17.10Transcoder MPEG DASHMPEG DASHadd_chunk failedPost processingfake extensiontranscodingFFMPEG;RTMP;I/O errorstatus:errorHotlinking ProtectionStreaming routeMPEG-Dashlarix broadcasternimble on cloudroutesprerollThumbnailsserver incorrect timepremium featureLIVELivepaymentHow to do live stream with multiple audio trackstatsnimble aliasesProgressivereloadRTMP republishrmtpno internetvp9addemandSecureAndroiduser_agentdvr on wmspanelS3 AWSreportsraspberryavoid refreshrestartIOSPIDHLS Streamingthumbnail dvr-thumbnailwmsAuthSignnimble streamer mpeg-ts multiple inputsLoad-BalancingcredentialslatencyDVR SettingPORTtranscodeRepublishingadjustHTML5 playerdelaympeg4transcoder nimbleBroadcastLarixbuildABR bitratesPacketizingVR-360Failoverubuntu 18Teradek DecoderSLDPav1 codechttp servera record21server ipNimble connectionsabr fallbackssaiDVR Setting limitbufferlogo in streamMPEG2 Videolivestream bitrateUDP Multicastprogressivewebhookdvr to livefastspringmp2 audiospeedup my videoiOSdistributionstoragealias route.movnimble dvroutputcloudflareVOD HLS streaming on public IPdomain lockRTMP RepublishcontentanalisysscterulesError when installingvideo and audio not matchcloudfrontbuffering videoSO_RCVBUFdissapointmentpay-per-minuteCSSartifactsrtsp push androidcache expiryQuickTimevideo streamingincoming streamInvalid frame headerno soundtraffichd25publish streamAArch64storage space availabledisk3.6.1-1livestreamintransocderqataritworkscdnvideo.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.