Module: Testimonials::DemoVideo

Defined in:
lib/testimonials/demo_video.rb

Overview

The demo video for bin/rails testimonials:seed_demo, written to Active Storage at seed time instead of shipped as a media file: three seconds of 320x180 H.264, embedded below as Base64 (~4 KB).

It lives in a .rb rather than a .mp4 because the gemspec ships lib/**/*, so a bundled clip downloads with every install whether or not the app ever seeds. The 1.1 MB file this replaces was the whole difference between a 91 KB gem and a 1.0 MB one.

Encoded once with ffmpeg (gradients filter, CRF 30). Seeding decodes it and needs no ffmpeg and no network.

Constant Summary collapse

FILENAME =
'testimonials-demo.mp4'
CONTENT_TYPE =
'video/mp4'
DATA =

unpack1('m') rather than Base64.decode64: base64 is a bundled gem from Ruby 3.4 on, and this needs no dependency.

<<~MP4
  AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAATsbW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAC7gAAQAA
  AQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  AAAAAgAABBZ0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAC7gAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
  AAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAUAAAAC0AAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAu4AAAIAAABAAAAAAOO
  bWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAAwAAAAkABVxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRl
  b0hhbmRsZXIAAAADOW1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAA
  AQAAAvlzdGJsAAAAwXN0c2QAAAAAAAAAAQAAALFhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAUAAtABIAAAASAAAAAAA
  AAABFUxhdmM2Mi4yOC4xMDEgbGlieDI2NAAAAAAAAAAAAAAAGP//AAAAN2F2Y0MBZAAM/+EAGmdkAAys2UFBn58BEAAAAwAQ
  AAADAYDxQplgAQAGaOvhEsiw/fj4AAAAABBwYXNwAAAAAQAAAAEAAAAUYnRydAAAAAAAABpKAAAAAAAAABhzdHRzAAAAAAAA
  AAEAAAAkAAAEAAAAABRzdHNzAAAAAAAAAAEAAAABAAABMGN0dHMAAAAAAAAAJAAAAAEAAAgAAAAAAQAAFAAAAAABAAAIAAAA
  AAEAAAAAAAAAAQAABAAAAAABAAAUAAAAAAEAAAgAAAAAAQAAAAAAAAABAAAEAAAAAAEAABQAAAAAAQAACAAAAAABAAAAAAAA
  AAEAAAQAAAAAAQAAFAAAAAABAAAIAAAAAAEAAAAAAAAAAQAABAAAAAABAAAUAAAAAAEAAAgAAAAAAQAAAAAAAAABAAAEAAAA
  AAEAABQAAAAAAQAACAAAAAABAAAAAAAAAAEAAAQAAAAAAQAADAAAAAABAAAEAAAAAAEAABQAAAAAAQAACAAAAAABAAAAAAAA
  AAEAAAQAAAAAAQAAFAAAAAABAAAIAAAAAAEAAAAAAAAAAQAABAAAAAABAAAIAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAJAAA
  AAEAAACkc3RzegAAAAAAAAAAAAAAJAAAA7kAAAB5AAAAFAAAAA0AAAASAAAAlwAAAA8AAAANAAAADwAAAH4AAAAVAAAADwAA
  AA0AAAB1AAAAEQAAAA0AAAAPAAAAdgAAABMAAAAZAAAAEwAAAH8AAAAVAAAADQAAAA8AAABkAAAADQAAAHoAAAAWAAAADQAA
  ABgAAABsAAAAHAAAABMAAAARAAAALQAAABRzdGNvAAAAAAAAAAEAAAUcAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAA
  AAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY2Mi4xMi4xMDEAAAAI
  ZnJlZQAACeRtZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2NSByMzIyMiBiMzU2MDVhIC0gSC4y
  NjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQu
  aHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3Vi
  bWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9
  MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRz
  PTYgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1
  cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9
  MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEyIHNjZW5l
  Y3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0zMC4wIHFjb21wPTAu
  NjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABA2WIhAAR//7Y5/MsK6Oq
  4ykwwKqpcOrL3cKlAye4T82LJaFDykH8t1sy3r0hSL9GJNa5NcmViBufos9UN9gzGYbJ+IZ2zZxsnkenejy2v3fx5TJjlNiI
  lUKJMls0KLDFbhz82ajhsUGCezq0DCHCjALIv+g8Mldnn5k8ZpN3EDjYJa/Xr4debHnbe8MjXRg4AQX9CzvPxKZ0FOpU9kMq
  wZCGtEL61eQfUrbRJEckKT/uj9Mn36kbkwySpgwWy+X4zhIAkU/8maLRVjnj3td16WQD8v41QkTqIAbj5xutvfzCthCT3bAU
  ImCyAj/3VMTOf7e7/2wID8LxWW1qhuqm/ESy1IEAAAB1QZokbEEf/jgvWdARAG+Q716M5y2kxC9zQxestdinyTkZHEkobNZe
  Io8iY7hdsf0DXmMiCDUQw95YR69/upji0ZszBzFfuWMkcLkAUJgrX+nwInbF+cqfxkLSvqekuduanhGoUda6qvCLmYfPCvzx
  NxfhXOsDAAAAEEGeQniG/wBYjIHfgJhI7pUAAAAJAZ5hdEM/AAz4AAAADgGeY2pDPwBHVe9UT+NVAAAAk0GaaEmoQWiZTAgj
  //5OF6TRRZQ2sCZT82gD55snmBc2VCQrOHPcOMYrUu92MLNi02iv2WXT9FMZgape5MLJHXHldLvlu7k/CFKLw2TsP4goIIv2
  A0GVHytWGZhTXcrvynPcIiCNPTdlUiUZF1C+6li8nBIR5DvBIbxaifgPirI49DZjWGI4LD9Fk4D9Mk6u/Hz4hQAAAAtBnoZF
  ESw3/wAKSQAAAAkBnqV0Qz8ADPkAAAALAZ6nakM/AA3O5UAAAAB6QZqsSahBbJlMCCH//hTYBQCtXsAgZYOKSFqkWnaC/Wij
  xJ5s6a/Y7hDhIUZlx2/xywHIkSnDM2r4Klv5XBlBN6qnzJTqqk+yvA9xuk/8kLWoRSVtss1qi9t1jOAtWByPaDxjREr0X/j3
  qecy72Sxv95hmOVrB5AoHXUAAAARQZ7KRRUsN/8BwpyYHnxbssEAAAALAZ7pdEM/AjpJ0kgAAAAJAZ7rakM/AAz4AAAAcUGa
  8EmoQWyZTAgh//4UOL0ADDajsAFfKeG2gD56qAAAiqpCX0yVYhu9bOme3s4DGSBB2yReDbbxgDkkHFzuvnjpDGDem5tLKCGy
  N0ZquwIPOSO6KZ3q3LXuCpdZ/SxDWgozBxavNevHX48zkuER3WlxAAAADUGfDkUVLDf/AAsRpuEAAAAJAZ8tdEM/AAz5AAAA
  CwGfL2pDPwAYfXuIAAAAckGbNEmoQWyZTAgh//4Vi5hOfTkSf5AAl/tSTYIiqHQf+JoqzIiQNAosx3e6pjOqhCv+sRoSwWIs
  XT/hAb3MjgAk/NEr6gq7TliYYNhbZPzRJT9BC4ddsf6xPRGAKZstBUhKoATJ4XZ0bVBq9IESu87RGAAAAA9Bn1JFFSw3/wBa
  zFR31lkAAAAVAZ9xdEM/DKx44q58rCKABc+jNttAAAAADwGfc2pDPwpKlr9xTLXjQAAAAHtBm3hJqEFsmUwIIf/+HDmA5LyP
  cQCfNs0myk1SonheXPdPZkqxRFjapoAYqbdtP2kcthV/0DXUJnlQj8P7ZAygspQBG0ruDBQs0hVOxV4vBQdqX6Yx3q1OWOFW
  OMMdxy/Gp6C4S1Wx764qh0io/rcvEW5qcTKrLnd4y4EAAAARQZ+WRRUsN/8YmcPDKq0qbPAAAAAJAZ+1dEM/AAz5AAAACwGf
  t2pDPwAOHwCxAAAAYEGbukmoQWyZTBRMEP/+BHWxMz6bge/VZzDUA72k3ya7C3oZVf/PTOrs91w3SCrENLFOFHO+ze0Utt9Y
  VyswKtHXivU26w8GJkIlypVFzku5e1+SyBoRKYs7X1bBNA22hQAAAAkBn9lqQz8ADPkAAAB2QZveSeEKUmUwIf/996JsAXS2
  K1esjM8XQMnoefMADEibOu9HOW2puLo6+gGCB5kZiHnSwiS1MiAnnuUG3p9OiA0lrA54+VaPVsDM5CelCc1RkjkeienoiT/1
  ZzWoaPYTFKluzq54JieXFpBaiDUKpMKDVQiyaQAAABJBn/xFNEw3/wGzpbq1BRJROyEAAAAJAZ4bdEM/AAz5AAAAFAGeHWpD
  PwIr6Qgz9t+ZbZmeTl6AAAAAaEGaAkmoQWiZTAhv//qi+YgClQu6CxhavI0kgzACj8NYTyIQ5tL9ytv8jlExcuAxd1atD1gY
  xjChoFnui4qCOOvfNQ0AbGwaZgUNQNGjnW4KM/ROBx1R75pGN/ucMT8HuI+u9GR3nQk4AAAAGEGeIEURLDf/CIoKnEu1YRZB
  H07eo3g+9wAAAA8Bnl90Qz8CPD+Jjbs8moAAAAANAZ5BakM/AWLO+qKI0QAAAClBmkNJqEFsmUwIZ//6WAPnM/YVcDReliMF
  1zpDvCZ+hXeJsQLqi7OoGA==
MP4

Class Method Summary collapse

Class Method Details

.bytesObject



78
79
80
# File 'lib/testimonials/demo_video.rb', line 78

def self.bytes
  @bytes ||= DATA.unpack1('m')
end