-
Notifications
You must be signed in to change notification settings - Fork 7
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't reference chunks in chunked content #41
Comments
@rbouqueau I think this is one for you? It seems to be blocking 4 tests - the largest number of any github issue. |
@FritzHeiden What do you mean "Older chunked content" ? Do you still have a link ? |
I am sorry this is not clear. The "older chunked content" is the one I provided a screenshot and link in the original post for:
|
Ok so this seems to be referring to content for section 8.6 and 8.7. I haven't generated content explicitly for these sections. The script for generating this content doesn't seem available, and GPAC has never been able to handle SubNumber so I guess this is a manually modified content. If anyone knows anything about this content (e.g. who did this?), please let me know. Otherwise I'll have a look at how to generate this manually. |
I'm not aware of anyone other than you encoding content in WAVE. I wonder if this was something Fraunhofer had lying around somewhere? @FritzHeiden @louaybassbouss please can you try and think where this content could have come from as it's not from @rbouqueau ? |
@gitwjr Bill, please add this content to the list of issues to be resolved for the release. |
@jpiesing It dates from 2019, whereas Rodolphe had started to work on the stream in 2020, see the modification dates. By the way I've cross checked and a custom modification was done by the authors. If someone can have a look at their inbox to find the authors, I can contact them back. |
@jpiesing @rbouqueau |
@FritzHeiden @louaybassbouss Please can you look at the comment from @gitwjr . Which tests are affected by this issue? |
From the specification, all tests that use chunks are 8.6, 8.7, 8.19, 8.20, 8.22, 8.23 |
@louaybassbouss @jpiesing |
It seems like I falsely marked the tests in this list. This is a summary about Chunked Tests :
|
DPCTF Testing Call 11/10/2022
|
@rbouqueau we would like to be in loop for this please? I belive we need to apply same change to audio streams as well. |
@rbouqueau Now NAB is out of the way, is there any update on when you might be able to look at this? For us, this is the highest priority of the pending tests. |
@jpiesing I am still into NAB's aftermaths. I thought I would be able to do it at the end of last week. Unfortunately I was busy re-generating the content. Maybe next week. |
I've created some chunked content based on t16. Could anyone have a look? https://dash.akamaized.net/WAVE/vectors/cfhd_sets/12.5_25_50/chunked/2023-04-28/ |
I was able to parse URLs to individual chunks, however, I was unable to play the video. I appended the init segment, as well as all chunks (verified by looking up the chunks directory). There is no buffered data, sourceBuffer.buffered returns 0 ranges. |
@FritzHeiden Perhaps your colleague Daniel could share experiences of debugging MSE playback problems? I suspect he knows more about it than anyone else on this ticket. |
As I wrote I was clueless about how to test it. Any validation procedure is welcome. @FritzHeiden Does the 2019 content work with your validation process? |
Please can we just re-confirm that we are correct in mapping CMAF chunked content to \$SubNumber\$ in DASH? |
Yes but in addition I am adding a |
Since we seem to have chosen to make life hard for ourselves, I want to make sure that there's not an alternative which is more maintstream. |
We discussed this during DPCTF call. Background:
|
video: http://dash.akamaized.net/WAVE/ContentModel/SinglePeriod/Chunked/ToS_MultiRate_chunked.mpd
This test content does not use a major or compatible brands Why do
I tried several mp4info tools but crash on all segment files,
Do I read specs and discussion correctly? |
Thanks for taking the time to help. I think you got it right. If I understood correctly, what currently misses is:
I am just re-processing the 't16' stream from the 'cfhd' WAVE Media Profile. It looked easier but if we indeed needed other features (such as sidx...) I could regenerate 't16' from scratch. Does that look ok? |
This is exactly what I did (5*400ms chunks). The addon script is located here. I've just made a new release that should:
https://dash.akamaized.net/WAVE/vectors/cfhd_sets/12.5_25_50/chunked/2023-05-20/ Is it better? |
Use Subseg file: Concatenation of sequence can playback a single segment file in a normal video players fine (disclaimer: this cmdline copies an init.ftyp and also all subseg.styp tables but no problem for most players). Encoding is an easy to decode frame sequence, each moof/mdat is IDR+P frames, most likely used only for a very conservative live stream scenarios.
ps: Personally I like it how you write |
Thank you so much. I've updated the sub-indexing to start at 1, now available at: https://dash.akamaized.net/WAVE/vectors/cfhd_sets/12.5_25_50/chunked/2023-05-21/. |
@FritzHeiden Can you take a look at this version? |
I was able to play back the new chunked content without issues |
Ok, what else do I need to do? |
Hopefully nothing on this issue but we won't know for certain until the test HTML+JS are running the test and the OF is parsing the results. |
Should I regenerate chunk tests with this content? The chunked content is not part of the database.json, so local tests are not supported |
@rbouqueau Do you know a reason why the chunked content is not part of database.json? |
Added. Do we need to add a tab to the front-end too? |
Unless there's a good reason, all content should be both in database.json and in the front-end. |
May I ask what was the motivation for There must be something else I am not seeing such as 2..n subsegments don't need to start with IDR frames or contain any IDR/I frames? See this mpd example I renamed segments to original: https://dash.akamaized.net/WAVE/vectors/cfhd_sets/12.5_25_50/chunked/2023-05-21/
|
Chunked tests are now generated. I only generated the chunked tests for 12.5, 25, 50 family, as there is no content for the others. Generated tests will be merged as soon as all other tests work with the new content. |
Ok, not sure to understand the latest part. Let me know if I need to generate something else. |
Updated chunked content tests are now merged to master |
recordings for chunked tests can be found here: https://drive.google.com/file/d/1LnNQxGHKDA8Ww9xqvoLP5Hk9i1LggxC1/view?usp=sharing |
After looking at https://dashif.org/docs/CR-Low-Latency-Live-r8.pdf for how chunked content should work. These were my conclusions. MPD elements:
Storage of segments:
How chunks are meant to be transfered to the player:
How chunks are added to the MSE sourceBuffer:
|
We are not testing any type 1 playback. Chunks are tested to test playback of chunked content, not LL.
We are not testing any type 1 playback. Chunks are tested to test playback of chunked content, not LL.
Again, we are only testing playback of chunked content, not the transfer.
Again, we are only testing playback of chunked content, not the transfer. @louaybassbouss may have more information |
I agree LL is not needed to check playback of chunked content BUT on the dash side it appears the reasonable assumption is chunking is for LL and therefore the specifications covering the chunk signaling assume LL.
The transfer is relevant for test implementation as it provides the way for the test player to distinguish between segments and chunks within the current specifications. Note making chunks individual addressable by the url arguably transforms them into segments as then the only difference between them is the minimum required sap type.
The 'MSE sourceBuffer' is how playback is tested. There are two valid methods for how chunks are added to it. In theory the only difference in playback that the two methods should make is how close to the live edge the content can be played BUT it would not surprise me if some devices had issues with only one of the methods. |
@haudiobe @rbouqueau @louaybassbouss |
I don't really feel untitled to comment on the two last paragraphs. On the first one I agree with Thomas that there was a misunderstanding about LL (which this test has not been not about). |
We have agreed to use the signaling as defined. There were no other proposals. The MPD is really just for annotation of test content. I proposed this in the absence of other proposals.
While I am not disagreeing on the fact, the issue is, we are NOT testing delivery in the first version. I had some recent discussion to add delivery or even type 1 (player testing) and this is an interesting thought, but for the next version,
Yes, please propose a new test if you feel more needs to be tested. Good conversation, and lot's of food for future opportunities |
My understanding is the initial issue was addressed. May I ask that we close it and that the side discussion at the end is migrated to a new issue if that makes sense? |
Closed. The issue was addressed. |
With the current chunked content it is not possible to reference the individual chunks, which makes it impossible to perform the stimulus of the chunked content tests. (e.g. loading chunks in random order)
Older chunked content has individual URLs for each chunk by using
$SubNumber$
in the MPD.See http://dash.akamaized.net/WAVE/ContentModel/SinglePeriod/Chunked/ToS_MultiRate_chunked.mpd
The text was updated successfully, but these errors were encountered: