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

Support SCTE-35 in HLS #10992

Open
1 task
billyjoker opened this issue Feb 15, 2023 · 4 comments
Open
1 task

Support SCTE-35 in HLS #10992

billyjoker opened this issue Feb 15, 2023 · 4 comments
Assignees

Comments

@billyjoker
Copy link

billyjoker commented Feb 15, 2023

ExoPlayer Version

2.18.1

Devices that reproduce the issue

Xiaomi Mi Mix 2 (Android 9)

Devices that do not reproduce the issue

Playing on Google Chrome, the SCTE-35 is receivde properly

Reproducible in the demo app?

Yes

Reproduction steps

Play the file (it is a boucle live with SCTE-35 implemented) and wait for the ads

Expected result

We expect receive and read SCTE-35 metadata, but no metadata entries are received.

Actual result

Not receiving Metadata

Media

https://c5433dd5ed1ff15654384a6e4d12952d.7wzuvg.channel-assembly.mediatailor.us-east-1.amazonaws.com/v1/channel/canal3/playlist.m3u8

Bug Report

@tonihei
Copy link
Collaborator

tonihei commented Feb 20, 2023

SCTE-35 metadata in HLS TS streams is not supported at the moment. We usually recommend ID3 for metadata entries.

The HLS spec also provides a way to signal SCTE-35 splice information in the media playlist: https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-4.4.5.1.1 This isn't supported either yet, but it seems like the preferred way of signalling this metadata.

I'll mark this as an enhancement to support either version of SCTE-35 signalling.

@tonihei tonihei changed the title Can not read metadata SCTE-35 Support SCTE-35 in HLS Feb 20, 2023
@billyjoker
Copy link
Author

Thanks @tonihei , so if I want to parse this data, how could I map it directly? I am reading the stream manifest data as follows:

    @Override
    public void onTimelineChanged(Timeline timeline, int reason) {
        Object manifest = player.getCurrentManifest();
        if (manifest instanceof HlsManifest) {
            for (String tag : ((HlsManifest) manifest).mediaPlaylist.tags) {
                // TODO CustomMediaPlaylist mediaPlaylist = parseMediaPlaylist(tag);
            }
        } 
    }

Could you please say if there is an existing parser to perform TODO section ?

@tonihei
Copy link
Collaborator

tonihei commented Feb 20, 2023

We have SpliceInfoDecoder that can read SCTE-35 information from a byte buffer. Not sure if it could be useful for this case.

@billyjoker
Copy link
Author

That did not helped to me. Finally I did a custom parse to get the attributes I needed

andrewlewis pushed a commit that referenced this issue Feb 24, 2023
Issue: #10992

#minor-release

PiperOrigin-RevId: 510988140
tonihei added a commit that referenced this issue Mar 2, 2023
Issue: #10992

#minor-release

PiperOrigin-RevId: 510988140
(cherry picked from commit 57a638a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants