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

Subtitles chunks don't load (but presented in mpd) #875

Closed
theifish opened this issue Jun 13, 2017 · 12 comments
Closed

Subtitles chunks don't load (but presented in mpd) #875

theifish opened this issue Jun 13, 2017 · 12 comments
Assignees
Labels
status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@theifish
Copy link

theifish commented Jun 13, 2017

Have you read the FAQ and checked for duplicate issues: Yes

What version of Shaka Player are you using: 2.3 (correction: 2.1.3)

Can you reproduce the issue with our latest release version: Yes

Can you reproduce the issue with the latest code from master: Yes

Are you using the demo app or your own custom app: Own player

If custom app, can you reproduce the issue using our demo app: No (mpd protected with CORS), but it can be reproduced with "clear" Shaka library locally.

What browser and OS are you using: All

What are the manifest and license server URIs:
(you can send the URIs to shaka-player-issues@google.com instead, but please use GitHub and the template for the rest)

Manifest was sent to the email, mpd example in first comment (URLs changed)

What did you do?

Started a stream with Shaka and waiting for subtitles.

What did you expect to happen?

Subtitles show in player.

What actually happened?

No subtitles were shown in player, even subtitles chunks were not requested.

@theifish
Copy link
Author

Here is MPD example:

<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="dynamic" publishTime="2017-06-13T09:46:39" minimumUpdatePeriod="PT10S" availabilityStartTime="2017-06-09T13:50:08Z" minBufferTime="PT30S" suggestedPresentationDelay="PT30S" timeShiftBufferDepth="PT2H0M0S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period start="PT0S" id="1">
<AdaptationSet mimeType="video/mp4" frameRate="25/1" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="false">
<SegmentTemplate timescale="90000" duration="900000" startNumber="1"/>
<Representation id="1" width="1280" height="720" bandwidth="2400000" codecs="avc1.64001f">
<SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-5-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-5-20170609T134945init.mp4"/>
</Representation>
<Representation id="2" width="1280" height="720" bandwidth="1250000" codecs="avc1.64001f">
<SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-4-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-4-20170609T134945init.mp4"/>
</Representation>
<Representation id="3" width="640" height="360" bandwidth="950000" codecs="avc1.4d401e">
<SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-3-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-3-20170609T134945init.mp4"/>
</Representation>
<Representation id="4" width="640" height="360" bandwidth="650000" codecs="avc1.4d401e">
<SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-2-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-2-20170609T134945init.mp4"/>
</Representation>
<Representation id="5" width="640" height="360" bandwidth="350000" codecs="avc1.4d401e">
<SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-1-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-1-20170609T134945init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4" lang="rus" segmentAlignment="0">
<SegmentTemplate timescale="48000" media="/streams/tv/tvdash1-Frag-hd-audio-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-audio-20170609T134945init.mp4" duration="480000" startNumber="1"/>
<Representation id="6" bandwidth="96000" audioSamplingRate="48000" codecs="mp4a.40.2"/>
</AdaptationSet>
<AdaptationSet mimeType="application/mp4" lang="rus">
<Role schemeIdUri="urn:mpeg:dash:role" value="subtitle"/>
<SegmentTemplate timescale="90000" media="/streams/tv/tvdash1-Frag-hd-caption-20170609T134945_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-caption-20170609T134945init.mp4" duration="900000" startNumber="1"/>
<Representation id="7" bandwidth="256" codecs="stpp"/>
</AdaptationSet>
</Period>
</MPD>

@joeyparrish
Copy link
Member

@theifish, can you please confirm your Shaka Player version? v2.3 does not exist yet.

If you are using our demo app, you can see the version number at the top of the page. Otherwise, check shaka.Player.version in the JS console.

I can confirm the behavior, and that there are no subtitles according to the parsed manifest.

@joeyparrish joeyparrish added the type: bug Something isn't working correctly label Jun 15, 2017
@joeyparrish joeyparrish added this to the v2.2.0 milestone Jun 15, 2017
@joeyparrish
Copy link
Member

This appears to be a very small bug in the DASH parser. Should be easy to fix.

@joeyparrish joeyparrish self-assigned this Jun 15, 2017
@joeyparrish
Copy link
Member

This is caused by the fact that mimeType appears on AdaptationSet, but codecs appears on Representation. We have not seen this before. Usually, these attributes would appear on the same element. @theifish, can you tell us which encoder/packager you are using?

