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 streamerABRcachewmsauthNimbleAPItranscoderSRTdvrapirtmpffmpegVODsrtfailoverDASHsldpstreamingrtspwmspanellivevodudppaywallsubtitlesDispersaRTSPvideoSLDPyoutubeabrlivestreamingmp4WMSAuthMPEG-DASHpay-per-viewgeodashstreamerWMSPaneledgebandwidthWindowsencryptionUDPhttpswhite labelconfigsmilmulticastFFMPEGsslMPEG-TSaudioCORSchunksraspberry pire-streamingmpeg-dashperformancecorsadvertizervlcrepublishingS3cloudfrontDRMuser agentandroidNDILarixrules.confplaylistadvertisingipv6MPEGTSFastSpringRAMthumbnailFMLEVATcrossdomainmpegtsSMILRecordingaespushakamaiwowzaserversPullmobilecodecerrorSSLbalanceTranscodem3u8chromecastplaylist_dvrWowzaIDreportingconfigurationbugdownloadpublish controlRepublishingnimblestreamerdomainLarix Broadcastermpeg-tsraspianloopVidillionHttpschunkAWSawsoriginCDNwms panelroutesamazonIPscte35ipupdatenimble webcam html5UIbitrateRegistration Issuedirect link32-bit Windowstwitchcache_controlitworkmelive abr support mpeg-dashwmspanelapiresumertmp abrbeirutWWDCdubaideep statsCentOS v6.4hls to multicast udpnooblogWowza AgentRemote StorageIIS Smooth StreamingcloudmediaAbrHTTPSHot-linking protectionHDSvaddioalertsjwplayer websitewhmcsbaselineAuthentication in HLSPi4nginx rtmp nimbleAV BridgepricelimitOld logsVaddioscte-35screencastPI3 Ubuntuview timeattaching domainscontainerinterfacesDVRRecordingloadbalancingmod_rewritemetadatadatmessageWMSCONFIG_HOMEprofileID3 tagsgbpsAxisrestreamcostwmsauthsignhighhds streamlocalciscohls restreaming.net hotlinkVLCniblergentoo install server nimblePublic Iptranscoding using NvidiaPaywall Authdecodertransocding republishingVideo PlayerofflinedocumentationNimble streamer upgradeTrancoderconcurrent-connectionsAliasfilelost trafficServer-sideicecast urlstoppedNimble Streamer versionrulemainhot linkingchangelebanonlocationmanifestMP4 not playedspaceLarix Groveamfpay per viewseekingdvr_archivesmpeg dashonSteam stopped workingobsTCORaspian BusternginxPlayReadyamazon web servicelimuxopensslHLS voddvr stream twicesdpshoutcasthot-linkAXVVGanalyticspaywalapplicationblocknvencExpression Encoder7brandingtrialHLS PlayerDASH Playerdebianmicrosoft streamMP4errorsrocksoftlog traffic statslive video on demandbandwithservernimblesessionidFFmpegmultiple originsscreen freezecan't registerprogressive downloadABR DASHprivate networkLarge DVR filessourceheaderno WMSPanelSnapshotslive videolog nimble analysertmp playbackinterleavingvideojsmac osx installvideo stopwotermarkadaptiveAV1 codecvimeohelp errorstreamsNGINX-RTMPJWPLAYERload balanceattachmentcache expiryvod no soundconcurrent connectioncdnvsomdvr streamconnectivityUbuntu 20 ARM - AWSunique visitor4Kcrossdomain more then 1 domainlive streamViewer StatscpuWidevineDelaympeg2tsFairplayServer-Side-Task-Controldisk migrationAWS 3buttnot foundCPU Loadscreen capturestereo to monopullAS3drmresourceaes encryptionTranscoderLive streamingsubscriptionsecurityinstall players setup ready to goDVRSettingstwitch larix broadcaster androidAppleDelete recordsABR HLS Bitrateslive pull settingsWMSPanel settingsrtmp for YouTubevideo loopicecastudp streamingoutratestarttime duration seekpointrebootmonitornimble streamer vod hls transmuxinglogginglearnerapi accessDeep statsloadbalancernimble.confrtmp republishing transcodeIIS Media Servicsweb playerinsert logodvr streamsautomationnimble streamer web server php script pageNimble Streamer APIlivestreamcontent-dispositionAVCaptureMovieFileOutputblock downloadNimble CapacityABR DVR problemLive SwitcherPost processingadd_chunk failedfake extensionMPEG DASHUbuntu artful 17.10Transcoder MPEG DASHNimble Servernot to stealLive Broadcaststatus:errorFFMPEG;RTMP;I/O errortranscodingRTMP republishHotlinking ProtectionStreaming routefacebookPIDMPEG-Dashlarix broadcasterbroadcasterOSXpaymentstatsreloadpremium featureserver incorrect timeThumbnailsLiveLIVEadvp9contentRTMP RepublishssaiDVR Setting limitdemandHow to do live stream with multiple audio trackrmtpno internetIOSProgressivenimble aliasesHLS Streamingthumbnail dvr-thumbnailLoad-Balancingnimble streamer mpeg-ts multiple inputswmsAuthSignreportsavoid refreshraspberrysoundHLS Meta Tag editing.transcoder nimbleSecureJetson Nanotranscodevbv-maxratedvr on wmspanelVideo cant be playedS3 AWSuser_agentautomateAndroidVR-360Failoverdockerlivestream bitrateABR bitratesPacketizingbuildpublish streamStream Delaytraffichd25AArch64delaympeg4.movalias routestoragedomain lockVOD HLS streaming on public IPoutputUsers limitcloudflareanalisysscteno soundInvalid frame headerincoming streamHTML5 playerGopwirecasta recordhttp serverNimbleStreamerav1 codecabr fallbackNimble connectionsdistributionfastspringNimble streamermp2 audiodata slicesaliasplayer sldpqataritworkscdnvideo.jsspeedup my videoiOSissuepricinggoogle cloud storagedissapointmentpay-per-minuteRAM LoadlivestreamintransocderPaywallvideo and audio not matchdiskstorage space available3.6.1-1SO_RCVBUFbuffering videocompatibility protocolsMax connectionUDP MulticastgpurestarthelpFallbackError when installinghow-tomanage_dvrrulesDVRStreamsaws amazonserver ip21SSL requestMPEG2 Videologo in streamVP9sha265nimble on cloudprerollDVR SettingPORTanalyseStreamIDcredentialsincomingmulti-viewervideo audioCross DomainSRT protocolmd5nimble dvrrtpdurationBandwidthbufferRIST BondingplayoutControl APIfallbackQuickTimevideo streamingartifactsrtsp push androidtuningactionscript 3server ssl errorCSSRistwebhookdvr to liveprogressivebroadcast videoRTMP to SRTubuntu 18Teradek DecoderlatencyNimble_Crushdynamic linksTLSV 1.2 Certificatefairplayre-publishingSRT RTMPsoftware versionadjustBroadcasthotlink protectionultra low latencyRaspberryPi4Raspberrytasks-control

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.