X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=avi2swf%2Favi2swf.cc;h=c68fedbbca3e0566260f60ac8f8d04022df749f2;hp=7f6efe0251c2286d096e0731b9935e13f4c84abd;hb=2c719855eac434f01d47ba0717d76de65939d74e;hpb=1b25c07d9d83006a693a956b962f80935e86aac3 diff --git a/avi2swf/avi2swf.cc b/avi2swf/avi2swf.cc index 7f6efe0..c68fedb 100644 --- a/avi2swf/avi2swf.cc +++ b/avi2swf/avi2swf.cc @@ -48,6 +48,8 @@ static int skip = 0; static float audio_adjust = 0; static int mp3_bitrate = 32; static int samplerate = 11025; +static int numframes = 0; +static char* skipframes = 0; static struct options_t options[] = { {"h", "help"}, @@ -56,10 +58,11 @@ static struct options_t options[] = { {"n", "num"}, {"m", "mp3-bitrate"}, {"r", "mp3-samplerate"}, -{"d", "scale"}, -{"k", "keyframe"}, +{"s", "scale"}, +{"S", "skipframes"}, {"p", "flip"}, {"q", "quality"}, +{"k", "keyframe"}, {"x", "extragood"}, {"T", "flashversion"}, {"V", "version"}, @@ -76,6 +79,14 @@ int args_callback_option(char*name,char*val) outputfilename = val; return 1; } + else if(!strcmp(name, "n")) { + numframes = atoi(val); + return 1; + } + else if(!strcmp(name, "d")) { + scale = atof(val); + return 1; + } else if(!strcmp(name, "q")) { quality = atoi(val); if(quality<0) @@ -110,7 +121,7 @@ int args_callback_option(char*name,char*val) } else if(!strcmp(name, "m")) { mp3_bitrate = atoi(val); - return 0; + return 1; } else if(!strcmp(name, "r")) { samplerate = atoi(val); @@ -131,6 +142,10 @@ int args_callback_option(char*name,char*val) skip = atoi(val); return 1; } + else if(!strcmp(name, "C")) { + skipframes = strdup(val); + return 1; + } else if(!strcmp(name, "s")) { scale = atoi(val)/100.0; if(scale>1.0 || scale<=0) { @@ -157,9 +172,11 @@ void args_callback_usage(char *name) printf("-n , --num frames Number of frames to encode\n"); printf("-m , --mp3-bitrate Set the mp3 bitrate to encode audio with\n"); printf("-r , --mp3-samplerate Set the mp3 samplerate to encode audio with (default: 11025)\n"); - printf("-d , --scale Scale down to factor . (in %, e.g. 100 = original size)\n"); + printf("-s , --scale Scale down to factor . (in %, e.g. 100 = original size)\n"); + printf("-S , --skipframes Skip frames before starting the conversion.\n"); printf("-p , --flip Turn movie upside down\n"); printf("-q , --quality Set the quality to . (0-100, 0=worst, 100=best, default:80)\n"); + printf("-k , --keyframe Set the number of intermediate frames between keyframes.\n"); printf("-x , --extragood Enable some *very* expensive compression strategies.\n"); printf("-T , --flashversion Set output flash version to .\n"); printf("-V , --version Print program version and exit\n"); @@ -258,6 +275,8 @@ int main (int argc,char ** argv) ret = v2swf_init(&v2swf, &video); if(verbose) v2swf_setparameter(&v2swf, "verbose", "1"); + if(numframes) + v2swf_setparameter(&v2swf, "numframes", itoa(numframes)); v2swf_setparameter(&v2swf, "quality", itoa(quality)); v2swf_setparameter(&v2swf, "blockdiff", "0"); v2swf_setparameter(&v2swf, "blockdiff_mode", "exact"); @@ -269,6 +288,8 @@ int main (int argc,char ** argv) v2swf_setparameter(&v2swf, "prescale", "1"); v2swf_setparameter(&v2swf, "flash_version", itoa(flashversion)); v2swf_setparameter(&v2swf, "keyframe_interval", itoa(keyframe_interval)); + if(skipframes) + v2swf_setparameter(&v2swf, "skipframes", skipframes); if(expensive) v2swf_setparameter(&v2swf, "motioncompensation", "1"); if(flip)