That was awesome.
Anri-chan is a great tool and all, but would it be possible to have it add some kind of IDv3 tags or somesuch to the videos? I'm an organization freak and tags are a big help for sorting and stuff.
sub audio_commentary { &out_cls_section($lang{SECTION_AUDIO_COMMENTARY}); &echo(""); &out_info($lang{COMMENTARY_AUDIO_PATH_TO}); &echo(""); print $prompt; while (<STDIN>) { chomp; #error codes' precedence is descending, e.g. empty string is first because it is the most serious error if ($_ eq '') { $errormsg=$lang{COMMENTARY_BAD_INPUT}; } elsif (!m/.*\.wav$/i) { $errormsg=$lang{COMMENTARY_NOT_WAV}; } elsif (! -e $_) { $errormsg=$lang{FILE_NOT_FOUND}; } else { $audio_commentary_path = $_; &out_info($lang{COMMENTARY_AUDIO_LOADED_SUCCESSFULLY}); &echo(""); last; } &out_error($errormsg); print $prompt; } &out_info($lang{COMMENTARY_VIDEO_PATH_TO}); &echo(""); print $prompt; while (<STDIN>) { chomp; #error codes' precedence is descending, e.g. empty string is first because it is the most serious error if ($_ eq '') { $errormsg=$lang{COMMENTARY_BAD_INPUT}; } elsif (!m/.*\.mp4$/i) { $errormsg=$lang{COMMENTARY_NOT_MP4}; } elsif (! -e $_) { $errormsg=$lang{FILE_NOT_FOUND}; } else { $video_commentary_path = $_; &out_info($lang{COMMENTARY_VIDEO_LOADED_SUCCESSFULLY}); &echo(""); last; } &out_error($errormsg); print $prompt; } #BUILD PATH INFO @video_commentary_path_arr = split(/\\|\//,$video_commentary_path); $video_commentary_video = pop @video_commentary_path_arr; $video_commentary_video_base = $video_commentary_video; $video_commentary_video_base =~ s/\.mp4$//i; chdir(join('/',@video_commentary_path_arr)) or warn $!; #ENCODE AUDIO TO 32 KBIT AAC MP4 if ($os eq 'windows') { if(system("\"${anri_dir}/${naac}\" -br 32000 -lc -if \"${audio_commentary_path}\" -of \"${video_commentary_video_base}_track3.mp4\"")) { &out_error($lang{ERROR_COULD_NOT_READ_COMMENTARY_WAV}); system($reset_color); <STDIN>; exit 0; } } else { ###FIXME UNIX } #MUX if ($os eq 'windows') { system("\"${anri_dir}/${mp4box}\" -single 1 \"${video_commentary_video}\""); system("\"${anri_dir}/${mp4box}\" -single 2 \"${video_commentary_video}\""); &mv("${video_commentary_video}","${video_commentary_video_base}.backup.mp4"); system("\"${anri_dir}/${mp4box}\" -tmp . -new -add \"${video_commentary_video_base}_track1.mp4\" -add \"${video_commentary_video_base}_track2.mp4\" -add \"${video_commentary_video_base}_track3.mp4\" -disable 3 \"${video_commentary_video}\""); for my $track (1..3) { &rm("${video_commentary_video_base}_track${track}.mp4"); } } else { #FIXME UNIX #system("export DYLD_LIBRARY_PATH=\"${anri_dir}\";\"${anri_dir}/${mp4box}\" ${mp4boxnewframerate} -tmp . -new -add \"${_[1]}_video.${x264outext}\" -add \"${_[1]}_audio.${audioext}\" \"${_[1]}.mp4\""); } &echo("\n\n${white_on_gray}$lang{AUDIO_COMMENTARY_DONE}"); system($reset_color); <STDIN>; exit 0; }
use LWP::UserAgent; sub getWebPage{ my ($url)=@_; my $ua = new LWP::UserAgent; $ua->agent("Mozilla/8.0"); # pretend we are very capable browser my $res = $ua->get($url); if ($res->is_success) { my $content = $res->content; return $content; } else { print "Error: " . $res->status_line . "\n"; } }