Giter VIP home page Giter VIP logo

mmt's Introduction

MMT

Media Management Tool

Or, what to do if your desk looks like this:

Backstory:

I've been using an assortment of scripts over the years to manage media from my different action cameras and drones, it's clear a centralized and unified solution is needed.

This tool draws inspiration from my dji-utils/offload.sh script as well as the popular gopro-linux tool and @deviantollam's dohpro

Right now the script supports these cameras:

  • GoPro: Pretty much all of them
  • Insta360: X2 (GO 2 to follow)
  • DJI: Tested with Osmo Pocket, Spark and Mavic Air 2, but should work on Osmo action and other drones as well
  • Android: photos and videos recorded with OnePlus 7T, but possibly most Android phones

Feel free to PR!

I plan have the tool read a directory, use a config file and act accordingly to offload media from any type of drive

Installing:

Download from the releases tab, additionally, a github action will run for every push.

Running:

  • import - import camera footage
    • --input: Either one of these:
      • A directory pointing to your SD card, on Windows it would be a letter (eg: E:\)
      • MTP connection ID, eg: HERO9 Black
      • USB Ethernet IP (v4) bound to a GoPro Connect connection (HERO8/9 Black)
    • --output: Destination folder, a hard drive, etc...
    • --name: Project name, eg: Paragliding Weekend Winter 2021
    • --camera: Type of device being imported. Values supported: gopro, insta360, dji, android
    • --buffersize: Buffer size for copying files. Default is 1000 bytes
    • --date: Date format. Default is dd-mm-yyyy
    • --range: Date range, for example: 12-03-2021,15-03-2021
    • GoPro specific:
      • connection: mtp/sd_card/connect
      • skip_aux: Skips .THM, .LRV files
      • sort_by: Sort by: camera, days (defaults to both)
  • update - updates your camera
    • --input: A directory pointing to your SD card, MTP or GoPro Connect not supported
    • --camera: Type of device being updated. Values supported: gopro, insta360
  • list: - list devices plugged in

How it looks:

To-do:

  • Auto detect camera using clues from SD card.

  • HiLight parsing: I've found that the best way to see which clip I will use later on is to put some tags at the end of it (press mode button on GoPro, or shout "Oh Shit", or use the app/pebble app). Then when I run a script that prints the number of hilight tags during the last 30 seconds of each video. That lets me know the clips are important. This tool should let you label each tag count (eg: --tag-labels="good,great,important") for each hilight count.

  • Sort by location: Should be on root, so:

    - Mexico City, Mexico:
       - 2020-01-02:
    	     ...
    - New York, NY, United States:
       - 2017-07-01:
    	     ...
    - Madrid, Spain:
       - 2020-09-02:
    	     ...
    
    

    To get location info: GoPro (GPMF) DJI (SRT file) Insta360 (???)

  • Date range: Import from only certain dates (allow for: today, yesterday and week, --date-start and --date-end)

  • Extract info from each clip: Eg: km travelled, altitude changes, number of faces, shouts, etc...

  • Merging chapters: GoPro only, merge chapters from separate files losslessly using ffmpeg

  • Generate GIF for burst photos: Move each burst sequence to a separate folder and make a GIF

  • Merge timelapse photos: Using ffmpeg

  • Generate DNG from GPR: Using gpr tool

  • Proxy file support

  • H265 to H264 conversion: Using ffmpeg

  • Update camera firmware? (Done: GoPro, Insta360)

  • Use goroutines

  • Tests

  • Import media from GoPro's Webcam mode (USB Ethernet)

  • GUI counterpart using fyne.io

mmt's People

Contributors

konradit 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.