Git Product home page Git Product logo

ffdropenc's Introduction

Welcome!

I'm a programmer and researcher working on tools for the digital restoration of damaged cultural heritage objects. I'm interested in computer vision, graphics, machine learning, and the films of Whit Stillman.

ffdropenc's People

Contributors

csparker247 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ffdropenc's Issues

App fails to build on Debian

The project fails to build on Debian when using either the apt Qt5 libs or a manually installed version:

$ make
Scanning dependencies of target ffde_core
[  5%] Building CXX object libdropenc/CMakeFiles/ffde_core.dir/src/Filesystem.cpp.o
[ 10%] Building CXX object libdropenc/CMakeFiles/ffde_core.dir/src/Preset.cpp.o
[ 15%] Building CXX object libdropenc/CMakeFiles/ffde_core.dir/src/QueueItem.cpp.o
[ 20%] Building CXX object libdropenc/CMakeFiles/ffde_core.dir/src/TimeTools.cpp.o
[ 25%] Linking CXX static library ../lib/libffde_core.a
[ 25%] Built target ffde_core
Scanning dependencies of target ffdropenc_autogen
[ 30%] Automatic MOC and UIC for target ffdropenc

AutoMoc subprocess error
------------------------
The moc process failed to compile
  "SRC:/apps/include/MainApplication.hpp"
into
  "SRC:/build/apps/ffdropenc_autogen/6YEA5652QU/moc_MainApplication.cpp"

Command
-------
/usr/bin/moc -DJSON_USE_IMPLICIT_CONVERSIONS=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/ffdropenc/apps/include -I/ffdropenc/build/apps -I/ffdropenc/libdropenc/include -I/ffdropenc/build/_deps/json-src/single_include -I/usr/include/QtCore -I/usr/mkspecs/linux-g++ -I/usr/include/QtGui -I/usr/include/QtWidgets -I/usr/include -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu --include /ffdropenc/build/apps/ffdropenc_autogen/moc_predefs.h -p ./ -o /ffdropenc/build/apps/ffdropenc_autogen/6YEA5652QU/moc_MainApplication.cpp /ffdropenc/apps/include/MainApplication.hpp

Output
------
usr/include/c++/8/bits/fs_fwd.:39: Parse error at "std"


AutoMoc subprocess error
------------------------
The moc process failed to compile
  "SRC:/apps/include/EncodingQueue.hpp"
into
  "SRC:/build/apps/ffdropenc_autogen/6YEA5652QU/moc_EncodingQueue.cpp"

Command
-------
/usr/bin/moc -DJSON_USE_IMPLICIT_CONVERSIONS=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/ffdropenc/apps/include -I/ffdropenc/build/apps -I/ffdropenc/libdropenc/include -I/ffdropenc/build/_deps/json-src/single_include -I/usr/include/QtCore -I/usr/mkspecs/linux-g++ -I/usr/include/QtGui -I/usr/include/QtWidgets -I/usr/include -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu --include /ffdropenc/build/apps/ffdropenc_autogen/moc_predefs.h -p ./ -o /ffdropenc/build/apps/ffdropenc_autogen/6YEA5652QU/moc_EncodingQueue.cpp /ffdropenc/apps/include/EncodingQueue.hpp

Output
------
usr/include/c++/8/bits/fs_fwd.:39: Parse error at "std"

make[2]: *** [apps/CMakeFiles/ffdropenc_autogen.dir/build.make:58: apps/CMakeFiles/ffdropenc_autogen] Error 1
make[1]: *** [CMakeFiles/Makefile2:973: apps/CMakeFiles/ffdropenc_autogen.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

getLength() slow for image sequences

Especially on image sequences with large frame sizes. Will be compounded when we call getLength() twice: once to calculate total work and once to when we calculate right before encode.

Use stream selectors for vbv settings

Presets need to be updated to use stream selectors for maxrate and bufsize settings. Not selecting a video stream when applying these can cause unexpected errors in output.

E.g. mediainfo reports that an audio stream has a maxrate that matches the intended maxrate of the video stream.

Release v2.0

To-do:

  • Ask for input/output frame rate for sequences
  • Ask for output directory
  • Report which file is being processed
  • Get queue working
  • Parse ffmpeg output for progress tracking
  • Analyze input files
  • Combine preset args and input file information
  • Add support for alternate encoder process (ffmpeg, x264, etc.)
  • Fix weird QApplication and QProcess errors
  • Fix Chromecast preset (not sure what's broken)
  • Fix ProRes preset (when no audio) (#14)
  • Cancel button
  • Collapse details
  • Report errors to details
  • Drag to app icon
  • App packaging and SDK builds (non-free)
  • H.264 scaling problem (#23)
  • Update documentation
  • Image sequences start from dragged image, not sequence start
  • Port mp3 preset (moved to #32)
  • LICENSE and such

ffprobe returns two lines

ffprobe sometimes returns Programs.program.streams.stream.0.nb_frames for -show_entries stream=nb_frames, thus breaking progress tracking. I haven't figured out why. It's super annoying though.

Scale Problem with Anamorphic Video

Scaling logic can be wacky for anamorphic inputs. For instance, if you give a 1280x720 (PAR 1:1) output preset a DVCPRO HD 1080 file (1280x1080, PAR 32:27) it will output a 1920x1080 (PAR 1:1) file.

Support file drops on app icon

Qt5 supports dropping files onto the app icon in order to open them. However, these drops are given by the event system as a series of individual File Opens rather than as a list of File Opens. This prevents us from properly adding a group of files to the Queue with the same encode settings. We need to explore alternatives to this problem.

File drops on the app icon will be disabled until this is solved.

Package missing qcocoa platform plugin

When deploying against Homebrew's Qt6, macdeployqt only copies the frameworks into the app bundle and not the plugins. This causes the app to crash on launch. If just building the application without running the deploy utility, everything launches correctly indicating that the app is correctly linked against the dynamic libraries.

Probably should test against the official Qt6 installed frameworks to see what happens there.

Bluray encoding fails for certain frame sizes

Certain frame sizes (e.g. 2048x1080) result in a non-compliant output frame size after scaling (1920x1013), causing encoding to fail. This whole system should be rethought as Encore CS6 doesn't seem to like frame sizes that aren't the standards (1920x1080, 1280x720).

Port the mp3 preset

The mp3 preset wasn't ported in the transition to C++. The bash version is still in the presets directory.

Enable code signing

The app package on macOS should really be code signed. Need to investigate how to make this happen with CMake and Qt5.

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.