eluv-io / elv-fabric-browser

Eluvio Content Fabric Browser
MIT License
2 stars 1 forks source link

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

Open elv-gerald opened 9 months ago

elv-gerald commented 9 months ago

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 commented 9 months ago

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 commented 9 months ago

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 commented 9 months ago

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 commented 9 months ago

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

elv-kevin commented 9 months ago

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 commented 9 months ago

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

elv-kevin commented 9 months ago

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 commented 9 months ago

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