Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can EXT-X-I-FRAME-STREAM-INF be supported? #100

Open
SamJarmanPP opened this issue Dec 2, 2019 · 7 comments
Open

Can EXT-X-I-FRAME-STREAM-INF be supported? #100

SamJarmanPP opened this issue Dec 2, 2019 · 7 comments

Comments

@SamJarmanPP
Copy link

I'd like to see support for the parsing of#EXT-X-I-FRAME-STREAM-INF lines.
eg
#EXT-X-I-FRAME-STREAM-INF: BANDWIDTH=100403,RESOLUTION=392x216,CODECS="avc1.42c01e",URI="QualityLevels(90258)/Manifest(video,format=m3u8-aapl,type=keyframes)"

I tried to make a custom parser for this, but I cant seem to get it to work right with an object for each time this line occurs (many times)

Any ideas welcome,
Thanks!

@nosteine
Copy link

@SamJarmanPP, is the problem you are facing that you only get one parsed object instead of an array of them ?

@SamJarmanPP
Copy link
Author

Honestly, I cant remember now. But that does sound right - is that the current behaviour?

@nosteine
Copy link

I believe so.
I played around with it today and I have quite a simple fix.
I plan to submit a PR on Sunday. See how it goes

@nosteine
Copy link

#106

@JeppeTh
Copy link

JeppeTh commented Oct 5, 2020

Does this mean EXT-X-I-FRAME-STREAM-INF still is only supported by making custom parser?

Yes it seems so after some testing...

@torgeilo
Copy link

torgeilo commented Dec 7, 2020

Workaround:

const entries = [];

parser.addParser({
  expression: /^#EXT-X-I-FRAME-STREAM-INF/,
  customType: 'iframes',
  dataParser: (line) => {
    // Process line into entry...
    entries.push(entry);
    return entries;
  }
});

parser.push(data);
parser.end();

parser.manifest.custom.iframes   // <- Array of entries.

@JeppeTh
Copy link

JeppeTh commented Dec 8, 2020

Thx - I guess it should be

entries.push(line)

?

Not sure videojs-http-streaming support custom stuff though where I use this.
The playlist contains a mixture of these INFs and "regular # variants" - I tried to removed those to make sure custom was used - but then it didn't work. Perhaps I removed too much...

I noticed I could provide a customTagParser to videojs-http-streaming - seemed to parse it - but still couldn't play the stream...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants