For more details on this project, have a look at the video of the talk I gave at JS Conf 2014.
The slide deck is also available.
This branch, named
converter, contains an encoder of DVD to web format. For
the attempt to play DVD on-the-fly, look into the
- IFO files are parsed to JSON
- Chapters are generated as WebVTT
- NAV packets are extracted to JSON
- The buttons size/position are saved to CSS
- The menu still frames are saved to PNG (to be done)
- The video is encoded to Webm
Clone the repo locally and install the dependencies with:
$ npm install $ bower install $ grunt install
You'll need to install the latest version of ffmpeg.
Create the folder that will hold your DVD, e.g.:
$ cd /home/user/ $ mkdir dvd $ pwd /home/user/dvd
Then update the
dvdPath property of the config file in
match the path to the folder created above.
Copy an unprotected DVD into a subfolder of
dvd/ (e.g. in
/home/user/dvd/Sita Sings the Blues/)
To convert the DVD, do:
$ node bin/convert /home/user/dvd/Sita Sings the Blues/
Wait for a while (reencoding video takes a loooooong time).
Start the web server:
Finally, point your browser to:
... and enjoy your DVD from your browser!
All browsers supporting the following features:
<track>tag and WebVTT.
Do you need help?
Yes, please, use it, open issues and send pull requests.
Why doing that?
There are several reasons:
- I am frustrated with the current VOD offer and I don't want to buy movies or TV series to watch on my mobile if I already own the DVD.
- I noticed I'm listening to my CD more often now that I'm using Google Play Music and am looking for a similar solution for my DVD.
Why don't you just convert the video for the web?
There's more in DVD than the video. You can select audio track, subtitles, navigate through the menu, play interactive game or browse a gallery of still images.
Why not using Emscripten?
Also I don't do C and wasn't even able to compile the programs coming with libdvdread and libdvdnav on my PC... ^^;