# Sanity check
if(! -d $srcpathname) { print "-E- Can't find srcpath: $srcpathname\n"; exit 1; }
-if(! -d $watchpathname) { print "-E- Can't find watchpath: $watchpathname\n"; exit 1; }
getopts("hfvt");
# Sanity checks / Option processing
if(defined $opt_h) { usage(); exit 1; }
-# Our srcpathname is actually our dstpathname
-$find_changed_cmd =~ s/$srcpathname/$watchpathname/g;
-$find_cmd_with_mkv =~ s/$srcpathname/$watchpathname/g;
-$dstpathname = $srcpathname;
-$srcpathname = $watchpathname;
-
-# Only proceed if no files have changed in the past $cmin minutes
-$changed_files_found=`$find_changed_cmd`;
-if(!$opt_f && $changed_files_found) { exit 0; }
-
-# Only proceed if there are video files to organize
-$video_files_found=`$find_cmd_with_mkv`;
-if(!$video_files_found) { exit 0; }
-
# Only one instance of this script running at a time
my $pidfile = File::Pid->new({file => "$pid_file", pid => "$$"});
print "pid_file: $pid_file\n" if($opt_v);
exit if $pidfile->running();
$pidfile->write();
-# Print the date
-system("date");
-
-# Merge videos prior to copying them over to the destination path
-my $errno = 0;
-
-# Move the videos over to the destination path
-chdir "$srcpathname";
-print "$video_files_found\n" if($opt_v);
-foreach $file (`$find_cmd_with_mkv`) {
-
- chomp($file);
- $srcdir = dirname($file);
- $file = basename($file);
- $srcfile = $file;
- $dstfile = "$dstpathname/$file";
-
- # only move files that have been organized
- if($srcfile !~ /\d\d\d\d-\d\d-\d\d/) { next; }
+print "watchpathname: $watchpathname\n" if($opt_v);
+foreach $watchpath (split(';', $watchpathname)) {
+ if(! -d $watchpath) { print "-E- Can't find watchpath: $watchpath\n"; exit 1; }
+ print "checking $watchpath\n" if($opt_v);
- print "-> Moving \"$srcdir/$srcfile\" to \"$dstfile\"\n";
-
- if(!defined $opt_t) {
- # Make sure the dstfile doesn't exist, if it does, don't do the move
- if(! -f "$dstfile") {
- $errno=system("mv \"$srcdir/$srcfile\" \"$dstfile\" 2>/dev/null");
- if($errno) { print "-E- Error moving srcfile to dstfile: $srcdir/$srcfile -> $dstfile\n"; next; }
- } else {
- print "-> Skipping \"$srcdir/$srcfile\". Destfile \"$dstfile\" already exists.\n";
+ # Our srcpathname is actually our dstpathname
+ $new_find_changed_cmd = $find_changed_cmd;
+ $new_find_cmd_with_mkv = $find_cmd_with_mkv;
+ $new_find_changed_cmd =~ s/$srcpathname/$watchpath/g;
+ $new_find_cmd_with_mkv =~ s/$srcpathname/$watchpath/g;
+ $dstpathname = $srcpathname;
+
+ # Only proceed if no files have changed in the past $cmin minutes
+ $changed_files_found=`$new_find_changed_cmd`;
+ print "finding videos: $new_find_changed_cmd\n" if($opt_v);
+ if(!$opt_f && $changed_files_found) { next; }
+
+ # Only proceed if there are video files to organize
+ $video_files_found=`$new_find_cmd_with_mkv`;
+ print "finding videos: $new_find_cmd_with_mkv\n" if($opt_v);
+ if(!$video_files_found) { next; }
+
+ # Print the date
+ system("date");
+ my $errno = 0;
+
+ # Move the videos over to the destination path
+ chdir "$watchpath";
+ print "found: $video_files_found\n" if($opt_v);
+ foreach $file (`$new_find_cmd_with_mkv`) {
+
+ chomp($file);
+ $srcdir = dirname($file);
+ $file = basename($file);
+ $srcfile = $file;
+ $dstfile = "$dstpathname/$file";
+
+ # Make sure we have a unique dstfile
+ if(-f "$dstfile") {
+ $video_ext = $srcfile;
+ $video_ext =~ s/.*\.(\S+)$/$1/;
+ $suffix = 0;
+ $newdstfile_base = $dstfile;
+ $newdstfile_base =~ s/\.[^.]*$//;
+ do {
+ $newdstfile = "${newdstfile_base}_${suffix}.${video_ext}";
+ $suffix++;
+ } while(-f "$newdstfile");
+ $dstfile = $newdstfile;
+ }
+
+ print "-> Moving \"$srcdir/$srcfile\" to \"$dstfile\"\n";
+
+ if(!defined $opt_t) {
+ # Make sure the dstfile doesn't exist, if it does, add a unique number to the end
+ if(! -f "$dstfile") {
+ $errno=system("mv \"$srcdir/$srcfile\" \"$dstfile\" 2>/dev/null");
+ if($errno) { print "-E- Error moving srcfile to dstfile: $srcdir/$srcfile -> $dstfile\n"; next; }
+ } else {
+ print "-E- Unable to mv $srcdir/$srcfile -> $dstfile because it already exists\n";
+ }
+ # Fix the permissions
+ system("chown $owner \"$dstfile\"");
+ system("chgrp $group \"$dstfile\"");
+ system("chmod $mode \"$dstfile\"");
}
- # Fix the permissions
- system("chown $owner \"$dstfile\"");
- system("chgrp $group \"$dstfile\"");
- system("chmod $mode \"$dstfile\"");
}
}
-
+
$pidfile->remove();
-print "\n\n";
+#print "\n\n";
$originals_file_ext = qr/(mov|mp4)/i;
$save_originals = 1;
-# Path to a dir to watch for videos to move to $srcpathname to be organized
-$watchpathname = "/naspool/pictures/mylio";
+# 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 merge_videos_by_day script
$merge_videos_by_day = "/naspool/videos/bin/merge_videos_by_day";
$timezone = `cat /etc/timezone`; chomp($timezone);
# handbrake options used when re-encoding the videos
-$handbrake_requantize_options='--strict-anamorphic --crop 0:0:0:0 -E ac3';
-$handbrake_recompress_options='--strict-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="High Profile"';
+$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";