Missing level and profile codec info on dinamically generated manifest

Hi, I’m trying to dinamically generate HLS manifests for VOD assets based on the available renditions of a video in the contents folder of my app.

I found a very helpful code example online for this using a custom amlst handler, and I’ve modified it succesfully to serve our needs. It seems to be working great and generating the manifest correctly.

The only problem is that the video codec information on the manifest for every rendition is missing the level and profile part, so the player is giving me errors and not playing the videos.

Here is an example of a m3u8 manifest generated this way:

#EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:BANDWIDTH=346000,CODECS=“avc1,mp4a.40.2”,RESOLUTION=360x202 chunklist_w1542507781_b346000.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=456000,CODECS=“avc1,mp4a.40.2”,RESOLUTION=480x270 chunklist_w1542507781_b456000.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=570000,CODECS=“avc1,mp4a.40.2”,RESOLUTION=720x406 chunklist_w1542507781_b570000.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1418000,CODECS=“avc1,mp4a.40.2”,RESOLUTION=1280x720 chunklist_w1542507781_b1418000.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2286000,CODECS=“avc1,mp4a.40.2”,RESOLUTION=1920x1080 chunklist_w1542507781_b2286000.m3u8

Note the missing info after the avc1 part…

The code i’m using to get the video codec information is this:

rendition.setVideoCodecId(getVideoCodec().toCodecsStr());

Is there something i should be doing or configuring differently on Wowza in order to get the codec info right?

Any help would be greatly appreciated so I can finish this project!

Thank you very Much

Sebastian

Hi! It’s been almost 5 months and I wasn’t able to find an answer to this problem yet… Any ideas? Or something else to try?

Thanks!

Sebastian

That should be the correct method to obtain the video codec string, and it looks like you are able to get it to work for the audio codec. We would need more information from your workflow to see why this is not working. Do please open a support ticket for this.

Michelle

Thank you very much @Michelle B for your answer! After revising the code once again with a fresh perspective, I´ve found that I was not getting the level and profile information correctly, so that was the problem on my part and it´s solved now!

However… now I´m facing a new problem… the medialist API that generates the manifest doesn´t seem to handle codec profile and level information in AVCOTI format (Hex) (avc1.4dc01f) which is now required instead of the old format (avc1.77.31).

For example if I do this:

rendition.setVideoCodecId(“avc1.4dc01f”);

My resulting manifest looks like this:

CODECS=“avc1.77.31”

Seems like something is transforming the new format into the old format along the way…

Is there a way to get the manifest with the correct AVCOTI format in Hex values? Or force it to pass the codec information to the manifest in the exact format that I pass to the setVideoCodecId function?

Thank you very much!

Sebastian

Hi Sebastian,

You need to revise the EXT-X-VERSION to 4 so that you are using the longer codec format ID. By default, it uses version 3.

Michelle