Giter Site home page Giter Site logo

moviebarcodecreator's Introduction

Python Movie Barcode Creator

This is a simple script to create "barcodes" from frames of a movie. This works by using ffmpeg to create images from the frames of the video. Then uses Pillow to extract the dominant color from each frame and then string them together into a "barcode."

Installation:

Before you install moviebarcode creator, you will need to install ffmpeg. FFmpeg can be downloaded here. Or you can install it with your favorite package manager:

sudo apt-get install ffmpeg
brew install ffmpeg

Note: If you are having troubles getting it to run on Windows because of FFMpeg install issues see this wiki page for a guide to setting it up

This script can be installed via pip (either python2 or 3):

pip install moviebarcodecreator

This will also install all dependencies. Or you can install it manually via:

python setup.py install

Usage:

From the command line, go to the directory the video file is in and type:

moviebarcode VideoFileName.mpg

And a barcode.png file will be generated, as well as a frame_colors.txt file for faster barcode generation if you ever want to change the size in the future.

###Options:

#####-o, --outfile OUTFILENAME

Name of the generated barcode png. Default is barcode.

####-h, --help

Display the help information.

####-im, -images

Use this command if you want it to make a barcode from the frames themselves instead of the colors.

####-fc, --framecolors

Use this if your already have a frame_colors.txt generated to skip frame and color generation. (Can't be used at the same time as -nf).

####-nf, --noframes

Use this if you already have the movie frames inside a frames directory inside the video directory. This will skip the frame generation process. (Can't be used at the same time as -fc).

Note: With both -fc and -nf you do not have to specify a video file name if either are used.

####-nd, --nodelete

The default behavior for the script is to delete all the frames it generates when it's done. Add this -nd flag and the frames directory and all the frames won't be deleted.

####-ht, --height HEIGHT

Set the image height in pixels. Default is 1200px.

####-bw, --barwidth BARWIDTH

Set the width of each bar, before the image get's resized to its final width. Default is 5px.

####-w, --width WIDTH

Set the final width of the barcode in pixels. Default is 1920px.

####-fr, --framerate FRAMERATE

You can set FFMPEG's frame rate with this. Default is 1/24 (1 frame every 24 seconds). Keep in mind, the higher you set the framerate (e.g. setting it to 24 will capture 24 frames per second the average fps for a movie), the more frames are going to be generated and the longer the process will take.

####-ss, --start START

You can set the point you want ffmpeg to start cutting the video into frames. Format: 01:08:45.000 or 109 (seconds).

####-d, --duration DURATION

You can set how long you want ffmpeg to cut the video into frames. Format: 01:08:45.000 or 109 (seconds).

####-en, --end END

You can set the point you want ffmpeg to stop cutting the video into frames. Format: 01:08:45.000 or 109 (seconds).

####-t, --threads THREADS

You can set the amount of threads python will use when generating the colors for the barcode. Default is 8.


####Generate a barcode for a video that is 500x500 without deleting the frames:

moviebarcode VideoFileName.avi -ht 500 -w 500 -nd

####Generate a barcode from previously generated frames and name the barcode test.png:

moviebarcode -nf -o test.png

####Generate a barcode from previously generated frame colors:

moviebarcode -fc

####Generate a barcode with a higher framerate and more threads:

moviebarcode VideoFileName.mkv -fr 1/2 -t 16

####Start the video at 1 hour and 28 minutes and stop after 30 minutes

moviebarcode VideoFileName.mp4 -ss 01:28:00.00 -d 00:30:00.00

####End the video at the 45 minute mark

moviebarcode VideoFileName.mp4 -en 2700

####Make a barcode from the images of the frames, instead of the colors

moviebarcode VideoFileName.mpg -im

Examples:

These examples were generated with (unless noted otherwise):

moviebarcode VideoFile -ht 500 -w 2000

####Interstellar

Interstellar Barcode

####500 Days of Summer

500 Days of Summer

####Mad Max: Fury Road

Mad Max: Fury Road

####A Goofy Movie

Default framerate

Goofy Movie Default

####A Goofy Movie

higher framerate (1/2)

Goofy Movie Higher

####Rick and Morty: The Wedding Squanchers

moviebarcode VideoName -im -fr 1 -w 8000 -bw 640 -ht 2000

Rick and Morty

moviebarcodecreator's People

Contributors

nickhurst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.