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

Playing a video from failiover enabled node lists multiple audio streams in display page #106

Open
elv-gerald opened this issue Jan 11, 2024 · 8 comments
Assignees

Comments

@elv-gerald
Copy link

We are adding a new feature for live streaming that allows for failover urls included in the master playlist. I noticed whenever I am watching a stream from a node that has failover enabled, the display tab lists multiple audios even though they are fail over audios.

I have this build deployed to sv3-003. Here is test stream that is running 24/7 and is public if you want to test. Let me know if it goes down.

https://host-76-74-28-234.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/playlist.m3u8?authorization=ascsj_Cncwz7c1GmZnSaan5Ts8LGWst45n9FphrmE7fjTXGCejKFUDqo8VRvThDtZweksFLGrSJgqbaU1cALtsVvK6DVeN7KibQADi47P1vgZSaNSTHTZR4d2B1x7FAFVCbmfF6FY2g5mNQSzeDKmztEbdG7pYL3DY3KgfKbJdEkCXSuKu4gkWxzvUNJjXZqcpp91Gxp4hmV3mL8jvWgKCECNRFLiuCuxzRy92iwnmVeGwmkpvoL9tcJvrxkGqrLvAYpPhsWNozPJ6osZJwXL5FXcwuDYC7uV8BwH1M654DYvpoHU8mMKSjQZMUZXVkiNaUPm581FJnemQcVkJDzuyPosdHXfs3pKdooFe8Yoo6ezHLWynN3V8G5yFtzc458vCkFfJgpc5mSVGr2fYxVsVDBTen63oW9GFPRLRgy7FeacRyYqTyk67ggQaMinBbxemhx9nExtM84yWi5PHpanWAiGbc2NnFVv3eH85f2XzKoQ4MQBiPX6gLhakZAEJzPTjGi2hKgfo6x4PffeapD43A8SgM1MWUeCAFWSQrCWt7nx2MemWPG6kANPRRfseNZZaenBDtc9CvaETDB8DYSFpcVVsnqGsnCME47ND7xpFFUuGAXqtYq8A9ewkjKJXRtwehJVyhnie69HwyRDMbBb9FzDWkdhS56jZDVXKKMRy39c8pBaDPqfjW7JpfYgXLkeQTcccjDnMfASZW4LRCw3mWtUeFcoWG5XXBbzpeBqnCwYjJKyJV3D6bpYMFDbepDH6owd4eCu8Xpcckv3YUaSvBLKJjm44mryP28zVo8E671sM7FM4SdK5VoYypwB64yVDA5RnwqDYWCqqiWzpmU4Q7Vquj6muZFzGAH75KzdqPqS4ypGCKdf4YR3XnRHEZHLdxCzX7opSuccGkW8xG84rSSJuph8smUJWjEeANtaGu2MR9QN2C6mUp1r6q55VQdamAeomsgHGRQsVppaDuHZnJPVhFmwzmSiWEJjF3Euhon5E14xV81GT9e7KCEA9G5BuCcB95xxKa4S9PBzKnbnDa3BJZymcKyrjrJGt2Sm6oibYvaPWPbAY3zskkLhiyw9CtnZU8TSUPD2ieW2w4BEdtJALVULgPnqRcvb1S8CXQ9d1YbopedVVeu2GzGC7F9u4VPW2kwZHuARzGdqhWd2YHENf9jDzt4aBksJgrdre935UQRYr1wwxbzLDsamZziuUAiVNWckq78Nndt9qNUFrYpTD2tipZeaajrA8tMAFpQ.RVMyNTZLX0ZpWHRNMjhlUGVuR3FwQVNVOWVNWmkxZ0dNcmhtQ0x6dWZ3bkdRRkc3ZnY4RWo1ejJkNW1aRURkaUVTRVMyeE52dEt6VU1mZmdTMVJKZUxneU52SHdaY21S&resolve=true
Screenshot 2024-01-10 at 4 08 16 PM
@elv-gerald
Copy link
Author

elv-gerald commented Jan 11, 2024

Here is what the playlist will look like in case you need an example. This failover feature is ONLY for hls
playlist.txt

@elv-kevin
Copy link
Collaborator

I need a key to access this stream in app so I can see how the players handle failover, can you give me details?

@elv-kevin
Copy link
Collaborator

this is what these 4 audio tracks look like, there's nothing that differentiates any of them from normal audio tracks.

[
  {
    "attrs": {
      "TYPE": "AUDIO",
      "GROUP-ID": "audio1",
      "CHANNELS": "2",
      "NAME": "audio",
      "STABLE-RENDITION-ID": "audioaudio_aac@192000",
      "CODECS": "mp4a.40.2",
      "DEFAULT": "YES",
      "AUTOSELECT": "YES",
      "URI": "audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27"
    },
    "bitrate": 0,
    "id": 0,
    "groupId": "audio1",
    "name": "audio",
    "type": "AUDIO",
    "default": true,
    "autoselect": true,
    "forced": false,
    "url": "https://host-76-74-28-234.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27",
    "audioCodec": "mp4a.40.2",
    "details": {}
  },
  {
    "attrs": {
      "TYPE": "AUDIO",
      "GROUP-ID": "audio2",
      "CHANNELS": "2",
      "NAME": "audio",
      "STABLE-RENDITION-ID": "audioaudio_aac@192000",
      "CODECS": "mp4a.40.2",
      "DEFAULT": "YES",
      "AUTOSELECT": "YES",
      "URI": "https://host-76-74-28-233.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27"
    },
    "bitrate": 0,
    "id": 0,
    "groupId": "audio2",
    "name": "audio",
    "type": "AUDIO",
    "default": true,
    "autoselect": true,
    "forced": false,
    "url": "https://host-76-74-28-233.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27",
    "audioCodec": "mp4a.40.2",
    "details": {}
  },
  {
    "attrs": {
      "TYPE": "AUDIO",
      "GROUP-ID": "audio3",
      "CHANNELS": "2",
      "NAME": "audio",
      "STABLE-RENDITION-ID": "audioaudio_aac@192000",
      "CODECS": "mp4a.40.2",
      "DEFAULT": "YES",
      "AUTOSELECT": "YES",
      "URI": "https://host-76-74-28-235.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27"
    },
    "bitrate": 0,
    "id": 0,
    "groupId": "audio3",
    "name": "audio",
    "type": "AUDIO",
    "default": true,
    "autoselect": true,
    "forced": false,
    "url": "https://host-76-74-28-235.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27",
    "audioCodec": "mp4a.40.2",
    "details": {}
  },
  {
    "attrs": {
      "TYPE": "AUDIO",
      "GROUP-ID": "audio4",
      "CHANNELS": "2",
      "NAME": "audio",
      "STABLE-RENDITION-ID": "audioaudio_aac@192000",
      "CODECS": "mp4a.40.2",
      "DEFAULT": "YES",
      "AUTOSELECT": "YES",
      "URI": "https://host-76-74-28-227.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27"
    },
    "bitrate": 0,
    "id": 0,
    "groupId": "audio4",
    "name": "audio",
    "type": "AUDIO",
    "default": true,
    "autoselect": true,
    "forced": false,
    "url": "https://host-76-74-28-227.contentfabric.io/qlibs/ilib2HWBxwsXrgtRzgMVVxAzm1oPH53U/q/hq__JBNacniLZg8H3JEWapti5j9Lp9BSfFrXz4D83P1ahsV7852zhMWjqy4AQ6gmgxz8UEnFrwLbaw/rep/playout/default/hls-clear/audio/audioaudio_aac@192000/live.m3u8?rec_seq=2&sid=C4991623EF27",
    "audioCodec": "mp4a.40.2",
    "details": {}
  }
]

@elv-gerald
Copy link
Author

Added @elv-peter to this. He will have a better idea of this on an implementation level.

@elv-kevin
Copy link
Collaborator

however, it looks like elv-player handles audio track switching differently. I think the stream sample does it in a way that digs too much into the internals of hls.js

@elv-kevin
Copy link
Collaborator

I will switch it to use the same as elv-player-js, no need to change anything I think

@elv-kevin
Copy link
Collaborator

this is fixed on demo. I've got another ticket (https://github.com/qluvio/elv-apps-projects/issues/233) that's waiting on some changes to the embed player to be deployed before I can update prod

@elv-peter
Copy link

Probably not needed, but I think the STABLE-RENDITION-ID is the same for redundant streams.

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

3 participants