/st-board

Primary LanguagePythonOtherNOASSERTION

2018/09/19 update: I have ported metadata to Rust, with much better performance. See zmwangx/metadata.

storyboard is an FFmpeg-based customizable video storyboard generator with metadata reporting directly embedded in the generated images. Reported metadata fields include, but are not limited to, title, filename, file size, SHA-1 digest, container format, duration, pixel dimension, display aspect ratio (DAR), scan type (progressive, interlaced, or telecined), frame rate, and per-stream metadata (type, codec, profile, dimensions, bitrate, etc.). Scroll down for a few sample storyboards.

Note that this README only provides an overview and summary of the topics listed below. For more details, follow the main article link in each section.

Structure of this document

  • Background
  • Installation and dependencies
  • Command-line usage
  • Sample storyboards
  • Issues
  • License

storyboard was inspired by the storyboards I frequently encounter on video-sharing Internet forums, mostly generated by proprietary video players. Those storyboards often come with video/file metadata bundled, which I see as a great all-in-one solution for video sharing, saving one the labor of typing multiple console commands, copying and pasting output, and worrying about the forum's crappy formatting. However, I, for one, dislike proprietary players. Also, those storyboards are usually ugly and uninformative, using stupid fonts and lacking crucial information that hackers look for (e.g., hash). Therefore, I developed this customizable storyboard generator for hackers.

Installation and dependencies

Dependencies

  • FFmpeg. Check the official downloads page for installation options. On OS X you may install FFmpeg via Homebrew or MacPorts. The former is recommended.

  • Pillow. This dependency will be picked up by pip when you install storyboard, but you also have to satisfy the external dependencies, especially libjpeg and libfreetype. See the official installation guide for details. (Satisfying external dependencies is very important on Linux, where no wheel distribution is provided on PyPI.)

Installation

End users should use pip:

pip install storyboard

Developers should clone the git repo for docs, tests, and more.