Updated for Ubuntu 22.04. Also fixed merge videos cmin check
[videoscripts/.git] / merge_all_new_mpg_clips.pl
1 #!/usr/bin/perl
2
3 $mpg_dir   = "/home/pictures";
4 $video_dir = "/home/videos/HomeVideos"; 
5
6 opendir(DIR, "$mpg_dir");
7 @year_dirs = grep { /\d\d\d\d/ } readdir(DIR);
8 closedir(DIR);
9 chdir $mpg_dir;
10
11 foreach $year_dir (sort @year_dirs) {
12     chdir "$mpg_dir/$year_dir";
13     #print "Parsing $mpg_dir/$year_dir\n";
14     opendir(DIR, "$mpg_dir/$year_dir");
15     @month_dirs = readdir(DIR);
16     closedir(DIR);
17     foreach $month_dir (sort @month_dirs) {
18         chdir "$mpg_dir/$year_dir/$month_dir";
19         #print "Parsing $year_dir/$month_dir\n";
20         opendir(DIR, "$mpg_dir/$year_dir/$month_dir");
21         @mpg_files = grep { /\.mpg|\.MPG/ } readdir(DIR);
22         closedir(DIR);
23         foreach $mpg_file (sort @mpg_files) {
24             #print "Found $year_dir/$month_dir/$mpg_file\n";
25             $mpg_file =~ /(\d\d)(\w\w\w)/; $day = $1;
26             $month_dir =~ /(\d\d)/; $month = $1;
27             $year = $year_dir;
28             $merged_file = "$video_dir/$year/$year-$month-$day.mpg";
29             $new_merged_file = "$merged_file.new";
30             if(-e "$merged_file") { next; }
31             if(-e "$new_merged_file") {
32                 print "Merging $mpg_file with $new_merged_file\n";
33                 #print "/usr/bin/mpgtx -j $new_merged_file $mpg_file -o $new_merged_file.tmp\n";
34                 #print "mv \"$new_merged_file.tmp\" \"$new_merged_file\"\n";
35                 system("/usr/bin/mpgtx -j \"$new_merged_file\" \"$mpg_file\" -o \"$new_merged_file.tmp\"");
36                 system("mv \"$new_merged_file.tmp\" \"$new_merged_file\"");
37                 $new_files{$new_merged_file} = 1;
38             } else {
39                 print "Merging $mpg_file with $new_merged_file\n";
40                 #print "cp $mpg_file $new_merged_file\n";
41                 system("cp \"$mpg_file\" \"$new_merged_file\"");
42                 $new_files{$new_merged_file} = 1;
43             }
44         }
45     }
46 }
47
48 foreach $file (keys %new_files) {
49     $newfile = $file;
50     $newfile =~ s/\.new//g;
51     #print "mv $file $newfile\n";
52     system("mv $file $newfile");
53 }
54
55
56