Jump to content


Photo

4k HEVC files freeze after a few seconds


  • Please log in to reply
56 replies to this topic

#41 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 26 July 2019 - 10:06 PM

So we got lucky with the others :)

 

Are you guys likely to have a quick fix and push an update? Or will this have to go through the beta cycle?



#42 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 27 July 2019 - 12:33 PM

If we would want to deliver HEVC via HLS, then we would need to work on this, perform tests to find out the best way how to handle this on the server side and test client compatibility.

So that would really need a beta cycle.

 

But the quick fix would to make sure that this is handled like it's currently supposed to be: Transcode to H.264 when delivered via HLS.



#43 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 27 July 2019 - 01:24 PM

It's HDR media, so transcoding isn't an option. I guess we're going to be stuck for a long time. For people whose devices don't support the audio, they will have to take a chance on whether they can watch their movie or not.

#44 JoeBob0131 OFFLINE  

JoeBob0131

    Advanced Member

  • Members
  • 31 posts
  • Local time: 05:33 PM

Posted 27 July 2019 - 02:02 PM

Could put VLC on the device and use as external player in the mean time. It is just changing one option, not ideal but would work.



#45 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 27 July 2019 - 02:27 PM

It's a bug and it cannot stay like this.



#46 ebr OFFLINE  

ebr

    Chief Bottle Washer

  • Administrators
  • 46041 posts
  • Local time: 09:33 PM

Posted 27 July 2019 - 03:51 PM

So, should the app exclude "hevc" from its transcoding profile for now?  Interesting that we are just now running into this...



#47 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 14 August 2019 - 01:16 AM

 

We're allowing to break segments on non-keyframe borders which is actually against the spec. For H.264 this typically works, but maybe not in case of HEVC.

Maybe the other videos that are working have keyframes in 6 s intervals which leads to all segments starting with a keyframe.

The video which doesn't work might have (just for example) a keyframe interval of 4 s which would cause segments that don't start with a keyframe.

 

But that's just one possible reason for example. There's a lot of requirements in the HLS spec: https://developer.ap...r_apple_devices

 

You could go through all of the and check. But we are already in the "unsupported area" here and:

  • It always makes sense to investigate why something doesn't work that is supposed to work
  • But investigating why something is working that is not supposed to work - that's a dead end
    "unsupported" does only mean that something cannot be expected to work. .But it doesn't mean that you can expect that it fails to work ;-)

 

 

I'm reading that link, and I am wondering what will happen with HEVC profiles that have higher levels than 5.0 and/or HDR10+ ?

1.5. The container format for HEVC video MUST be fMP4.

1.6. Profile, Level, and Tier for HEVC MUST be less than or equal to Main10 Profile, Level 5.0, High Tier.

1.7. High Dynamic Range (HDR) HEVC video MUST be HDR10 or DolbyVision.
Video #1
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@High
HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile A compatible


#48 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 14 August 2019 - 05:23 PM

@Doofus - We're violating all those rules. We're not even delivering in fMP4 containers. That's all wrong and that's why we must stop this from happening.

 

Supporting this in the right way would be a new feature that needs time to develop and test and requires changes to most of the clients because clients need to report their capabilities for that feature. (which is not just about reporting whether they can decode HEVC. They will also need to report whether they support HEVC over HLS and if yes, which additional conditions might for that case).


  • Doofus likes this

#49 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 14 August 2019 - 06:02 PM

For sure, but I was wondering that even when it is established, that it still doesn't support what I was asking about.

#50 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 14 August 2019 - 06:50 PM

For sure, but I was wondering that even when it is established, that it still doesn't support what I was asking about.

 

Please bear with me, no time to re-read - what was that?



#51 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 14 August 2019 - 09:31 PM

Please bear with me, no time to re-read - what was that?

 

Apologies. I know you're very busy. Let me try to clarify.

 

  • It's an HEVC video
  • We're performing HLS segmentation of that video stream without transcoding to H.264
  • We're creating segments of container-type mpegts
  • The HLS spec requires fMP4 containers in case of HEVC. It doesn't allow mpegts

 

  • Yes, we were playing an HEVC, and for HLS the container is required to be fMP4
1.5. The container format for HEVC video MUST be fMP4.
  • But in this thread, we are specifically playing HDR videos. It states that HEVC levels can't be higher that 5.0
1.6. Profile, Level, and Tier for HEVC MUST be less than or equal to Main10 Profile, Level 5.0, High Tier.
  • It also states that HDR media must either be HDR10 or Dolby Vsion
1.7. High Dynamic Range (HDR) HEVC video MUST be HDR10 or DolbyVision.
  • Many of my HDR videos are above level 5.0
Video #1
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@High
  • And some are HDR10+
HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile A compatible

So my question is, when you change the segment container from MPEG to fMP4 to accommodate the HEVC codec, what will happen with the media that apparently is not supported  by fMP4 HLS segmentation?



#52 Luke OFFLINE  

Luke

    System Architect

  • Administrators
  • 134446 posts
  • Local time: 09:33 PM

Posted 14 August 2019 - 11:57 PM

You mean with your media? Nothing. It's about the on the fly packaging format.



#53 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 15 August 2019 - 12:17 AM

You mean with your media? Nothing. It's about the on the fly packaging format.

 

That doesn't support the media. So surely that will cause problems on playback?



#54 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 15 August 2019 - 01:46 AM

From a distant view, one would assume that there's a strict separation between the transport (HLS) on one side and the video and audio content encoding ("codecs") on the other side.
 
But that's not quite true. HLS is not just about cutting a media file into a number of segments having the same-length where concatenating all those segments would recreate the original file.
 
The HLS spec is requiring certain things from client implementations that cannot be fulfilled in a way that is independent from the codecs being used.
HLSJS for example is parsing video and audio timestamps to be able to stitch it all together in a seamless and synchronous way by parsing the codec streams. Obviously that doesn't work for other codecs without explicitly developing for it.
 
Same goes for the server side.
 

So my question is, when you change the segment container from MPEG to fMP4 to accommodate the HEVC codec, what will happen with the media that apparently is not supported  by fMP4 HLS segmentation?

 

You are asking what would happen - given the case that we would have properly implemented support for HEVC-HLS - with HEVC files having a different codec level or color format?

 

  • In case of color formats, I'm rather sure that it doesn't technically interfere with HLS implementation 
    It appears to me that Apple just wanted to declare some values in their spec and might have chosen values that do not exclude any of their devices
    .
  • For the codec-level - well..: Codec levels are primarily used to indicate a throughput.
    In case of profiles I would think twice because profiles are typically specifying a set of codec detail features and there could be features that are contradicting with the requirement that HLS segments need to be independent (not referencing content in other segments).
    But in case of level restriction, I would assume the same as for color formats

 

Checking color formats, profiles and levels can be done for HEVC just as usual, like we're doing for H.264, which means independently of HLS.

 

But whether a client supports HEVC over HLS and under which constraints - that check needs to be added.


Edited by softworkz, 15 August 2019 - 01:48 AM.

  • Doofus likes this

#55 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 15 August 2019 - 07:42 AM

So if I'm understanding correctly, there are varied possibilities of support based more on what the playback client can do? And you're thinking that HLS limits in the documentation are more a safe guideline, as in if you follow it, playback is almost guaranteed to be successful, but isn't so strict that if you go beyond it's recommendation that it has no chance of success? Meaning that some/many clients could still successfully play the HLS stream. And then checks would be added in the server to determine if the client would be able to play the HLS stream.

#56 softworkz ONLINE  

softworkz

    Advanced Member

  • Developers
  • 1605 posts
  • Local time: 03:33 AM

Posted 15 August 2019 - 08:18 AM

So if I'm understanding correctly, there are varied possibilities of support based more on what the playback client can do? And you're thinking that HLS limits in the documentation are more a safe guideline, as in if you follow it, playback is almost guaranteed to be successful, but isn't so strict that if you go beyond it's recommendation that it has no chance of success? Meaning that some/many clients could still successfully play the HLS stream. And then checks would be added in the server to determine if the client would be able to play the HLS stream.

 

I'm afraid, that's absolutely not what I meant. Really far far away.

 

Right now I'm short on time, but I'll try to elaborate later..


  • Doofus likes this

#57 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 11741 posts
  • Local time: 06:33 PM

Posted 15 August 2019 - 10:25 AM

I'm afraid, that's absolutely not what I meant. Really far far away.

Right now I'm short on time, but I'll try to elaborate later..

No need. I'll just report the issues I'm expecting, when the changes are in progress.

Edited by Doofus, 15 August 2019 - 02:31 PM.

  • softworkz likes this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users