Repository navigation
Description
I recently created a fixed layout EPUB which contained eight autoplaying videos.
The EPUB was validated with Pagina EPUB-Checker and EPUBCheck 4.2.6
On hearing that the autoplaying videos did not appear on iOS, I found a workaround to use the videos as src on img tags ( more on that technique here) and then adding a method to switch between regular video and the img video only for iOS such as
<div class="videoFrame noniOS" style="left: 0px; top: 0px; height: 842px; width: 595px;"><p><video muted="muted" loop="loop" autoplay="autoplay" playsinline="playsinline" ibooks:pause-readaloud="false" src="video/p6_giraffe_flipped.mp4" poster="images/1px.png" style="height: 842px; width: 595px;"/></p></div>
<div class="videoFrame iOS" style="left: 0px; top: 0px; height: 842px; width: 595px;"><p><img ibooks:pause-readaloud="false" src="video/p6_giraffe_flipped.mp4" style="height: 842px; width: 595px;"/></p></div>
the EPUB now autoplays on iOS and all other devices tested. But… the EPUB is now failing validation 8 times with the same reason
ERROR (MED-003) at "FF001_Triggers_UK_v1.1.epub/OEBPS/1.xhtml" (line 76, col 199): A manifest fallback must be provided for image resource "OEBPS/video/p6_giraffe_flipped.mp4" of type "video/mp4".
I have never seen this request before. No doubt because I have never used the video src for img technique before.
But if I add a fallback to the image resource in the OPF then the autoplaying in iOS no longer works!
This leads me to ask some questions of the group, please…
Q1: Is this epub error intentional?
Q2: Can and should it be altered?
Q3: If I need to add a fallback to a video, why do I only need to do that when it is an image resource?
Q4: Can I add a fallback in a way that doesn't knock out the autoplaying in iOS?
Currently I can only achieve what the client wants by supplying an invalid EPUB… so I'd be happy to hear any advice!
Supplying link and files here with client permission for testing and troubleshooting. Please do not share or use elsewhere…
v1.0 Valid EPUB, not autoplaying video in iOS
Direct download - FF001_Overdrive_UK_v1.0.epub
View online - FF001_Overdrive_UK_v1.0.epub
v1.1 Invalid EPUB, autoplaying video in iOS
Direct download - FF001_Overdrive_UK_v1.1.epub
View online - FF001_Overdrive_UK_v1.1.epub
Activity
mattgarrish commentedon Jan 26, 2022
The epub spec says that any video resource can be referenced without fallback; nothing restricts where you can reference videos from. So, I'd hazard this is an epubcheck bug.
The rules implemented to handle the various ways you can reference images from
picture/imgandsrc/srcsetlikely wouldn't account for videos, as it's not intuitive that you'd find a video in animgtag.Adding another rule to sidestep image fallbacks when a video is detected seems a bit unwieldy, but luckily @rdeltour will have to figure that out... 😉
rdeltour commentedon Jan 26, 2022
Yeah, it seems like EPUBCheck is expecting an
image/*CMT in animgelement, which would be a bug indeed (I'll need to run some tests to double-check).The host language (HTML, SVG) defines the restrictions.
In that particular case, is it even valid HTML to put some
video/mp4in there? The HTML spec saysimgrepresents an image, which can be potentially animated, but includingvideo/mp4may be a stretch? I remember having seen the article mentioned by @CircularKen (thanks for the pointer!), but didn't really think of EPUB at the time. Interesting question 😊rdeltour commentedon Jan 26, 2022
See whatwg/html#7141
mattgarrish commentedon Jan 27, 2022
HTML doesn't restrict the media type, so it's primarily a question of support, no? That's outside our purview.
If there's a valid use case, we shouldn't inject ourselves as the arbiters of whether it makes sense.
rdeltour commentedon Jan 27, 2022
Yes I totally agree @mattgarrish!
My question about HTMl validity was mostly out of curiosity. In any case, issuing
MED-003is a bug here.feat: improve fallback detection check