Updated for Ubuntu 22.04. Also fixed merge videos cmin check
[videoscripts/.git] / organize_videos.conf
index 09b4a5f1524fde4960749c83e56c0da8cf652f12..14a2bd98ed5809d286bccba1855eabe4aa703a64 100644 (file)
 ################################################################################
 
 # Path to look for videos to move from
-$srcpathname = "/naspool/pictures/New Photos";
+$srcpathname = "/naspool/dropbox/New Memories";
 
 # Path to move the videos to
 $dstpathname = "/naspool/videos/HomeVideos";
 
+# Path to move the originals to
+$origpathname = "/naspool/dropbox/Originals";
+$originals_file_ext = qr/(mov|mp4)/i;
+#$originals_no_copy_brands = qr/mp42avc1/i; # Don't copy videos from camcorder to Originals because we keep these videos on those cards
+$originals_no_copy_brands = qr/none/i; # We no longer keep the cards
+$save_originals = 1;
+
+# Brands that store time as local vs UTC
+$local_tz_brands = qr/mp42avc1/i; # the camcorder sets the creation time to the local time with no timezone (so UTC), so treat them as local timestamps, not UTC timestamps
+
+# Path to a dir (or dirs separated by semis) to watch for videos to move to $srcpathname to be organized
+$watchpathname = "/naspool/cloud/alan/files/InstantUpload/Camera;/naspool/cloud/mary/files/InstantUpload/Camera;";
+
+# Path to nextcloud base dir where user dirs start
+$nextcloudbase = "/naspool/cloud/";
+
+# If there are file duplicates in srcpathname, should they be overwritten (assumes all files from phones will be named uniquely)
+$overwrite_dest = 1;
+
+# Path to nextcloud occ cmd script
+$occ = "/naspool/www/pippins.net/nextcloud.custom/occ.cmd";
+
 # Path to merge_videos_by_day script
 $merge_videos_by_day = "/naspool/videos/bin/merge_videos_by_day";
 
+# Flag to merge videos by modification date instead of the date parsed from the filename
+$merge_by_modification_date = 0;
+
 # Path to the make_mkv script
 $make_mkv = "/naspool/videos/bin/make_mkv";
 
 # mkvmerge path/command name
-$mkvmerge = 'mkvmerge';
+$mkvmerge = '/usr/bin/mkvmerge';
 
 # ffmpeg path/command name
-$ffmpeg = 'ffmpeg';
+$ffmpeg = '/usr/bin/ffmpeg';
+$ffprobe = '/usr/bin/ffprobe';
+$avconv = '/usr/bin/avconv';
 
 # handbrake path/command name
-$handbrake = 'HandBrakeCLI';
+$handbrake = '/usr/bin/HandBrakeCLI';
 
 # The pid file to use to indicate organize_videos is running
 $pid_file = "/tmp/organize_videos.pid";
@@ -44,6 +71,9 @@ $group = "pip";
 # The mode to set on each file after they are moved
 $mode = "664";
 
+# The mode to set on each directory after they are created
+$dirmode = "2775";
+
 # The extension to use when creating playlist files
 $playlist_extension = "pls";
 
@@ -52,36 +82,38 @@ $video_suffix = "000";
 
 # Which movie file extensions should be considered for merging
 # NOTE: Script does not support merging multiple mkv files into a single mkv file
-$movie_file_ext = "-iregex \".*\.mov\" -o -iregex \".*\.3gp\" -o -iregex \".*\.mp4\" -o -iregex \".*\.mts\" -o -iregex \".*\.m4v\"";
+$movie_file_ext = "-iregex \".*\.mov\" -o -iregex \".*\.3gp\" -o -iregex \".*\.avi\" -o -iregex \".*\.mp4\" -o -iregex \".*\.mpg\" -o -iregex \".*\.mts\" -o -iregex \".*\.m4v\"";
+
+# Which movie file extensions should not be recompressed for merging
+$no_recompress_file_ext = qr/\.(mp4)$/i;
 
 # Video file creation dates must not have changed in the last X minutes to process any of the video files
 # This is done to ensure that all videos from a given upload from a camera have completed prior to looking for videos to merge
-$minage = "+30";
+$minage = "+60";
 
-# What command should be used to find files that have changed (are at least $minage old) 
-$find_changed_cmd = "find  \"$srcpathname/\" -not -cmin $minage -a \\( $movie_file_ext \\)";
+# What command should be used to find files by move_videos_from_watchdir that have changed (are at least X minutes old) 
+$find_changed_cmd = "find  \"$srcpathname/\" -not -cmin +5 -a \\( $movie_file_ext \\)";
 
 # What command should be used to find all movie files
 $find_cmd = "find \"$srcpathname/\" $movie_file_ext";
 $find_cmd_with_mkv = "find \"$srcpathname/\" $movie_file_ext -o -iregex \".*\.mkv\"";
+$find_mkv = "find \"$srcpathname/\" -iregex \".*\.mkv\"";
 
-# Set the tmpfile to use
-$tmpfile = `tempfile`; chomp($tmpfile);
+# Set the tmpfile to use, but remove the 0 byte file it creates, we'll create it if we need it
+$tmpfile = `mktemp`; chomp($tmpfile); unlink "$tmpfile";
 
 # Set the timezone to use
 $timezone = `cat /etc/timezone`; chomp($timezone);
 
 # handbrake options used when re-encoding the videos
-$handbrake_options='--strict-anamorphic --crop 0:0:0:0 -E ac3';
-
-# tmp chapter file used by handbrake when creating mkv
-$chapter_file = $tmpfile;
+$handbrake_requantize_options='--auto-anamorphic --crop 0:0:0:0 -E ac3';
+$handbrake_recompress_options='--auto-anamorphic --crop 0:0:0:0 --denoise="weak" -e x264 -q 18 -x b-adapt=2:rc-lookahead=50 -v 2 -a 1 -6 dpl2 --preset="HQ 1080p30 Surround"';
 
 # handbrake input file options
 $input_file_options = "-S";
 
 # handbrake output file options
-$output_file_options = "--chapters $chapter_file --compression -1:none";
+$output_file_options = "--compression -1:none";
 
 # handbrake quantization levels
 $interlaced_requantize_quality=0.85;
@@ -91,10 +123,11 @@ $progressive_requantize_quality=0.75;
 $compute_host = "pippin.pippins.net";
 
 # Set to 1 to use a remote compute host to run the mkvmerge command. Set to 0 to use the local host to run it.
-$use_compute_host = 1;
+$use_compute_host = 0;
 
 # This will dramatically decrease the size of the video with minimal compute processing requirements.
-$requantize_input_video=1; 
+$requantize_input_video=0; 
+$recompress_input_video=1;
 
 # What text to put on the front of the title for the merged video being created
 $video_title_prefix = "HomeVideos:";