Streaming

RSS for tag

Deep dive into the technical specifications that influence seamless playback for streaming services, including bitrates, codecs, and caching mechanisms.

Streaming Documentation

Posts under Streaming subtopic

Post

Replies

Boosts

Views

Activity

Problem with webkitneedkey
Hello!Well, I am trying to get the apple fairplay demo working for safari.My manifest#EXT-X-SESSION-KEY:METHOD=AES-128,URI="XXXXXXXXX"#EXT-X-STREAM-INF:BANDWIDTH=53000,CODECS="mp4a.40.5"hls-audio=49152.m3u8And I have a method waiting for the event webkitneedkey but it is not being called. video.addEventListener('webkitneedkey', onneedkey, false);Why? What is the problem?
2
0
2.2k
Oct ’21
Bug? Playback fails on iOS v15 Beta + Safari + FairPlay Streaming
Playbacking FPS content on iOS v15 Beta + Safari fails even if key request succeeds. I've used Shaka player and other HTML5 players which ends in the same result. Although, when trying it on AVPlayer, playback succeeds so I guess there is some problem in Safari or somewhere. Is it a bug and will it be fixed before release? By the way iOS v14 + Safari + FPS works with no problem.
3
0
2.1k
Oct ’21
How to satisfy 192 kbit/s variant requirement for video?
Apple's HLS Authoring Requirements states "Primary playlists that are delivered over cellular networks MUST contain a variant whose peak BANDWIDTH is less than or equal to 192 kbit/s" Note the lowest available bitrate in Compressor is 300 kbps. I realize the one way to achieve a 192 kbps target is to use an audio-only track, but how are folks meeting this requirement for HLS applications which require video?
1
0
1.1k
Nov ’21
How is the AVPlayer observedBitrate calculated?
What determines the value of the observedBitrate reported on the AVPlayerItemAccessLogEvent? When I experience a stall, can I determine whether it was due to network conditions by checking that the observedBitrate is higher than the media bitrate, or will it not be updated by that point? The docs describe the property as The empirical throughput, in bits per second, across all media downloaded. and the WWDC 2018 talk Measuring and Optimizing HLS Performance says An observed bitrate is the current network bandwidth. To me, the indication here is that it represents the download speed in bits/sec of recent segments. However, this doesn't seem to be reflected in my testing. When limiting my connection throughput with the network link conditioner, I notice that it tends to take about 30 seconds for the observed bitrate to drop. When I disable the network completely, the observedBitrate doesn't change for a minute, then drops straight to 0. In addition to those observations, I've also seen cases where the reported observedBitrate is lower than the bitrate required to support the stream yet I didn't experience buffering, like when it was reporting around 87Kbps while I know the encoded media was ~97Kbps. All of this said, it's not clear to me what this value represents. Is it an average over a certain period of time? What is actually being calculated and over what time period?
0
0
1.1k
Nov ’21
LL-HLS preload hint issue
Im a developer for Low-Latency HLS protocol. I found some doubts when reading contents about preload hint/blocking. Suppose that a media segment of 2 seconds long is divided into 10 partial segments, which means that each part segment is 0.2 second long. At the point the last part segment is completed, how should I provide a preload hint? Should I give a preload hint for 11-th part, although it will never generate? or first part for next media segment? How should I write a rate index file when facing this situation? https://developer.apple.com/documentation/http_live_streaming/enabling_low-latency_hls
0
0
709
Nov ’21
LL-HLS PART-HOLD-BACK tag doesnot take effect
Hi, Im trying to use ios15.0 client to play LL-HLS media stream. I provide a media playlist to the player but find it seems that PART-HOLD-BACK tag, mentioned in LL-HLS, failes to task effect. In other words, the player fails to follow PART-HOLD-BACK's behavior mentioned in LL-HLS documentation when playing the media. Anyone can help me check whether there needs some change to my media playlist? Or there is something stubborn in LL-HLS protocol itself, lol. #EXT-X-TARGETDURATION:2 #EXT-X-VERSION:9 #EXT-X-SERVER-CONTROL:CAN-BLOCK-RELOAD=YES,PART-HOLD-BACK=0.640 #EXT-X-MAP:URI="audio_sample.m4i" #EXT-X-PART-INF:PART-TARGET=0.213 #EXT-X-MEDIA-SEQUENCE:818343598 #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:19:56.330Z #EXTINF:2.005, audio_sample-147301847669700-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:19:58.335Z #EXTINF:2.005, audio_sample-147301847850180-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:00.340Z #EXTINF:2.005, audio_sample-147301848030660-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.064,URI="audio_sample-147301848211140-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:02.346Z #EXTINF:1.984, audio_sample-147301848211140-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.085,URI="audio_sample-147301848389700-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:04.330Z #EXTINF:2.005, audio_sample-147301848389700-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.085,URI="audio_sample-147301848570180-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:06.335Z #EXTINF:2.005, audio_sample-147301848570180-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848750660-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848750660-part_1.m4a?",INDEPENDENT=YES #EXT-X-PRELOAD-HINT:TYPE=PART,URI="audio_sample-147301848750660-part_2.m4a?"
2
0
948
Nov ’21
iOS 15: AVPlayer stays on lowest quality HLS Stream
Is anyone encountering an issue where their HLS files are no longer working with iOS 15 AVPlayer? We are seeing the player stay on the lowest quality variant (that is the lowest bit rate HLS option) for about a minute before changing to the highest quality, despite being on a great network connection throughout. This is reproducible on an isolated project with nothing but the the AVPLayer loading a m3u8 URL. We have not been able to find anything about AVPlayer that changed or would cause this in iOS 15. Are we missing anything? Also - We have been trying to locate an HLS example for audio that also passes the Apple HLS validator - does anyone know where that can be found? We did not have luck with the examples on Apple's developer site as they are out of date with the validator it seems like. We thought that maybe there's an issue with our HLS streams despite them working before sub iOS 15. But it's tough to find a good example of anything that passes the validator. Any input would be awesome, thank you!
1
0
1.3k
Nov ’21
Fiarplay - I can't play DRM protected HLS contents
I am encoding CMAF contents and when I try to stream a DRM'd video on Safari, nothing happens and I don't even have an error code. It is working without any problem on Chrome (widevine). Our partners can stream the content on their side but we can't, on Macbook or iPhone... We have tested CMAF on the following iOS versions on various device types (phones and tablets): .3 .1 .1 .1 • 14 • 14.3 It was working without any problem. We had an issue on: Macbook pro M1 - Big Sur 11.3.1 Safari Version 14.1 (16611.1.21.161.6) iPhone 12.- iOS 14.5.1 Iphone 12. - iOS 14.4.2 Macbook Air Intel 2020 - Big Sur 11.2.3 Sometimes, it is working when I reload the page ... I don't know what happens...
1
0
1.6k
Nov ’21
rewind through EXT-X-DISCONTINUITY
I have recorded content in which there is an EXT-X-DISCONTINUITY flag (an error occurred while recording content), the time points of the beginning of the content look like this: Start Time : 10005, dur 5s EXT-X-DISCONTINUITY Start Time : 100, dur 5s Start Time : 105, dur 5s I did not find in rfc8216 whether such content is valid at all, and should the player even rewind time through this flag without errors?
0
0
456
Dec ’21
Lightweight RTSP lib on iOS
idk why there isn't built in lib for watch RTSP stream on iOS of apple framework list, even though rtsp is popular. Can i built my own with swift,? have any tutorial for this purpose, i did try many framework like VLCMobileKit,.. it work but I can't understand why it so many enomous files and account for 400mb to 1.7gb for installed pod and have so many bug i cannot fix when usage (so hard to maintain). Can you suggest for me how to built my own with swift. As my knowledge our camera only support for RTSP so I'm not using HTTP Live Stream, it is true? can I use HTTP Live Streaming for this purpose.
0
0
887
Dec ’21
Prioritize codec in a multi codecs m3u8 manifest or lowest bandwidth at equal resolution
Hi guys, I would like to know if there is a way to prioritize a codec (H265) in a multi codecs (H264 and H265) manifest? or lowest BANDWIDTH at the same RESOLUTION Today, it's easy to write multiple variants with different BANDWIDTH, CODEC and RESOLUTION values. But H264 Bandwidths are by construction higher than the H265 ones. Imagine you have multiple variants, that I write here sorted by bandwidth ascending #EXT-X-STREAM-INF:BANDWIDTH=280000,CODECS="mp4a.40.2,hvc1.2.4.L90.90",RESOLUTION=864x467 #EXT-X-STREAM-INF:BANDWIDTH=450000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=512x276 #EXT-X-STREAM-INF:BANDWIDTH=809000,CODECS="mp4a.40.2,hvc1.2.4.L93.90",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=874000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=640x345 #EXT-X-STREAM-INF:BANDWIDTH=1263000,CODECS="mp4a.40.2,hvc1.2.4.L93.90",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=1404000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=864x467 #EXT-X-STREAM-INF:BANDWIDTH=2607000,CODECS="mp4a.40.2,hvc1.2.4.L120.90",RESOLUTION=1920x1037 #EXT-X-STREAM-INF:BANDWIDTH=2782000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1024x553 #EXT-X-STREAM-INF:BANDWIDTH=4902000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=5962000,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1037 Current situation : We see that some players start from the lowest bandwidth and then switch until reaching the highest bandwidth they can. Some use the highest BANDWIDTH=5962000. Note that for the same resolution, you have one variant in H265 with BANDWIDTH=2607000 Expected behaviour : If the device/player supports H265, use H265 with the highest priority or At equal resolutions, use the lowest BANDWIDTH (which will be H265 here) Do you have any suggestions to reach the expected behaviour? Thanks Edouard
0
0
621
Dec ’21
Web Audio Context getOutputTimestamp
I'm having difficulties with AudioContext.getOutputTimestamp on Apple devices, which i use for synchronizing animation data to Audio. the difference between Audio Context current time and getOutputTimestamp context time, ie a measure of Audio processing to speaker output latency, which can differ, depending on device. Since the original getOutputTimestamp introduction, I have not been able to use the output timestamp in Safari, but could use it in Chrome on Apple devices. However, since upgrading to iOS 15.1 getOutputTimestamp is giving contextTime values that is approx /10,000 smaller than Audio context current time, when they are supposed to be in the same units as audio context currentTime See the following modification of example from Web Audio examples which illustrates the problems with AudioContext.getOutputTimestamp on Apple devices getOutputTimestamp() reference Any help in understanding why I'm seeing such big differences here on Apple devices would be much appreciated. <!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">     <meta name="viewport" content="width=device-width">     <title>Output timestamp example</title>   </head>   <body>     <h1>Output timestamp example</h1>     <button class="play">Play</button>     <button class="stop">Stop</button>     <pre></pre>   </body> <script> // define variables let audioCtx; let source; let songLength; let rAF; const pre = document.querySelector('pre'); const myScript = document.querySelector('script'); const play = document.querySelector('.play'); const stop = document.querySelector('.stop'); // use XHR to load an audio track, and // decodeAudioData to decode it and stick it in a buffer. // Then we put the buffer into the source function getData() {   source = audioCtx.createBufferSource();   fetch('https://mdn.github.io/webaudio-examples/output-timestamp/outfoxing.mp3')   .then(response => response.arrayBuffer())   .then(buffer => {     let audioData = buffer;     audioCtx.decodeAudioData(audioData, function(buffer) {       myBuffer = buffer;       songLength = buffer.duration;       source.buffer = myBuffer;       source.connect(audioCtx.destination);       source.loop = true;     },     function(e) {       "Error with decoding audio data" + e.error     });   }) } // wire up buttons to stop and play audio, and range slider control play.addEventListener('click', () => {   if(!audioCtx) {     audioCtx = new window.AudioContext();   }   getData();   source.start(0);   play.setAttribute('disabled', 'disabled');   rAF = requestAnimationFrame(outputTimestamps); }); stop.addEventListener('click', () => {   source.stop(0);   play.removeAttribute('disabled');   cancelAnimationFrame(rAF); }); // function to output timestamps function outputTimestamps() {   let ts = audioCtx.getOutputTimestamp()   console.log('audioCtx.currentTime: ' + audioCtx.currentTime.toFixed(3) ,   '\t Context time: ' +ts.contextTime.toFixed(3),   '\tDifference: ' + (audioCtx.currentTime - ts.contextTime).toFixed(3));   rAF = requestAnimationFrame(outputTimestamps); } // dump script to pre element pre.innerHTML = myScript.innerHTML;   </script> </html> Typical MacOS and iOS console outputs, Safari and Chrome audioCtx.currentTime: 28.865 Context time: 0.001 Difference: 28.865 audioCtx.currentTime: 28.883 Context time: 0.001 Difference: 28.882 Typical expected outputs for desktop and Android Browsers, and iOS Chrome prior the 15.1 Safari upgrade, audioCtx.currentTime: 28.021 Context time: 27.979 Difference: 0.042 audioCtx.currentTime: 28.040 Context time: 27.999 Difference: 0.041
1
0
1k
Dec ’21
How to implement Trick Play in a custom AVPlayer?
Hi. We have a custom player and would like to implement trick play(show preview thumbnail of the content as user scrubs on the slider). Stream format is .m3u8 and the manifest does have "EXT-X-I-FRAME-STREAM-INF" tag mentioned in specification. But we are clueless about how to utilise it and show thumbnail above the slider. Looking forward to the help. Thank you.
0
0
1.3k
Dec ’21
.m3u8 hls media can't be played offline after download
Hello, I have some Videos that I can play with AVPlayer but I can't Download and Play offline from my device. When I download the asset and play the asset one time then I can play offline the asset as it would have been downloaded.I use the code from apple's recommended project https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/using_avfoundation_to_play_and_persist_http_live_streamsBy replacing in apples project the link with my own link I experience the same result. Also in my project the other .m3u8 video that I am trying to download work fine. The main difference is that in my link URL Signing is being used.Also in apples project the video can be played but not downloaded and play.Example Link to test my download is: https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4The video does not have any encryption so that's not the issue, but it might be downloading over HTTPS.When I download the Container From Devices for my app I see that I have downloaded the myVideo.movpkg file and inside that Folder I have the root.xml file, the Data folder, the boot.xml file, and only 2 folders with fragment data (In some videos only 1 folder). When I play the downloaded video with Internet connection more folders with fragments are being downloaded. And if I download all the fragment folders then the video can be played offline normally.root.xml file&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;MoviePackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://apple.com/IMG/Schemas/MoviePackage" xsi:schemaLocation="http://apple.com/IMG/Schemas/MoviePackage /System/Library/Schemas/MoviePackage.xsd"&gt; &lt;Version&gt;1.0&lt;/Version&gt; &lt;MoviePackageType&gt;HLS&lt;/MoviePackageType&gt; &lt;BootImage&gt;boot.xml&lt;/BootImage&gt; &lt;/MoviePackage&gt;boot.xml file &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;HLSMoviePackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://apple.com/IMG/Schemas/HLSMoviePackage" xsi:schemaLocation="http://apple.com/IMG/Schemas/HLSMoviePackage /System/Library/Schemas/HLSMoviePackage.xsd"&gt; &lt;Version&gt;1.0&lt;/Version&gt; &lt;HLSMoviePackageType&gt;PersistedStore&lt;/HLSMoviePackageType&gt; &lt;Streams&gt;&lt;Stream ID="0-ROFVRWFPBCMNXKILE7FOE4O3PNGGD2HZ-454000" Path="0-ROFVRWFPBCMNXKILE7FOE4O3PNGGD2HZ-454000" NetworkURL="https://gr-ampelokipoi-prod-cache01.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4"&gt;&lt;Complete&gt;YES&lt;/Complete&gt;&lt;/Stream&gt;&lt;Stream ID="0-IZ4BCCN2TMQXA2S47ILRQOD5IPNLNK5R-454000" Path="0-IZ4BCCN2TMQXA2S47ILRQOD5IPNLNK5R-454000" NetworkURL="https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4"&gt;&lt;Complete&gt;NO&lt;/Complete&gt;&lt;/Stream&gt;&lt;/Streams&gt; &lt;MasterPlaylist&gt;&lt;NetworkURL&gt;https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4&lt;/NetworkURL&gt;&lt;/MasterPlaylist&gt;&lt;DataItems Directory="Data"&gt;&lt;DataItem&gt;&lt;ID&gt;65E586E6-53C7-4750-A5B7-55416C783867&lt;/ID&gt;&lt;Category&gt;Playlist&lt;/Category&gt;&lt;Name&gt;master.m3u8&lt;/Name&gt;&lt;DataPath&gt;Playlist-master.m3u8-65E586E6-53C7-4750-A5B7-55416C783867.data&lt;/DataPath&gt;&lt;Role&gt;Master&lt;/Role&gt;&lt;/DataItem&gt;&lt;/DataItems&gt;&lt;/HLSMoviePackage&gt;Inside Data folder Playlist-master.m3u8-65...67.data file#EXTM3U #EXT-X-VERSION:1 ## Created with Unified Streaming Platform (version=1.10.12-18737) # variants #EXT-X-STREAM-INF:BANDWIDTH=454000,CODECS="mp4a.40.2,avc1.77.30",RESOLUTION=424x240,FRAME-RATE=25 403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=878000,CODECS="mp4a.40.2,avc1.77.30",RESOLUTION=640x360,FRAME-RATE=25 403201605073-audio_eng=128000-video=700000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=1726000,CODECS="mp4a.40.2,avc1.77.31",RESOLUTION=1024x576,FRAME-RATE=25 403201605073-audio_eng=128000-video=1500000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=3952000,CODECS="mp4a.40.2,avc1.77.31",RESOLUTION=1280x720,FRAME-RATE=25 403201605073-audio_eng=128000-video=3600000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=7026000,CODECS="mp4a.40.2,avc1.77.40",RESOLUTION=1920x1080,FRAME-RATE=25 403201605073-audio_eng=128000-video=6500000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 # variants #EXT-X-STREAM-INF:BANDWIDTH=136000,CODECS="mp4a.40.2" 403201605073-audio_eng=128000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4My question is what's wrong, is it a client issue or something must change from back-end?
2
0
3.3k
Dec ’21
On iOS 15.2 live streams do not start
On iOS 15.2 when playing live stream content AVPlayerItem.status reports AVPlayerItemStatusUnknown but it does NOT report AVPlayerItemStatusReadyToPlay or AVPlayerItemStatusFailed. It remains in buffering state somehow. It is not a network/connection issue because it works fine on older versions of iOS. It also works fine on other type of content, it only happens on live streams like 90% of time.
0
0
489
Dec ’21
IOS 15 Safari fails with Fairplay DRM playback
Hi, IOS 15 Safari does not support Fairplay DRM and gives an error, other browsers like Chrome also do not work. Since IOS 15 released today, we as DRM providers are having a lot of complaints from our customers. The issue does not happen on IOS app, only for IOS browser. We have seen the same issue across multiple DRM providers, so issue is at the end of Apple and only occurs for IOS 15.
18
0
16k
Jan ’22
Problem with webkitneedkey
Hello!Well, I am trying to get the apple fairplay demo working for safari.My manifest#EXT-X-SESSION-KEY:METHOD=AES-128,URI="XXXXXXXXX"#EXT-X-STREAM-INF:BANDWIDTH=53000,CODECS="mp4a.40.5"hls-audio=49152.m3u8And I have a method waiting for the event webkitneedkey but it is not being called. video.addEventListener('webkitneedkey', onneedkey, false);Why? What is the problem?
Replies
2
Boosts
0
Views
2.2k
Activity
Oct ’21
Bug? Playback fails on iOS v15 Beta + Safari + FairPlay Streaming
Playbacking FPS content on iOS v15 Beta + Safari fails even if key request succeeds. I've used Shaka player and other HTML5 players which ends in the same result. Although, when trying it on AVPlayer, playback succeeds so I guess there is some problem in Safari or somewhere. Is it a bug and will it be fixed before release? By the way iOS v14 + Safari + FPS works with no problem.
Replies
3
Boosts
0
Views
2.1k
Activity
Oct ’21
How to satisfy 192 kbit/s variant requirement for video?
Apple's HLS Authoring Requirements states "Primary playlists that are delivered over cellular networks MUST contain a variant whose peak BANDWIDTH is less than or equal to 192 kbit/s" Note the lowest available bitrate in Compressor is 300 kbps. I realize the one way to achieve a 192 kbps target is to use an audio-only track, but how are folks meeting this requirement for HLS applications which require video?
Replies
1
Boosts
0
Views
1.1k
Activity
Nov ’21
How is the AVPlayer observedBitrate calculated?
What determines the value of the observedBitrate reported on the AVPlayerItemAccessLogEvent? When I experience a stall, can I determine whether it was due to network conditions by checking that the observedBitrate is higher than the media bitrate, or will it not be updated by that point? The docs describe the property as The empirical throughput, in bits per second, across all media downloaded. and the WWDC 2018 talk Measuring and Optimizing HLS Performance says An observed bitrate is the current network bandwidth. To me, the indication here is that it represents the download speed in bits/sec of recent segments. However, this doesn't seem to be reflected in my testing. When limiting my connection throughput with the network link conditioner, I notice that it tends to take about 30 seconds for the observed bitrate to drop. When I disable the network completely, the observedBitrate doesn't change for a minute, then drops straight to 0. In addition to those observations, I've also seen cases where the reported observedBitrate is lower than the bitrate required to support the stream yet I didn't experience buffering, like when it was reporting around 87Kbps while I know the encoded media was ~97Kbps. All of this said, it's not clear to me what this value represents. Is it an average over a certain period of time? What is actually being calculated and over what time period?
Replies
0
Boosts
0
Views
1.1k
Activity
Nov ’21
LL-HLS preload hint issue
Im a developer for Low-Latency HLS protocol. I found some doubts when reading contents about preload hint/blocking. Suppose that a media segment of 2 seconds long is divided into 10 partial segments, which means that each part segment is 0.2 second long. At the point the last part segment is completed, how should I provide a preload hint? Should I give a preload hint for 11-th part, although it will never generate? or first part for next media segment? How should I write a rate index file when facing this situation? https://developer.apple.com/documentation/http_live_streaming/enabling_low-latency_hls
Replies
0
Boosts
0
Views
709
Activity
Nov ’21
LL-HLS PART-HOLD-BACK tag doesnot take effect
Hi, Im trying to use ios15.0 client to play LL-HLS media stream. I provide a media playlist to the player but find it seems that PART-HOLD-BACK tag, mentioned in LL-HLS, failes to task effect. In other words, the player fails to follow PART-HOLD-BACK's behavior mentioned in LL-HLS documentation when playing the media. Anyone can help me check whether there needs some change to my media playlist? Or there is something stubborn in LL-HLS protocol itself, lol. #EXT-X-TARGETDURATION:2 #EXT-X-VERSION:9 #EXT-X-SERVER-CONTROL:CAN-BLOCK-RELOAD=YES,PART-HOLD-BACK=0.640 #EXT-X-MAP:URI="audio_sample.m4i" #EXT-X-PART-INF:PART-TARGET=0.213 #EXT-X-MEDIA-SEQUENCE:818343598 #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:19:56.330Z #EXTINF:2.005, audio_sample-147301847669700-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:19:58.335Z #EXTINF:2.005, audio_sample-147301847850180-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:00.340Z #EXTINF:2.005, audio_sample-147301848030660-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848211140-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.064,URI="audio_sample-147301848211140-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:02.346Z #EXTINF:1.984, audio_sample-147301848211140-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848389700-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.085,URI="audio_sample-147301848389700-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:04.330Z #EXTINF:2.005, audio_sample-147301848389700-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_1.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_2.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_3.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_4.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_5.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_6.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_7.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848570180-part_8.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.085,URI="audio_sample-147301848570180-part_9.m4a?",INDEPENDENT=YES #EXT-X-PROGRAM-DATE-TIME:2021-11-12T03:20:06.335Z #EXTINF:2.005, audio_sample-147301848570180-PolicyMode_llhls9_2_cmaf-0.m4a? #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848750660-part_0.m4a?",INDEPENDENT=YES #EXT-X-PART:DURATION=0.213,URI="audio_sample-147301848750660-part_1.m4a?",INDEPENDENT=YES #EXT-X-PRELOAD-HINT:TYPE=PART,URI="audio_sample-147301848750660-part_2.m4a?"
Replies
2
Boosts
0
Views
948
Activity
Nov ’21
iOS 15: AVPlayer stays on lowest quality HLS Stream
Is anyone encountering an issue where their HLS files are no longer working with iOS 15 AVPlayer? We are seeing the player stay on the lowest quality variant (that is the lowest bit rate HLS option) for about a minute before changing to the highest quality, despite being on a great network connection throughout. This is reproducible on an isolated project with nothing but the the AVPLayer loading a m3u8 URL. We have not been able to find anything about AVPlayer that changed or would cause this in iOS 15. Are we missing anything? Also - We have been trying to locate an HLS example for audio that also passes the Apple HLS validator - does anyone know where that can be found? We did not have luck with the examples on Apple's developer site as they are out of date with the validator it seems like. We thought that maybe there's an issue with our HLS streams despite them working before sub iOS 15. But it's tough to find a good example of anything that passes the validator. Any input would be awesome, thank you!
Replies
1
Boosts
0
Views
1.3k
Activity
Nov ’21
Fiarplay - I can't play DRM protected HLS contents
I am encoding CMAF contents and when I try to stream a DRM'd video on Safari, nothing happens and I don't even have an error code. It is working without any problem on Chrome (widevine). Our partners can stream the content on their side but we can't, on Macbook or iPhone... We have tested CMAF on the following iOS versions on various device types (phones and tablets): .3 .1 .1 .1 • 14 • 14.3 It was working without any problem. We had an issue on: Macbook pro M1 - Big Sur 11.3.1 Safari Version 14.1 (16611.1.21.161.6) iPhone 12.- iOS 14.5.1 Iphone 12. - iOS 14.4.2 Macbook Air Intel 2020 - Big Sur 11.2.3 Sometimes, it is working when I reload the page ... I don't know what happens...
Replies
1
Boosts
0
Views
1.6k
Activity
Nov ’21
rewind through EXT-X-DISCONTINUITY
I have recorded content in which there is an EXT-X-DISCONTINUITY flag (an error occurred while recording content), the time points of the beginning of the content look like this: Start Time : 10005, dur 5s EXT-X-DISCONTINUITY Start Time : 100, dur 5s Start Time : 105, dur 5s I did not find in rfc8216 whether such content is valid at all, and should the player even rewind time through this flag without errors?
Replies
0
Boosts
0
Views
456
Activity
Dec ’21
Lightweight RTSP lib on iOS
idk why there isn't built in lib for watch RTSP stream on iOS of apple framework list, even though rtsp is popular. Can i built my own with swift,? have any tutorial for this purpose, i did try many framework like VLCMobileKit,.. it work but I can't understand why it so many enomous files and account for 400mb to 1.7gb for installed pod and have so many bug i cannot fix when usage (so hard to maintain). Can you suggest for me how to built my own with swift. As my knowledge our camera only support for RTSP so I'm not using HTTP Live Stream, it is true? can I use HTTP Live Streaming for this purpose.
Replies
0
Boosts
0
Views
887
Activity
Dec ’21
Prioritize codec in a multi codecs m3u8 manifest or lowest bandwidth at equal resolution
Hi guys, I would like to know if there is a way to prioritize a codec (H265) in a multi codecs (H264 and H265) manifest? or lowest BANDWIDTH at the same RESOLUTION Today, it's easy to write multiple variants with different BANDWIDTH, CODEC and RESOLUTION values. But H264 Bandwidths are by construction higher than the H265 ones. Imagine you have multiple variants, that I write here sorted by bandwidth ascending #EXT-X-STREAM-INF:BANDWIDTH=280000,CODECS="mp4a.40.2,hvc1.2.4.L90.90",RESOLUTION=864x467 #EXT-X-STREAM-INF:BANDWIDTH=450000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=512x276 #EXT-X-STREAM-INF:BANDWIDTH=809000,CODECS="mp4a.40.2,hvc1.2.4.L93.90",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=874000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=640x345 #EXT-X-STREAM-INF:BANDWIDTH=1263000,CODECS="mp4a.40.2,hvc1.2.4.L93.90",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=1404000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=864x467 #EXT-X-STREAM-INF:BANDWIDTH=2607000,CODECS="mp4a.40.2,hvc1.2.4.L120.90",RESOLUTION=1920x1037 #EXT-X-STREAM-INF:BANDWIDTH=2782000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1024x553 #EXT-X-STREAM-INF:BANDWIDTH=4902000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1280x691 #EXT-X-STREAM-INF:BANDWIDTH=5962000,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1037 Current situation : We see that some players start from the lowest bandwidth and then switch until reaching the highest bandwidth they can. Some use the highest BANDWIDTH=5962000. Note that for the same resolution, you have one variant in H265 with BANDWIDTH=2607000 Expected behaviour : If the device/player supports H265, use H265 with the highest priority or At equal resolutions, use the lowest BANDWIDTH (which will be H265 here) Do you have any suggestions to reach the expected behaviour? Thanks Edouard
Replies
0
Boosts
0
Views
621
Activity
Dec ’21
Web Audio Context getOutputTimestamp
I'm having difficulties with AudioContext.getOutputTimestamp on Apple devices, which i use for synchronizing animation data to Audio. the difference between Audio Context current time and getOutputTimestamp context time, ie a measure of Audio processing to speaker output latency, which can differ, depending on device. Since the original getOutputTimestamp introduction, I have not been able to use the output timestamp in Safari, but could use it in Chrome on Apple devices. However, since upgrading to iOS 15.1 getOutputTimestamp is giving contextTime values that is approx /10,000 smaller than Audio context current time, when they are supposed to be in the same units as audio context currentTime See the following modification of example from Web Audio examples which illustrates the problems with AudioContext.getOutputTimestamp on Apple devices getOutputTimestamp() reference Any help in understanding why I'm seeing such big differences here on Apple devices would be much appreciated. <!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">     <meta name="viewport" content="width=device-width">     <title>Output timestamp example</title>   </head>   <body>     <h1>Output timestamp example</h1>     <button class="play">Play</button>     <button class="stop">Stop</button>     <pre></pre>   </body> <script> // define variables let audioCtx; let source; let songLength; let rAF; const pre = document.querySelector('pre'); const myScript = document.querySelector('script'); const play = document.querySelector('.play'); const stop = document.querySelector('.stop'); // use XHR to load an audio track, and // decodeAudioData to decode it and stick it in a buffer. // Then we put the buffer into the source function getData() {   source = audioCtx.createBufferSource();   fetch('https://mdn.github.io/webaudio-examples/output-timestamp/outfoxing.mp3')   .then(response => response.arrayBuffer())   .then(buffer => {     let audioData = buffer;     audioCtx.decodeAudioData(audioData, function(buffer) {       myBuffer = buffer;       songLength = buffer.duration;       source.buffer = myBuffer;       source.connect(audioCtx.destination);       source.loop = true;     },     function(e) {       "Error with decoding audio data" + e.error     });   }) } // wire up buttons to stop and play audio, and range slider control play.addEventListener('click', () => {   if(!audioCtx) {     audioCtx = new window.AudioContext();   }   getData();   source.start(0);   play.setAttribute('disabled', 'disabled');   rAF = requestAnimationFrame(outputTimestamps); }); stop.addEventListener('click', () => {   source.stop(0);   play.removeAttribute('disabled');   cancelAnimationFrame(rAF); }); // function to output timestamps function outputTimestamps() {   let ts = audioCtx.getOutputTimestamp()   console.log('audioCtx.currentTime: ' + audioCtx.currentTime.toFixed(3) ,   '\t Context time: ' +ts.contextTime.toFixed(3),   '\tDifference: ' + (audioCtx.currentTime - ts.contextTime).toFixed(3));   rAF = requestAnimationFrame(outputTimestamps); } // dump script to pre element pre.innerHTML = myScript.innerHTML;   </script> </html> Typical MacOS and iOS console outputs, Safari and Chrome audioCtx.currentTime: 28.865 Context time: 0.001 Difference: 28.865 audioCtx.currentTime: 28.883 Context time: 0.001 Difference: 28.882 Typical expected outputs for desktop and Android Browsers, and iOS Chrome prior the 15.1 Safari upgrade, audioCtx.currentTime: 28.021 Context time: 27.979 Difference: 0.042 audioCtx.currentTime: 28.040 Context time: 27.999 Difference: 0.041
Replies
1
Boosts
0
Views
1k
Activity
Dec ’21
How to implement Trick Play in a custom AVPlayer?
Hi. We have a custom player and would like to implement trick play(show preview thumbnail of the content as user scrubs on the slider). Stream format is .m3u8 and the manifest does have "EXT-X-I-FRAME-STREAM-INF" tag mentioned in specification. But we are clueless about how to utilise it and show thumbnail above the slider. Looking forward to the help. Thank you.
Replies
0
Boosts
0
Views
1.3k
Activity
Dec ’21
.m3u8 hls media can't be played offline after download
Hello, I have some Videos that I can play with AVPlayer but I can't Download and Play offline from my device. When I download the asset and play the asset one time then I can play offline the asset as it would have been downloaded.I use the code from apple's recommended project https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/using_avfoundation_to_play_and_persist_http_live_streamsBy replacing in apples project the link with my own link I experience the same result. Also in my project the other .m3u8 video that I am trying to download work fine. The main difference is that in my link URL Signing is being used.Also in apples project the video can be played but not downloaded and play.Example Link to test my download is: https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4The video does not have any encryption so that's not the issue, but it might be downloading over HTTPS.When I download the Container From Devices for my app I see that I have downloaded the myVideo.movpkg file and inside that Folder I have the root.xml file, the Data folder, the boot.xml file, and only 2 folders with fragment data (In some videos only 1 folder). When I play the downloaded video with Internet connection more folders with fragments are being downloaded. And if I download all the fragment folders then the video can be played offline normally.root.xml file&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;MoviePackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://apple.com/IMG/Schemas/MoviePackage" xsi:schemaLocation="http://apple.com/IMG/Schemas/MoviePackage /System/Library/Schemas/MoviePackage.xsd"&gt; &lt;Version&gt;1.0&lt;/Version&gt; &lt;MoviePackageType&gt;HLS&lt;/MoviePackageType&gt; &lt;BootImage&gt;boot.xml&lt;/BootImage&gt; &lt;/MoviePackage&gt;boot.xml file &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;HLSMoviePackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://apple.com/IMG/Schemas/HLSMoviePackage" xsi:schemaLocation="http://apple.com/IMG/Schemas/HLSMoviePackage /System/Library/Schemas/HLSMoviePackage.xsd"&gt; &lt;Version&gt;1.0&lt;/Version&gt; &lt;HLSMoviePackageType&gt;PersistedStore&lt;/HLSMoviePackageType&gt; &lt;Streams&gt;&lt;Stream ID="0-ROFVRWFPBCMNXKILE7FOE4O3PNGGD2HZ-454000" Path="0-ROFVRWFPBCMNXKILE7FOE4O3PNGGD2HZ-454000" NetworkURL="https://gr-ampelokipoi-prod-cache01.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4"&gt;&lt;Complete&gt;YES&lt;/Complete&gt;&lt;/Stream&gt;&lt;Stream ID="0-IZ4BCCN2TMQXA2S47ILRQOD5IPNLNK5R-454000" Path="0-IZ4BCCN2TMQXA2S47ILRQOD5IPNLNK5R-454000" NetworkURL="https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4"&gt;&lt;Complete&gt;NO&lt;/Complete&gt;&lt;/Stream&gt;&lt;/Streams&gt; &lt;MasterPlaylist&gt;&lt;NetworkURL&gt;https://tr.vod.cdn.cosmotetvott.gr/v1/524/16/403201605073/403201605073.ism/.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4&lt;/NetworkURL&gt;&lt;/MasterPlaylist&gt;&lt;DataItems Directory="Data"&gt;&lt;DataItem&gt;&lt;ID&gt;65E586E6-53C7-4750-A5B7-55416C783867&lt;/ID&gt;&lt;Category&gt;Playlist&lt;/Category&gt;&lt;Name&gt;master.m3u8&lt;/Name&gt;&lt;DataPath&gt;Playlist-master.m3u8-65E586E6-53C7-4750-A5B7-55416C783867.data&lt;/DataPath&gt;&lt;Role&gt;Master&lt;/Role&gt;&lt;/DataItem&gt;&lt;/DataItems&gt;&lt;/HLSMoviePackage&gt;Inside Data folder Playlist-master.m3u8-65...67.data file#EXTM3U #EXT-X-VERSION:1 ## Created with Unified Streaming Platform (version=1.10.12-18737) # variants #EXT-X-STREAM-INF:BANDWIDTH=454000,CODECS="mp4a.40.2,avc1.77.30",RESOLUTION=424x240,FRAME-RATE=25 403201605073-audio_eng=128000-video=300000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=878000,CODECS="mp4a.40.2,avc1.77.30",RESOLUTION=640x360,FRAME-RATE=25 403201605073-audio_eng=128000-video=700000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=1726000,CODECS="mp4a.40.2,avc1.77.31",RESOLUTION=1024x576,FRAME-RATE=25 403201605073-audio_eng=128000-video=1500000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=3952000,CODECS="mp4a.40.2,avc1.77.31",RESOLUTION=1280x720,FRAME-RATE=25 403201605073-audio_eng=128000-video=3600000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 #EXT-X-STREAM-INF:BANDWIDTH=7026000,CODECS="mp4a.40.2,avc1.77.40",RESOLUTION=1920x1080,FRAME-RATE=25 403201605073-audio_eng=128000-video=6500000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 # variants #EXT-X-STREAM-INF:BANDWIDTH=136000,CODECS="mp4a.40.2" 403201605073-audio_eng=128000.m3u8?hdnts=st=1578561097~exp=1578604327~acl=*~id=3497d811-9d5d-4f6e-9727-e08e759b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4 b3eec~hmac=014af872b1c5455e3369c2a6005a3346e74a7da4My question is what's wrong, is it a client issue or something must change from back-end?
Replies
2
Boosts
0
Views
3.3k
Activity
Dec ’21
On iOS 15.2 live streams do not start
On iOS 15.2 when playing live stream content AVPlayerItem.status reports AVPlayerItemStatusUnknown but it does NOT report AVPlayerItemStatusReadyToPlay or AVPlayerItemStatusFailed. It remains in buffering state somehow. It is not a network/connection issue because it works fine on older versions of iOS. It also works fine on other type of content, it only happens on live streams like 90% of time.
Replies
0
Boosts
0
Views
489
Activity
Dec ’21
IOS 15 Safari fails with Fairplay DRM playback
Hi, IOS 15 Safari does not support Fairplay DRM and gives an error, other browsers like Chrome also do not work. Since IOS 15 released today, we as DRM providers are having a lot of complaints from our customers. The issue does not happen on IOS app, only for IOS browser. We have seen the same issue across multiple DRM providers, so issue is at the end of Apple and only occurs for IOS 15.
Replies
18
Boosts
0
Views
16k
Activity
Jan ’22