From 7a7a9af57a9e57a3f4cca16d3e43c75673018dfb Mon Sep 17 00:00:00 2001 From: langfingaz Date: Wed, 23 Sep 2020 19:51:42 +0200 Subject: [PATCH] initial commit --- README.md | 24 ++++++++++ install.sh | 65 ++++++++++++++++++++++++++ screenshot_main-gui.jpeg | Bin 0 -> 31356 bytes screenshot_start-app.jpeg | Bin 0 -> 26663 bytes screenshot_success.jpeg | Bin 0 -> 22332 bytes splitVideo | 60 ++++++++++++++++++++++++ splitVideoGUI | 93 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 242 insertions(+) create mode 100644 README.md create mode 100755 install.sh create mode 100644 screenshot_main-gui.jpeg create mode 100644 screenshot_start-app.jpeg create mode 100644 screenshot_success.jpeg create mode 100755 splitVideo create mode 100755 splitVideoGUI diff --git a/README.md b/README.md new file mode 100644 index 0000000..b76e336 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# SplitVideo + +## Usage + +Start the app via desktop entry: + +![](screenshot_start-app.jpeg) + +In the main window, select a source video and enter the time at which you want to split the video into two pieces. The original file will not be modified. + +![](screenshot_main-gui.jpeg) + +You will be informed in a small message window when the conversation is done and there will be two new files (with an appended prefix) next to your source video: + +![](screenshot_success.jpeg) + +## TODO + +* `splitVideoGUI` + - ckeck if `yad` is installed +* `splitVideo` + - check if `ffmpeg` is installed + +* check dependencies in `install.sh` \ No newline at end of file diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..a058ed1 --- /dev/null +++ b/install.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# installation directory (should be included in your PATH variable) +PROGRAM_DIR="/usr/local/bin" +# base path where files to install are located +FILE_LOCATION="." +# names of files to install +# The LAST file must be the executable (with GUI) +FILE_NAMES=( "splitVideo" "splitVideoGUI" ) +# .desktop directory +DESKTOP_DIR="/usr/share/applications" + + + +function createDesktopEntry(){ + + # .desktop categories: + # https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry + + printf "Creating desktop entry for executable %s\n" "$PROGRAM_DIR/${FILE_NAMES[-1]}" + +cat < "$DESKTOP_DIR/${FILE_NAMES[-1]}.desktop" +[Desktop Entry] +Version=1.0 +Name=SplitVideo +Comment=Splits a video up in two parts at specific time +Categories=AudioVideo;Video;Utility; +Exec=${FILE_NAMES[-1]} +Icon=yad +Terminal=false +Type=Application +StartupNotify=true +EOF +} + +function validateDesktopEntry(){ + printf "\n========= Validating Desktop Entry =========\n\n" + desktop-file-validate "$DESKTOP_DIR/${FILE_NAMES[-1]}.desktop" + printf "========= ======================== =========\n\n" +} + +function main(){ + # copy files to /usr/local/bin + # and make them executable + + for FILE_NAME in "${FILE_NAMES[@]}"; do + cp "$FILE_LOCATION/$FILE_NAME" "$PROGRAM_DIR" || exit "$?" + chmod +x "$PROGRAM_DIR/$FILE_NAME" || exit "$?" + done + + createDesktopEntry || exit "$?" + + # update desktop entries + # https://wiki.archlinux.org/index.php/Desktop_entries#Update_database_of_desktop_entries + update-desktop-database "$DESKTOP_DIR" + + # validate desktop entry + # https://wiki.archlinux.org/index.php/Desktop_entries#Validation + validateDesktopEntry + + echo "Installation was successfull" + return 0 +} + +main "$@" diff --git a/screenshot_main-gui.jpeg b/screenshot_main-gui.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f2ba9886e2f1954c546f326affbf991fda019f88 GIT binary patch literal 31356 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𝔷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 HaChV%5uSR+ literal 0 HcmV?d00001 diff --git a/screenshot_success.jpeg b/screenshot_success.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..55689009a67b8803f972e6b3d3d7855420a4b7fb GIT binary patch literal 22332 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 literal 0 HcmV?d00001 diff --git a/splitVideo b/splitVideo new file mode 100755 index 0000000..d3be701 --- /dev/null +++ b/splitVideo @@ -0,0 +1,60 @@ +#!/bin/bash + +function split(){ + local src="$1" + local dst="$2" + local start="$3" + local duration="$4" + + # ffmpeg param "-n" + # Do not overwrite output files, and exit immediately if + # a specified output file already exists. + + + if [ "$4" -gt 0 ] ; then + # Take section from (start) to (start + duration) + ffmpeg -n -i "${src}" -ss "$start" -t "${duration}" -c copy "${dst}" + errno="$?" + else + # $4 is empty or <1 + # Take section from (start) until (end of video) + ffmpeg -n -i "${src}" -ss "$start" -c copy "${dst}" + errno="$?" + fi + + return "$errno" +} + +function isPositiveInt(){ + # https://stackoverflow.com/a/3951175/6334421 + case "$1" in + ''|*[!0-9]*) return 1 ;; + *) return 0 ;; + esac +} + +function main(){ + # TODO: check if ffmpeg installed + + local source="$1" + local seconds="$2" + + # if args are empty -> cancel + if [ "$#" -ne 2 ] || [ -z "$1" ] || [ -z "$2" ] ; then + echo "Error: Expected two non-empty arguments!" + echo "usage: $0 " + exit 1 + fi + + if ! isPositiveInt "$2" ; then + echo "2nd arg must be positive integer" + return 2 + fi + + split "$source" "${source}_a.mkv" "0" "$seconds" || exit "$?" + split "$source" "${source}_b.mkv" "$seconds" + exit "$?" +} + +main "$@" + diff --git a/splitVideoGUI b/splitVideoGUI new file mode 100755 index 0000000..3948ab4 --- /dev/null +++ b/splitVideoGUI @@ -0,0 +1,93 @@ +#!/bin/bash + +# +# Thanks to ... +# the guys at puri.sm for their article about yad: +# * [https://wp.puri.sm/posts/easy-librem-5-app-development-take-a-screenshot/]() +# +# as well as this website: +# * http://smokey01.com/yad/ +# + + +function doStuff(){ + # :param $1: user-input + + # Parse user input + + SRC=`echo $1 | cut -d '|' -f1` + H=`echo $1 | cut -d '|' -f2` + M=`echo $1 | cut -d '|' -f3` + S=`echo $1 | cut -d '|' -f4` + + # Print input to stdout + + printf "SRC:\t%s\n" "$SRC" + printf "Time:\t%s:%s:%s\n" "$H" "$M" "$S" + + # Calculate time in seconds + # H(ours) + M(inutes) + S(econds) -> S(econds) + + HS="$(( 3600 * $H ))" + MS="$(( 60 * $M ))" + S="$(( $HS + $MS + $S ))" + + printf "Seconds: %s\n" "$S" + + # Split Video at specific time + + splitVideo "$SRC" "$S" + errno="$?" + + # inform user of result + + case "$errno" in + "0") + TITLE="SUCCESS" + TEXT="Done! Check out the _a.mkv and _b.mkv files next to your input file." + ;; + *) + TITLE="ERROR" + TEXT="An error occured with code $errno." + ;; + esac + echo "$TEXT" | yad --title="$TITLE" --wrap --text-info + + # return exitCode of splitVideo + return "$errno" +} + +function main(){ + # TODO check if yad installed + + # Get user input via yad (GUI) + + INPUT=`yad --title "splitVideo" --text="Split video at specific time" --form \ + --field=video:SFL \ + --field=hours:NUM \ + --field=minutes:NUM \ + --field=seconds:NUM \ + "splitMeUp.mp4" "1" "15" "5" --focus-field=1` + + case "$?" in + "0") + echo "User pressed 'OK'" + doStuff "$INPUT" + exit "$?" + ;; + "1") + echo "User pressed 'cancel'" + exit 0 + ;; + "252") + echo "User closed window." + exit 0 + ;; + *) + echo "An unexpected error has occurred: Code $?" + exit 1 + ;; + esac +} + +main "$@"