#! /usr/bin/perl use strict; use warnings; use File::Basename; use Cwd; use DateTime; use DateTime::Set; use DateTime::Event::Recurrence; use DateTime::Event::Sunrise; # get working dir my $dir = getcwd; my $dirname = basename($dir); # extract date from dir name my $year = substr($dirname, 0, 4); my $month = substr($dirname, 4, 2); my $day = substr($dirname, 6, 2); # make a new datetime object my $dt = DateTime->new( year => $year, month => $month, day => $day, time_zone => 'America/Los_Angeles', ); # sunrise & sunset my $sunrise = DateTime::Event::Sunrise ->sunrise ( longitude => '-122', latitude => '47.6', altitude => '-0.833', iteration => '1' ); my $sunset = DateTime::Event::Sunrise ->sunset ( longitude => '-122.3', latitude => '47', altitude => '-0.833', iteration => '1' ); my $srise = $sunrise->current( $dt ); my $sriseearly = $sunrise->current($dt); $sriseearly->add(minutes => -30); my $riseearly = $sriseearly->hms(""); my $sset = $sunset->current( $dt ); my $ssetlate = $sunset->current( $dt ); $ssetlate->add(minutes => 30); my $setlate = $ssetlate->hms(""); # number to start at my $num_start = $riseearly; my $num_end = $setlate; # make a dir? if (!-e "links") { mkdir "links"; } # jpeg files my @files = `ls *.jpg`; # start at 0 my $i = 0; # for each image file foreach my $file (@files) { # chomp the NL chomp $file; my @filenum = split(/\./, $file); my $num = $filenum[0]; if (($num > $num_start) && ($num < $num_end)) { # increment the counter $i++; # if (!-l "links/$num.jpg") { print "ln -s ../$file links/$i.jpg\n"; system "ln -s ../$file links/$i.jpg"; } } } # ffmpeg chdir "links"; print "ffmpeg -y -f image2 -i %d.jpg /home/phurvitz/camera/videos/$dirname.mpg\n"; system "ffmpeg -y -f image2 -i %d.jpg $dirname.mpg"; chdir "..";