summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarle Bjørgeengen <jarle@bjorgeengen.net>2010-08-15 15:40:57 +0000
committerJarle Bjørgeengen <jarle@bjorgeengen.net>2010-08-15 15:40:57 +0000
commitaa3c24496c40e4d51a9632025f0b6c31d610189c (patch)
treecf5d0fd70606e9e9ee7f1bedc25e53c3b5f40865
parent1c38b19431f4524d544fbf9eaa24fe1286334f4c (diff)
* Extended with subtitle support, and dv generation from png intro screen (with silent soundtrack)
-rwxr-xr-xtools/gen_frikanalen_video.pl60
1 files changed, 55 insertions, 5 deletions
diff --git a/tools/gen_frikanalen_video.pl b/tools/gen_frikanalen_video.pl
index feb8e55..56fd6fd 100755
--- a/tools/gen_frikanalen_video.pl
+++ b/tools/gen_frikanalen_video.pl
@@ -2,8 +2,9 @@
# Script for adding start/end poster and convert to frikanalen acceptable avi format anamporphic PAL with pillarboxing
# Script is work in progress 2010-08-07 /JB
-# cat test.meta
# metafile format is like this:
+#
+# cat test.meta
# title1=Dette er Tittlelen
# title2=Dette er andre linje i Tittlelen
# title3=Dette er øæå 3. linje i Tittlelen
@@ -19,27 +20,33 @@ use Getopt::Std;
use File::Temp;
my %opts;
+my $intro_length = 2;
-getopts('m:o:b:', \%opts);
+getopts('i:m:o:b:s:e', \%opts);
my $metafile;
+my $srcfile;
+my $srtfile;
my $bgfile;
my $outputfile;
+my $workdir = "./fk-temp";
#foreach (keys %opts ) { print "$_\n"; };
-
+print "-";
if ( $opts{'m'} ) {
$metafile = $opts{'m'} ;
} else {
usage();
exit 1;
}
+print "-";
if ( $opts{'o'} ) {
$outputfile = $opts{'o'} ;
} else {
usage();
exit 1;
}
+print "-";
if ( $opts{'b'} ) {
$bgfile = $opts{'b'} ;
@@ -47,6 +54,26 @@ if ( $opts{'b'} ) {
usage();
exit 1;
}
+print "-";
+
+if ( $opts{'i'} ) {
+ $srcfile = $opts{'i'} ;
+} else {
+ usage();
+ exit 1;
+}
+print "-";
+
+if ( $opts{'s'} ) {
+ $srtfile = $opts{'s'} ;
+ print "Using subtitle file: $srtfile \n";
+}
+
+if ( -d $workdir ) {
+ `rm -rf $workdir`;
+}
+
+`mkdir $workdir`;
my $startposter = new File::Temp( UNLINK => 0, SUFFIX => '.png' );
my $startposter_name = $startposter->filename();
@@ -56,12 +83,14 @@ my $endposter_name = $endposter->filename();
$endposter->close();
my $meta = read_meta();
-create_startposter();
+#create_startposter();
+#gen_intro_dv($startposter_name,5,"$workdir/front-test.dv");
+gen_video_body($srcfile,"$workdir/body-test.dv");
#### Functions #########
sub usage {
- print"Usage: $0 -m metafile -o outputfile -b bgfile\n";
+ print"Usage: $0 -e -i input-dvfile [-s subtitle_file] -m metafile -o outputfile -b bgfile\n";
}
sub read_meta {
@@ -82,3 +111,24 @@ sub create_startposter {
print $f;
}
+sub gen_intro_dv {
+my $png_file = shift;
+my $length = shift;
+my $outputvid = shift;
+`ffmpeg -loop_input -t $length -i $png_file -f image2 -f s16le -i /dev/zero -target pal-dv -y $outputvid`;
+}
+
+sub gen_video_body {
+ my $source = shift;
+ my $dest = shift;
+ my $cmd = "mencoder -oac pcm -ovc lavc -lavcopts vcodec=dvvideo:vhq:vqmin=2:vqmax=2:vme=1:keyint=25:vbitrate=2140:vpass=1 ";
+ if ( $opts{'e'} ) {
+ $cmd .= "-vf-add expand=960::::: -vf-add scale=720:576 ";
+ }
+ if ( $srtfile ) {
+ $cmd .= " -sub $srtfile -utf8 ";
+ }
+ $cmd .= "-o $dest $source ";
+ print "Command= $cmd \n\n";
+ `$cmd`;
+}