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

BML example #19

Open
artemies opened this issue Aug 7, 2020 · 7 comments
Open

BML example #19

artemies opened this issue Aug 7, 2020 · 7 comments
Labels

Comments

@artemies
Copy link

artemies commented Aug 7, 2020

do you have a bml webpage example?

@karl-rousseau
Copy link
Owner

Sorry to be late ... I sold my PC and I don't have access anymore to my HDD backups.
I had a DTT captured TS file from Japan with one example inside a DSMCC objet.
If you know somebody in Japan with a digital tuner to capture the Digital Terrestrial Television, it might help.
I am not really sure that it is still used nowadays as the standard is now quite old.

You can find more documentation on those structures (page 224) in this PDF file from the ARIB standard:
https://www.arib.or.jp/english/html/overview/doc/6-STD-B24v5_2-2p3-1-E1.pdf

If you have a TS file with such example, you can extract those sources using free OpenCaster tool or TSduck one.
It seems that you can also use TS Data Extractor + BTBViewer like someone in Japan did describe in his article:
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fqiita.com%2Fkujira-desu%2Fitems%2Fd98587c10fb44d668f8f

Have a nice reading.

@artemies
Copy link
Author

artemies commented Feb 1, 2021

Hi,

Hope this message finds you well.

I managed to find an example TS from Japan (https://tsduck.io/streams/?name=japan-dttv) and we were able to extract the dsm-cc contents. Upon checking we are getting raw binary data inside modules (DDB folder). How we can inject this in the hbbtv viewer? thanks!

@karl-rousseau
Copy link
Owner

Hello ‌Artemies,

Thank you for the link and I didn't know that TSduck is providing streams.
After your DSMCC carousel's extraction, you can host those directories and files under a local HTTP server like
NGINX or Apache where you have to associate the main entry page to this specific mime type "text/X-arib-bml".
(it can be defined locally in such server or globally inside /etc/mime.types if you are under Linux)

Under your browser, when you will request this local BML web page, then the installed browser extension
will detect the page holding such HTTP header mimetype and will change it to be displayed inside your browser.
Oipf & Hbbtv methods will then be injected inside this page and you can add more missing BML methods if needed
by modifying the extension source code.
Raw binary files will be also hosted and must be translated to something understandable by the main entry page.
I had some thought about doing an external Chrome app but the filesystem and network API are limited.
In the future, I am looking forward to WASM (aka WebAssembly) which will provide those APIs and
it will be easier to read a raw TS stream (even stream them) and extract it on the fly to provide it inside the web extension.
We just have to wait for such functionality (which are inside the Wasm/Wasi roadmap)

I hope it will help you.

@artemies
Copy link
Author

artemies commented Feb 8, 2021

Hi Karl,

Thanks for the info. In the meantime, we need to figure out how to recover the bml files from the raw binary data from DDB folder.

@karl-rousseau karl-rousseau reopened this Feb 14, 2021
@artemies
Copy link
Author

Hi Karl,

Upon demux of sample transport stream from Japan, we found that the DSMCC is empty but the DDB folder has some raw/binary files. I think ISDB-T Japan implements data carousel only (instead of object carousel). I attached the sample DDB files.
You mentioned before that you were able to extract BML from DSMCC object, if you can recall how you were able to extract this it will be a great help.

Thanks!

sample DDB.zip

@karl-rousseau
Copy link
Owner

Hello ‌Artemies,

I see and I did remember that I modified ts2sec on OpenCaster but also dsmcc-receive in order to be able to extract things.
I don't have those patches at hand and they are somewhere backupped on one of my old disks. Moreover I sold my desktop PC too and therefore it will be not be easy to plugin those disks on my every day RPi4 computer (no SATA by default).

You can try to modify this tiny code here: https://github.com/aventuri/opencaster/tree/master/code/tools/dsmcc-receive
Or maybe if you retrieve the Ocean Blue DTVKit, they might handled it: https://www.dtvkit.org/wiki/doku.php?id=dsm-cc

Good luck.

@artemies
Copy link
Author

Hi Karl,

Thank you for your prompt response. Will try this out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants