Forum

EXT-X-PLAYLIST-TYPE:VOD

Jesse 2019-09-25 18:41:59 UTC in Nimble Streamer

Hi,
Im looking into adding
#EXT-X-PLAYLIST-TYPE:VOD to the manifest files m3u8 for HLS streaming.
Apple specs seem to require this.

https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/video_on_demand_playlist_construction

I have searched the forums and the documentation but i was unable to find how to add it. Would it be possible to add this?

Thanks in advance for an answer,
Best regards,
Jesse

Alex Pokotilo 2019-09-26 01:58:45 UTC 

#EXT-X-PLAYLIST-TYPE neither required by HLS standard nor Apple.
this is from link you provided:

EXT-X-PLAYLIST-TYPE: Provides mutability information that applies to the entire playlist file. This tag may contain a value of either EVENT or VOD. If the tag is present and has a value of EVENT, the server must not change or delete any part of the playlist file (although it may append lines to it). If the tag is present and has a value of VOD, the playlist file must not change.

As Nimble adds #EXT-X-ENDLIST for mpegts VOD and adding #EXT-X-PLAYLIST-TYPE not required so Nimble doesn't add it to #EXT-X-VERSION:3 mpegts chunklists to not confuse old players and devices.

But it add it for new #EXT-X-VERSION:7 fmp4 vod chunklist.

To access your vod file and get #EXT-X-VERSION:3 playlist with mpegts chunk you open stream with url like
http://127.0.0.1:8081/vod/sample.mp4/playlist.m3u8
This way you will not get #EXT-X-PLAYLIST-TYPE

fmp4 chunks and playlist #EXT-X-VERSION:6 with chunklist #EXT-X-VERSION:7 accessible through
http://127.0.0.1:8081/vod/sample.mp4/playlist_fmp4.m3u8

video chunklist accessible via http://127.0.0.1:8081/vod/sample.mp4/video.m3u8
and starts with

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="video.fmp4?nimblesessionid=10"
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0

and the same for audio chunklist
http://127.0.0.1:8081/vod/sample.mp4/audio.m3u8

So you will not have any issues if you don't have #EXT-X-PLAYLIST-TYPE for old mpegts chunks

Post a reply


Post a new question

Categories:

Tags:

nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRcachewmsauthNimbledvrAPISRTtranscoderffmpegapiVODfailoverrtmpstreamingDASHwmspanelvodudprtsppaywallsubtitlessrtsldpDispersaRTSPyoutubeabrlivelivestreamingmp4WMSAuthMPEG-DASHpay-per-viewgeodashWMSPaneledgevideostreamerWindowsencryptionhttpsUDPuser agentwhite labelconfigsmilFFMPEGsslmulticastMPEG-TSaudioCORSre-streamingmpeg-dashchunksraspberry piandroidbandwidthadvertizercorsvlcS3DRMrules.confplaylistadvertisingipv6MPEGTSFastSpringRAMthumbnailFMLEVATcrossdomainupdateRecordingSMILmpegtsaespushakamaiwowzaserverserrorm3u8TranscodebalanceSSLchromecastplaylist_dvrWowzaconfigurationIDreportingbugperformancedomainnimblestreamerLarixIPrepublishingmpeg-tspublish controlcodecmobileloopHttpsVidillionawsAWSdownloadorigincloudfrontCDNraspianwms panelroutesSLDPchunknimble webcam html5UIbitrateRegistration Issuedirect link32-bit Windowstwitchcache_controlitworkmelive abr support mpeg-dashwmspanelapiresumertmp abrbeirutWWDCdubaideep statsCentOS v6.4hls to multicast udplogcloudIIS Smooth StreamingmediaHot-linking protectionHTTPSAbrHDSvaddioalertsjwplayer websitebaselinewhmcsnginx rtmp nimbleAV BridgeAuthentication in HLSVaddioPI3 Ubuntupriceview timelimitOld logsscte-35screencastinterfacesattaching domainsDVRRecordingloadbalancingmod_rewritemetadataprofileID3 tagsgbpsAxiswmsauthsignhighmessageWMSCONFIG_HOMEhds streamrestreamcostlocalcisco.net hotlinkhls restreaminggentoo install server nimbleVLCPublic Iptranscoding using NvidiaPaywall AuthniblerofflinedocumentationNimble streamer upgradeTrancoderconcurrent-connectionsdecodertransocding republishingVideo PlayerfileAliaslost trafficServer-sidetasks-controllebanonlocationmanifeststoppedNimble Streamer versionmainipMP4 not playedspaceicecast urlruledvr streamconnectivityunique visitorseekinghot linkingchangepay per viewamfplayoutPlayReadyamazon web servicelimuxdvr stream twicedvr_archivesmpeg dashobsTCOhot-linkAXVVGopensslSteam stopped workingonblocknvencHLS vodExpression Encoder7analyticspaywalapplicationbrandingtrialMP4microsoft streamerrorsHLS Playerrocksoftlog traffic statsDASH Playerdebianprogressive downloadABR DASHFFmpegmultiple originsnimblesessionidlive video on demandbandwithscreen freezecan't registerserverheaderprivate networkLarge DVR fileslog nimble analysertmp playbackvideojsno WMSPanellive videointerleavingsourcemac osx installadaptiveAV1 codecSnapshotsNGINX-RTMPJWPLAYERwotermarkvimeohelp errorPullvideo stopload balance4Kcrossdomain more then 1 domainvsomcdnattachmentlive streamvod no soundconcurrent connectionAWS 3buttmpeg2tsDelayServer-Side-Task-Controldisk migrationWidevineFairplayfallbackamazonControl APIscreen capturestereo to monoLive streamingTranscoderRemote StorageWowza Agentsecuritydrmnot foundCPU Loadresourceaes encryptionpullsubscriptionAS3ABR HLS Bitrateslive pull settingsWMSPanel settingsrtmp for YouTubetwitch larix broadcaster androidDVRSettingsinstall players setup ready to goDelete recordsAppleicecastudp streamingoutratevideo loopnimble streamer vod hls transmuxingloggingstarttime duration seekpointrebootdvr streamslearnermonitorautomationnimble streamer web server php script pageNimble Streamer APIlivestreamnimble.confrtmp republishing transcodeIIS Media Servicsinsert logoapi accessDeep statsNimble CapacityABR DVR problemweb playerLive SwitcherAVCaptureMovieFileOutputblock downloadcontent-dispositionnot to stealLive BroadcastPost processingadd_chunk failedfake extensionMPEG DASHUbuntu artful 17.10Transcoder MPEG DASHNimble Serverstatus:errorFFMPEG;RTMP;I/O errortranscodingHotlinking ProtectionStreaming routeRTMP republishlarix broadcasterMPEG-DashPIDbroadcasterOSXpaymentstatsreloadpremium featureThumbnailsserver incorrect timeLiveLIVEdemandHow to do live stream with multiple audio trackProgressivenimble aliasesprogressivermtpno internetHLS Streamingthumbnail dvr-thumbnailLoad-Balancingnimble streamer mpeg-ts multiple inputswmsAuthSignsoundHLS Meta Tag editing.streamsdelaympeg4Secureraspberryavoid refreshreportstranscoder nimbleAndroiduser_agentdvr on wmspanelVideo cant be playedS3 AWSBroadcastcredentialslivestream bitratevbv-maxratetranscodeRepublishingVR-360Failoverpublish streamStream Delaytraffichd25Larix BroadcasterAArch64PacketizingABR bitratesbuildcontentRTMP Republishdomain lockoutputUsers limitcloudflareVOD HLS streaming on public IPincoming streamno soundInvalid frame headerHTML5 playerGopNimbleStreamerav1 codecDVR Setting limitssaibufferrtsp push androidartifactscache expiryvideo streamingQuickTime.movalias routestoragedistributionfastspringmp2 audiodata slicesaliasplayer sldpspeedup my videoiOSqataritworkscdnvideo.jstransocderlivestreaminRAM Loaddiskstorage space available3.6.1-1webhookdvr to livedissapointmentpay-per-minuteSO_RCVBUFbuffering videoadvp9adjustsoftware versionnimble dvrdurationBandwidthgpuPaywallvideo and audio not matchmanage_dvrhow-toError when installingrulesDVRStreamsaws amazonIOSrestartFallbackhelpUDP MulticastMax connectionMPEG2 Videologo in streama recordwirecasthttp serverSSL requestserver ip21compatibility protocolssha265VP9CSSactionscript 3server ssl errordynamic linksTLSV 1.2 Certificateanalisyssctenimble on cloudprerolllatencyscte35ubuntu 18Teradek DecoderViewer StatsNDICross DomainSRT protocolabr fallbackNimble connectionsmd5pricingissuecpugoogle cloud storagePORTDVR SettinganalyseStreamID

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.