[cvs-annodex] commit (/annodex): scripts/trunk/m2anx

conrad nobody at lists.annodex.net
Fri Sep 10 18:07:19 EST 2004


Update of /annodex (new revision 558)

Modified files:
   scripts/trunk/m2anx

Log Message:
add -f option to change framerate (pre-encodes via yet another fifo ...)


Modified: scripts/trunk/m2anx
===================================================================
--- scripts/trunk/m2anx	2004-09-09 04:28:42 UTC (rev 557)
+++ scripts/trunk/m2anx	2004-09-10 08:07:18 UTC (rev 558)
@@ -47,6 +47,7 @@
 afopts=""
 VOPTS=""
 vfopts=""
+fps=""
 
 version () {
   echo >&2 "$THIS version "1
@@ -72,6 +73,7 @@
   echo >&2 "  -V, --video-codec codec     Specify video codec (null, theora)"
   echo >&2 "                                (default: $video_codec)"
   echo >&2 "  -d, --decimate              Drop frames that don't differ greatly from the"
+  echo >&2 "  -f, --fps framerate         Re-encode to new framerate"
   echo >&2 "                              previous  frame"
   echo >&2 "  -x, --xy                    Scale video width"
   echo >&2
@@ -152,6 +154,12 @@
   fi
 }
 
+if_fps () {
+  if test "x$fps" != "x" ; then
+    eval $*
+  fi
+}
+
 append_afopt () {
   if test "x$afopts" = "x" ; then
     afopts=$1
@@ -190,11 +198,11 @@
 ############################################################
 
 GETOPTEST=`getopt --version`
-SHORTOPTS="no:hvA:r:c:V:dx:C:S"
+SHORTOPTS="no:hvA:r:c:V:df:x:C:S"
 
 case $GETOPTEST in
 getopt*) # GNU getopt
-  TEMP=`getopt -l dry-run -l output:: -l verbose -l version -l help -l audio-codec:: -l resample:: -l channels:: -l video-codec:: -l decimate -l xy:: -l cmml:: -l skip-annodexing -- +$SHORTOPTS $@`
+  TEMP=`getopt -l dry-run -l output:: -l verbose -l version -l help -l audio-codec:: -l resample:: -l channels:: -l video-codec:: -l decimate -l fps:: -l xy:: -l cmml:: -l skip-annodexing -- +$SHORTOPTS $@`
   ;;
 *) # POSIX getopt ?
   TEMP=`getopt $SHORTOPTS $@`
@@ -240,6 +248,10 @@
     -d|--decimate)
       append_vfopt decimate
       ;;
+    -f|--fps)
+      shift
+      fps=$1
+      ;;
     -x|--xy)
       shift
       #VOPTS="$VOPTS -zoom -vf scale -xy $1"
@@ -282,6 +294,7 @@
 fi
 
 WORKDIR="${TMPDIR-/tmp}/$BASE.$$"
+REENC="$WORKDIR/$BASE-$fps.avi"
 AUDIO="$WORKDIR/audiodump.wav"
 VIDEO="$WORKDIR/stream.yuv"
 
@@ -329,6 +342,7 @@
 try_run "Creating temporary working directory" mkdir $WORKDIR
 
 if_audio "try_run \"Making audio fifo\" mkfifo $AUDIO"
+if_fps "try_run \"Making FPS re-encoding fifo\" mkfifo $REENC"
 if_video "try_run \"Making video fifo\" mkfifo $VIDEO"
 
 ############################################################
@@ -337,8 +351,16 @@
 
 # Video
 if test "x$video_codec" != "xnull" ; then
+  VIDEO_INPUT=$INPUT
+
+  if test "x$fps" != "x" ; then
+    VIDEO_INPUT=$REENC
+    try_run "Re-encoding to $fps fps" \
+      "mencoder -oac copy -ovc lavc -ofps $fps -o $REENC $INPUT" &
+  fi
+
   try_run "Decoding video" \
-    "(cd $WORKDIR && mplayer -ao null $VOPTS -vo yuv4mpeg $INPUT)" &
+    "(cd $WORKDIR && mplayer -ao null $VOPTS -vo yuv4mpeg $VIDEO_INPUT)" &
 fi
 
 # Audio


-- 
conrad



More information about the cvs-annodex mailing list