gordon-cs / appbuilder-storybuilder Goto Github PK
View Code? Open in Web Editor NEW21-22 Gordon College CS Senior Project
License: MIT License
21-22 Gordon College CS Senior Project
License: MIT License
As a user, I want to be able to switch the language of the title and credit slide
I believer you are running the script by using go as an interpreter based on the current directory. For deployment in SAB, we will need to compile to GO code to a platform-specific binary.
I asked colleagues who release go applications. They said to use https://github.com/goplus/gox.
Something like:
targets=( "darwin/amd64" "linux/386" "linux/amd64" "linux/arm" "windows/386" )
distPath="../../dist"
for target in "${targets[@]}"
do
# Build binary using gox
gox -osarch="${target}" -output="${distPath}/${target}/my-project"
...
As a user, I want to be able to give a .slideshow file with all the information, then run the program that will produce a video with the given timing file.
As a user, I want to be able to specify whether the program displays detailed information on each step of the process as it proceeds.
Software should be able to check system core count and run production in parallel if able to increase runtime speeds
The transitions should happen at the specified time and the duration should be split between the two slides.
The audio should not fade in/out.
If template is not provided at runtime, code should search current folder for any available .slideshow templates and use the first one it finds
Instead of labeling the final output video "final.mp4", video title should use the .slideshow template name to avoid confusion when producing multiple videos
1/31 - 2/4
Added because too many temporary files generated by the process
Please rename repo to appbuilder-storybuilder. This will affect the generated binaries with #45.
As a user, I want to be able to add selected filters to each image such as zoom-in/out
Final product can include an option for generating an overlay video for comparison between a previously generated video and current iteration version to spot differences or bugs between the two.
1/30
As a user, I want to be able to see a log of how long the video creation process took
When -o or a more specific option is used, the temp folder where all the temporary videos generated are placed should be created separate from the current folder with the .slideshow. This is to avoid read-only folder issues
2/1 -
Could you add a license to the project? I would recommend the MIT License.
Here is the documentation on how to add a license from a template.
https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository
As a user, I want to be able to add selected filters to each image such as zoom-in/out
As a user, once a video is finished, the program will upload the video and subtitles to my YouTube channel
Software should include a flag to add a filepath to an output directory, defaulting to local folder
After testing, figured out that this happens when video contains empty audio (silent audio) at the end of the video. Then, it cannot add audio transitions between the two videos.
Solution:
Solved: Came up with new method that merges videos in one single ffmpeg command.
Update old fade function (used for older ffmpeg version) to first create individual videos and then merge them using just traditional fade.
Added after user study
1/24 - 1/30
Added because traditional transitions only do fade. xfade has a wide range of filters available, but only works for recent versions of ffmpeg
In the new slideshow, start/stop attributes were removed from the element. The values were from the original audio, not the resulting narration mp3 (the reason the start was 4360 was that it was the position in the original source full John 1 mp3). So it was not correct to include them in the .slideshow output.
Determine when you should start and stop the narration audio based on the durations of the slides.
As a user, I want to be able to see the log when the program is generating videos. So, when exceptions happen, I can deal with it immediately.
As a user, I want to be able to select an audio + timing file and a slideshow, then click a button/key that will combine both into a .mp4 video.
When creating a video our scale images function modifies the original images used which can cause issues if a lower quality video is being created. We need to alter the scaling to create separate copies of the images and store those in the temp folder to ensure we don't affect the template
As a user, I want to be able to run the same program multiple times at once.
As a user, I want to be able to produce a lower quality video to be uploaded to Scripture Earth
When code is run and .slideshow is parsed, all the template images/audios should be accessed based on the location of the .slideshow template, not the location of the executable.
Merging all the temporary videos in one single command is much faster than the previous merge method. It is also simpler to debug and understand.
As a user, I want to be able to share and run this process as an executable on any OS (Mac, Linux, Windows) even in a docker container.
As a user, I want to be able to add appropriate transitions between images
Code should include a "-h" option flag to display list of possible flags and their uses.
This is only partially parallel since it only parallelizes the diving part of the method.
Merging is not parallel.
Software should include a flag to prevent deletion of temporary files created during video production for debugging purposes
1/31 - 2/4
Added because result video is different than test videohttps://github.com//issues/39
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.