Hmm, sorry, it seems like I was wrong. [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source) had to be a direct child node of [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video). If there's a `<span>`, videos are not loaded, though I think it was working before... The markup would be verbose like this:
```html
<video itemscope itemtype="http://schema.org/VideoObject" poster=" ... ">
  <source type="video/webm" src=" ... "></source>
  <source type="video/ogg; codecs=&quot;theora, vorbis&quot;" src=" ... "></source>
  <source type="video/mp4" src=" ... "></source>
  <object> ... </object>
  <meta itemprop="width" content="460">
  <meta itemprop="height" content="259">
  <meta itemprop="thumbnailUrl" content=" ... ">
  <span itemprop="encoding" itemscope itemtype="http://schema.org/VideoObject">
    <meta itemprop="encodingFormat" content="webm">
    <meta itemprop="contentURL" content=" ... ">
  </span>
  <span itemprop="encoding" itemscope itemtype="http://schema.org/VideoObject">
    <meta itemprop="encodingFormat" content="ogv">
    <meta itemprop="contentURL" content=" ... "></source>
  </span>
  <span itemprop="encoding" itemscope itemtype="http://schema.org/VideoObject">
    <meta itemprop="encodingFormat" content="mp4">
    <source itemprop="contentURL" src=" ... "></source>
  </span>
</video>
```