Script via Doppelklick :
1. Eine.Desktop Datei erstellt die auf das aufzurufende Script verweist :
[Desktop Entry] Type=Application Name=ToZeroCompareVideo.sh Exec=/home/user/Videos/vivictpp/ToZeroCompareVideo.sh Terminal=true
2. Teile des Scripts :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash declare -a new_videos while IFS= read -r -d $'\0' video do filename=$(basename -- "$video") filename="${filename%.*}" #ffmpeg grep, s.: https://stackoverflow.com/questions/16931244/checking-if-output-of-a-command-contains-a-certain-string-in-a-shell-script if ffmpeg -i "$video" null - 2>&1 | grep -q "hevc"; #if ffmpeg -i "$video" null - 2>&1 | grep -q "h264"; then ffmpeg -y -i "$video" -codec copy -muxpreload 0 -muxdelay 0 -t 00:10:00.000 "${filename}0.mp4" </dev/null new_video="${filename}0.mp4" new_videos+=("$new_video") else ffmpeg -y -i "$video" -codec copy -muxpreload 0 -muxdelay 0 -t 00:10:00.000 "${filename}O0.mp4" </dev/null new_video="${filename}O0.mp4" new_videos+=("$new_video") fi done < <(find -iregex ".*\.\(m2ts\|webm\|ts\|mkv\|mp4\)" -print0) ... |
Die .Desktop Datei wurde auf den Desktop kopiert und dort ausgeführt.
Leider findet es alle Video Dateien im Home-Verzeichnis, einschließlich aller Unterordner,
und nicht nur die im "Exec=/home/user/Videos/vivictpp/ToZeroCompareVideo.sh" - Verzeichnis.
Wie begrenzt man die "read" Operation auf das Verzeichnis : "/home/user/Videos/vivictpp/" ?
Nebenbei : Wenn ich ein Script (Video-Kontext) im "Nautilus-Verzeichnis Schreibtisch" ausführe, findet es keine Datei.
Wenn ich das Script auf dem Desktop ausführe, findet es alle Videos in /home.