Skip to content

Video needs fallback when using as an image source #1298

Closed

Description

@CircularKen

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

  1. mattgarrish commented on Jan 26, 2022

    @mattgarrish
    Member

    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/img and src/srcset likely wouldn't account for videos, as it's not intuitive that you'd find a video in an img tag.

    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... 😉

  2. rdeltour commented on Jan 26, 2022

    @rdeltour
    Member

    The epub spec says that any video resource can be referenced without fallback;

    Yeah, it seems like EPUBCheck is expecting an image/* CMT in an img element, which would be a bug indeed (I'll need to run some tests to double-check).

    nothing restricts where you can reference videos from

    The host language (HTML, SVG) defines the restrictions.

    In that particular case, is it even valid HTML to put some video/mp4 in there? The HTML spec says img represents an image, which can be potentially animated, but including video/mp4 may 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 😊

  3. rdeltour commented on Jan 26, 2022

    @rdeltour
    Member
  4. added
    status: in discussionThe issue is being discussed by the development team
    type: specThe issue is related to a Specification update
    on Jan 26, 2022
  5. mattgarrish commented on Jan 27, 2022

    @mattgarrish
    Member

    In that particular case, is it even valid HTML to put some video/mp4 in there?

    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.

  6. rdeltour commented on Jan 27, 2022

    @rdeltour
    Member

    Yes I totally agree @mattgarrish!

    My question about HTMl validity was mostly out of curiosity. In any case, issuing MED-003 is a bug here.

  7. added
    type: false-positiveThis issue is about valid content being incorrectly rejected
    and removed
    type: specThe issue is related to a Specification update
    status: in discussionThe issue is being discussed by the development team
    on Jan 28, 2022
  8. added this to the v5.0.0-beta milestone on Jan 28, 2022
  9. added
    status: in progressThe issue is being implemented by the development team
    and removed on Nov 27, 2022
  10. added a commit that references this issue on Nov 28, 2022
    545b7f7
  11. added and removed
    status: in progressThe issue is being implemented by the development team
    on Dec 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: completedWork completed, can be closedtype: false-positiveThis issue is about valid content being incorrectly rejected

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      ⌂ 换网址