joeyparrish added a commit that referenced this issue Jun 15, 2017
This fixes the detection of content type for text AdaptationSets which
contain mimeType only, but contain a Representation with codecs only.

Closes #875

Change-Id: Ibae7ae8357653c1960daefa4c3e122187de51bb3
@theifish
Copy link
Author

theifish commented Jun 16, 2017

@joeyparrish sorry, actual version is 2.1.3
We use Elemental Live.

@captnced
Copy link

captnced commented Jul 10, 2017

I've seen the very same manifest issue with an Ericsson (Envivio) Halo packager

@TheModMaker
Copy link
Contributor

@captnced Please start a new issue for that and be sure to include an example manifest. Thanks.

@kuznetcoff777
Copy link

kuznetcoff777 commented Jul 25, 2017

Hi! When 2.2 version will be available?

We did some workarond with mainfest file and now it looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="dynamic" publishTime="2017-07-25T14:13:51" minimumUpdatePeriod="PT10S" availabilityStartTime="2017-07-25T13:26:31" minBufferTime="PT30S" suggestedPresentationDelay="PT30S" timeShiftBufferDepth="PT2H0M0S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT0S" id="1">
    <AdaptationSet mimeType="video/mp4" frameRate="25/1" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="false">
      <SegmentTemplate timescale="90000" duration="900000" startNumber="1"/>
      <Representation id="1" width="1280" height="720" bandwidth="2400000" codecs="avc1.64001f">
        <SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-5-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-5-20170725T132607init.mp4"/>
      </Representation>
      <Representation id="2" width="1280" height="720" bandwidth="1250000" codecs="avc1.64001f">
        <SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-4-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-4-20170725T132607init.mp4"/>
      </Representation>
      <Representation id="3" width="640" height="360" bandwidth="950000" codecs="avc1.4d401e">
        <SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-3-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-3-20170725T132607init.mp4"/>
      </Representation>
      <Representation id="4" width="640" height="360" bandwidth="650000" codecs="avc1.4d401e">
        <SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-2-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-2-20170725T132607init.mp4"/>
      </Representation>
      <Representation id="5" width="640" height="360" bandwidth="350000" codecs="avc1.4d401e">
        <SegmentTemplate duration="900000" startNumber="1" media="/streams/tv/tvdash1-Frag-hd-1-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-1-20170725T132607init.mp4"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" lang="rus" segmentAlignment="0">
      <SegmentTemplate timescale="48000" media="/streams/tv/tvdash1-Frag-hd-audio-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-audio-20170725T132607init.mp4" duration="480000" startNumber="1"/>
      <Representation id="6" bandwidth="96000" audioSamplingRate="48000" codecs="mp4a.40.2"/>
    </AdaptationSet>
    <AdaptationSet mimeType="application/mp4" codecs="stpp" lang="rus">
      <Role schemeIdUri="urn:mpeg:dash:role" value="subtitle"/>
      <SegmentTemplate timescale="90000" media="/streams/tv/tvdash1-Frag-hd-caption-20170725T132607_$Number%09d$.mp4" initialization="tvdash1-Frag-hd-caption-20170725T132607init.mp4" duration="900000" startNumber="1"/>
      <Representation id="7" bandwidth="256"/>
    </AdaptationSet>
  </Period>
</MPD>

But anyway we dont see captions (only see as they are downloaded). Moreover i see that captions are downloaded even whtn CC button is unpressed. I think it is not properly.

@joeyparrish
Copy link
Member

@kuznetcoff777, the initial fix we made for this came out in v2.1.4. We just released v2.1.6 which includes a fix for #919, which may explain subtitles downloaded and never displayed. v2.2.0 will be out as soon as we resolve #960.

Please let us know whether v2.1.6 and the fix for #919 resolve your missing subtitle issue. Thanks!

@theifish
Copy link
Author

@joeyparrish, I'm trying to build v2.1.6 within ./build/all.py and see the following error:

[ERROR] *** A required dependency is missing: java

Have no idea why it need java.

@theifish
Copy link
Author

I managed it, just start using jre64 from my Webstorm location. (I wish one day you'll change packager to any ordinary :) ).
Anyway, in 2.1.6 subtitles work, so the issue is resolved.

@joeyparrish
Copy link
Member

@theifish, the JavaScript compiler we use is written in Java. We have a brief mention of this in the README:

In order to build, you simply need python v2.7 (for the build scripts) and JRE 7+ (for the compiler).

Glad to know the issue is now resolved for you. Thanks for retesting!

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

6 participants