Fixed various bugs in video copy and merge scripts
[videoscripts/.git] / organize_videos.conf
1 # Force Emacs Perl Mode
2 # Local Variables: 
3 # mode: perl 
4 # End:
5
6 ################################################################################
7 # This is a perl module included by the perl scripts for this application.
8 # You must modify these values to match your system configuration.
9 # Create a new file called "organize_videos.conf.local" in the same dir as "organize_videos.conf"
10 # and only put in it the variables you wish to override.
11 # This will prevent your localized settings from being overwritten by future code updates.
12 ################################################################################
13
14 # Path to look for videos to move from
15 $srcpathname = "/naspool/dropbox/New Memories";
16
17 # Path to move the videos to
18 $dstpathname = "/naspool/videos/HomeVideos";
19
20 # Path to move the originals to
21 $origpathname = "/naspool/dropbox/Originals";
22 $originals_file_ext = qr/(mov|mp4)/i;
23 $originals_no_copy_brands = qr/mp42avc1/i; # Don't copy videos from camcorder to Originals because we keep these videos on those cards
24 $save_originals = 1;
25
26 # Path to a dir (or dirs separated by semis) to watch for videos to move to $srcpathname to be organized
27 $watchpathname = "/naspool/cloud/alan/files/InstantUpload/Camera;/naspool/cloud/mary/files/InstantUpload/Camera;";
28
29 # Path to nextcloud base dir where user dirs start
30 $nextcloudbase = "/naspool/cloud/";
31
32 # If there are file duplicates in srcpathname, should they be overwritten (assumes all files from phones will be named uniquely)
33 $overwrite_dest = 1;
34
35 # Path to nextcloud occ cmd script
36 $occ = "/naspool/www/pippins.net/nextcloud.custom/occ.cmd";
37
38 # Path to merge_videos_by_day script
39 $merge_videos_by_day = "/naspool/videos/bin/merge_videos_by_day";
40
41 # Flag to merge videos by modification date instead of the date parsed from the filename
42 $merge_by_modification_date = 0;
43
44 # Path to the make_mkv script
45 $make_mkv = "/naspool/videos/bin/make_mkv";
46
47 # mkvmerge path/command name
48 $mkvmerge = '/usr/bin/mkvmerge';
49
50 # ffmpeg path/command name
51 $ffmpeg = '/usr/bin/ffmpeg';
52 $ffprobe = '/usr/bin/ffprobe';
53 $avconv = '/usr/bin/avconv';
54
55 # handbrake path/command name
56 $handbrake = '/usr/bin/HandBrakeCLI';
57
58 # The pid file to use to indicate organize_videos is running
59 $pid_file = "/tmp/organize_videos.pid";
60
61 # The owner of the files after they are moved
62 $owner = "ajp";
63
64 # The group of the files after they are moved
65 $group = "pip";
66
67 # The mode to set on each file after they are moved
68 $mode = "664";
69
70 # The mode to set on each directory after they are created
71 $dirmode = "2775";
72
73 # The extension to use when creating playlist files
74 $playlist_extension = "pls";
75
76 # What number to start with when adding an incrementing suffix to the end of the final video clip to avoid name collisions
77 $video_suffix = "000";
78
79 # Which movie file extensions should be considered for merging
80 # NOTE: Script does not support merging multiple mkv files into a single mkv file
81 $movie_file_ext = "-iregex \".*\.mov\" -o -iregex \".*\.3gp\" -o -iregex \".*\.avi\" -o -iregex \".*\.mp4\" -o -iregex \".*\.mpg\" -o -iregex \".*\.mts\" -o -iregex \".*\.m4v\"";
82
83 # Which movie file extensions should not be recompressed for merging
84 $no_recompress_file_ext = qr/\.(mp4)$/i;
85
86 # Video file creation dates must not have changed in the last X minutes to process any of the video files
87 # This is done to ensure that all videos from a given upload from a camera have completed prior to looking for videos to merge
88 $minage = "+60";
89
90 # What command should be used to find files that have changed (are at least $minage old) 
91 $find_changed_cmd = "find  \"$srcpathname/\" -not -cmin $minage -a \\( $movie_file_ext \\)";
92
93 # What command should be used to find all movie files
94 $find_cmd = "find \"$srcpathname/\" $movie_file_ext";
95 $find_cmd_with_mkv = "find \"$srcpathname/\" $movie_file_ext -o -iregex \".*\.mkv\"";
96 $find_mkv = "find \"$srcpathname/\" -iregex \".*\.mkv\"";
97
98 # Set the tmpfile to use, but remove the 0 byte file it creates, we'll create it if we need it
99 $tmpfile = `tempfile`; chomp($tmpfile); unlink "$tmpfile";
100
101 # Set the timezone to use
102 $timezone = `cat /etc/timezone`; chomp($timezone);
103
104 # handbrake options used when re-encoding the videos
105 $handbrake_requantize_options='--auto-anamorphic --crop 0:0:0:0 -E ac3';
106 $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"';
107
108 # handbrake input file options
109 $input_file_options = "-S";
110
111 # handbrake output file options
112 $output_file_options = "--compression -1:none";
113
114 # handbrake quantization levels
115 $interlaced_requantize_quality=0.85;
116 $progressive_requantize_quality=0.75;
117
118 # Remote compute host to farm handbrake encode job off to (I need this since this script is run from a virtual machine)
119 $compute_host = "pippin.pippins.net";
120
121 # 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.
122 $use_compute_host = 0;
123
124 # This will dramatically decrease the size of the video with minimal compute processing requirements.
125 $requantize_input_video=0; 
126 $recompress_input_video=1;
127
128 # What text to put on the front of the title for the merged video being created
129 $video_title_prefix = "HomeVideos:";
130
131 ####################################################################################################