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 StreamerFAQHLSnimble streamerDVRRTMPhlsABRcacheNimbleSRTsrtrtmpwmsauthdvrAPIapitranscoderffmpegVODfailoverudpDASHsldpstreamingrtspRTSPwmspanellivevodUDPmp4paywallabrsubtitlesDispersaSLDPmulticastvideoyoutubelivestreamingWMSAuthMPEG-DASHpay-per-viewgeoaudiodashstreameredgeWMSPanelbandwidththumbnailWindowsencryptionhttpswhite labelconfigplaylistsmilsslFFMPEGMPEG-TSCORSre-streamingmpeg-dashchunksraspberry pipublish controlperformancecorscloudfrontDRMRepublishingadvertizerrepublishingvlcS3user agentandroidLarixNDIrules.confadvertisingipv6MPEGTSFastSpringRAMFMLEVATcrossdomainSMILmpegtsRecordingaespushakamaiwowzamobileserversPullcodecbalanceerrorTranscodem3u8SSLchromecastplaylist_dvrWowzaconfigurationIDbugreportingdownloadsnapshotLarix BroadcasterAndroidnimblestreamerdomainmpeg-tsloopraspianwms panelchunkAWSVidillionHttpsoriginawsCDNroutesipupdatescte35amazonIPUInimble webcam html5Registration Issuedirect link32-bit Windowstwitchcache_controlitworkmelive abr support mpeg-dashwmspanelapiresumertmp abrbeirutWWDCdubaideep statsCentOS v6.4hls to multicast udpnooblogRemote StorageWowza AgentIIS Smooth StreamingcloudmediaAbrHTTPSHot-linking protectionHDSvaddioalertsjwplayer websitewhmcsbaselinetimelinenginx rtmp nimbledurationAV BridgeVaddioAuthentication in HLSPI3 UbuntuPi4view timepriceresourceNimble Streamer APIlimitOld logsscte-35screencastinterfacesDVRRecordingloadbalancingmod_rewritemetadataattaching domainsprofileAxisgbpsID3 tagscontainerwmsauthsignhighhds streamlocalciscodatmessageWMSCONFIG_HOMErestreamcost.net hotlinkgentoo install server nimblePublic Iptranscoding using NvidiaPaywall Authhls restreamingofflinedocumentationNimble streamer upgradeVLCTrancoderconcurrent-connectionsfileniblerServer-sideVideo Playertransocding republishingdecoderstoppedNimble Streamer versionAliasmainlost trafficlebanonlocationmanifesticecast urlMP4 not playedspacepay per viewrulehot linkingdvr_archivesmpeg dashchangeseekingwildcardobsTCORaspian BusterexportopensslamfLarix GrovenginxPlayReadyamazon web servicelimuxdvr stream twicesdpshoutcastrepublishonSteam stopped workinghot-linkAXVVGExpression EncoderHLS vodblocknvencHLS Playeranalyticspaywalapplication7DASH Playerbrandingtrialmicrosoft streamMP4errorsjpegrocksoftlog traffic statsdebianscreen freezecan't registernimblesessionidFFmpegmultiple originsprivate networkLarge DVR fileslive video on demandABR DASHprogressive downloadbandwithno WMSPanelserverlive videoheaderinterleavingSLDP PLayermac osx installlog nimble analysertmp playbackvideojswotermarksourcevimeohelp errorbitrate#restreamload balanceadaptiveAV1 codecJWPLAYERNGINX-RTMPcache expiryvideo stopcdnvsomlive streamViewer Statsstreams4Kcrossdomain more then 1 domainattachmentDelaympeg2tscpuServer-Side-Task-Controlvod no soundconcurrent connectiondisk migrationdvr streamconnectivityUbuntu 20 ARM - AWSunique visitordvr on wmspanelscreen capturestereo to monobuttAWS 3drmaes encryptionWidevinesubscriptionControl APIFairplayTranscoderLive streamingWMSPanel settingslive pull settingsABR HLS Bitratessecurityrtmp for YouTubenot foundCPU Loadpulladd_chunk failedPost processingfake extensionAS3udp streamingoutrateinstall players setup ready to goDVRSettingstwitch larix broadcaster androidAppleDelete recordsicecastnimble streamer vod hls transmuxinglogginglearnerinsert logovideo loopstarttime duration seekpointrebootAVCaptureMovieFileOutputblock downloadmonitordvr streamsnimble.confrtmp republishing transcodeIIS Media Servicstracknimble streamer web server php script pageautomationlivestreamapi accessDeep statsloadbalancerNimble CapacityABR DVR probleminvalidMPEG DASHUbuntu artful 17.10Transcoder MPEG DASHweb playerLive Switchercontent-dispositionnot to stealLive Broadcaststatus:errortranscodingdownFFMPEG;RTMP;I/O errorNimble ServerMPEG-Dashlarix broadcasterfacebookStreaming routeHotlinking ProtectionRTMP republishbroadcasterOSXpaymentstatsreloadadvp9contentRTMP RepublishdemandssaiDVR Setting limitpremium featureserver incorrect timeThumbnailsIOSLiveLIVErmtpno internetHLS StreamingLoad-Balancingnimble streamer mpeg-ts multiple inputswmsAuthSignHow to do live stream with multiple audio tracksoundHLS Meta Tag editing.Progressivenimble aliasesavoid refreshraspberrythumbnail dvr-thumbnailPaywalltranscoder nimblereportscredentialstranscodevbv-maxrateSecureJetson NanoFailoverVR-360ABR bitratesPacketizingbuildpublish streamStream Delaytraffichd25AArch64S3 AWSVideo cant be playeduser_agentautomatedelaympeg4.movalias routestoragedomain lockVOD HLS streaming on public IPoutputUsers limitcloudflarelivestream bitratedockeranalisysscteInvalid frame headerno soundincoming streamHTML5 playerGopLL-HLS DVRav1 codecNimbleStreamerfastspringNimble streamermp2 audiodata slicesaliasplayer sldpdistributionwirecasta recordhttp serverqataritworkscdnvideo.jsRAM Load*VP9abr fallbackNimble connectionsissuepricinggoogle cloud storagelatencybuffering videoSO_RCVBUFbufferCentos 8dissapointmentpay-per-minutelivestreamintransocderspeedup my videoiOSmultiplexcompatibility protocolsdiskstorage space available3.6.1-1server ip21SSL requestMax connectionUDP Multicastsha265md5multi-viewerincomingDVR SettingPORTanalyseStreamIDnimble dvrrtpBandwidthportsrulesError when installinghow-tomanage_dvrDVRStreamsaws amazonRIST BondingplayoutMPEG2 Videologo in streammultiple audio udphotlink protectionRaspberryPi4ultra low latencynimble on cloudrtmp sldp nimbleprerollwebhookdvr to liveprogressivebroadcast videoQuickTimevideo streamingartifactsrtsp push androidtuningCross DomainSRT protocolvideo audio4GwebrtcNimble_CrushTeradek Decoderubuntu 18restarthelpFallbackPIDurlLinuxRTMP to SRTTLSV 1.2 Certificatedynamic linksSnapshotsfallbackthumbnailsLarix broadcastervideo and audio not matchdvbNetworkBroadcastRaspberrytasks-control{stream}gpuactionscript 3server ssl errorCSSRistmultiplefairplayNginxOBSadjustsoftware versionSRT RTMPre-publishingmultiple audio

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.