Giter Site home page Giter Site logo

snickers / snickers Goto Github PK

View Code? Open in Web Editor NEW
531.0 32.0 76.0 22.5 MB

:chocolate_bar: An open source alternative to the video cloud encoding services.

Home Page: http://snickers.video

License: Apache License 2.0

Makefile 1.03% Go 98.74% Dockerfile 0.23%
encoding ffmpeg video rest api multimedia

snickers's Introduction



Build Status codecov Go Report Card

Snickers is an open source alternative to the existent cloud encoding services. It is a HTTP API that encode videos.

Setting Up

First make sure you have Go and FFmpeg with --enable-shared installed on your machine. If you don't know what this means, look at how the dependencies are being installed on our Dockerfile.

Download the dependencies:

$ make build

You can store presets and jobs on memory or MongoDB. On your config.json file:

  • For MongoDB, set DATABASE_DRIVER: "mongo" and MONGODB_HOST: "your.mongo.host"
  • For memory, just set DATABASE_DRIVER: "memory" and you're good to go.

Please be aware that in case you use memory, Snickers will persist the data only while the application is running.

Run!

$ make run

Running tests

Make sure you have mediainfo installed and a local instance of MongoDB running.

$ make test

Using the API

Check out the Wiki to learn how to use the API.

Contributing

  1. Fork it
  2. Create your feature branch: git checkout -b my-awesome-new-feature
  3. Commit your changes: git commit -m 'Add some awesome feature'
  4. Push to the branch: git push origin my-awesome-new-feature
  5. Submit a pull request

License

This code is under Apache 2.0 License.

snickers's People

Contributors

albertoleal avatar andrewsmedina avatar blainsmith avatar dayvson avatar flavioribeiro avatar ishuah avatar markx avatar saidketchman 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  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  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  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

snickers's Issues

QuickTime TC sources are not working

the source on http://flv.io/comingsoon.mov breaks the ffmpeg_encoder driver.

General
Complete name                            : comingsoon.mov
Format                                   : MPEG-4
Format profile                           : QuickTime
Codec ID                                 : qt  
File size                                : 1.63 MiB
Duration                                 : 1s 667ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 8 180 Kbps
Encoded date                             : UTC 2016-06-07 19:02:57
Tagged date                              : UTC 2016-06-07 19:03:03
Writing library                          : Apple QuickTime
©TIM                                     : 00:00:00:00
©TSC                                     : 30
©TSZ                                     : 1

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : [email protected]
Format settings, CABAC                   : No
Format settings, ReFrames                : 2 frames
Format settings, GOP                     : N=1
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1s 667ms
Bit rate mode                            : Variable
Bit rate                                 : 8 149 Kbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 30.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.131
Stream size                              : 1.62 MiB (100%)
Language                                 : English
Encoded date                             : UTC 2016-06-07 19:02:57
Tagged date                              : UTC 2016-06-07 19:03:02
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Other
ID                                       : 2
Type                                     : Time code
Format                                   : QuickTime TC
Duration                                 : 1s 667ms
Time code of first frame                 : 00:00:00:00
Time code, striped                       : Yes
Language                                 : English
Encoded date                             : UTC 2016-06-07 19:03:02
Tagged date                              : UTC 2016-06-07 19:03:02

decrease build time on Travis-CI

we're compiling ffmpeg every time we trigger a new job on travis. it would be faster if we had the compiled binaries somewhere and we could just download them.

Remove ClearDatabase() method

It's only being used for tests, we should have a FakeTestDB that implements all the stuff that memory has or figure out another way to do this

Bug when listing presets

Result:

$ curl http://localhost:8080/presets
[{"name":"test","video":{},"audio":{}} {"name":"test2","video":{},"audio":{}}]

Expected:

$ curl http://localhost:8080/presets
[{"name":"test","video":{},"audio":{}}, {"name":"test2","video":{},"audio":{}}]

support e-mail "uploader"

we should support e-mail, saving the output of the job on S3 with download permissions and send the link to the job's owner, the same way encoding.com does

support HLS output

refs #40

we should group all HLS presets of a given job in a single output with a master playlist that maps the levels to the presets.

support multiple presets on a job

One job should be able to handle more than one preset. This way we could create a job which outputs both WebM and MP4 renditions, for example.

add logging

right now only http requests are being logged, we need to have more information about what's happening during the job execution

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.