All pastes #459076 Raw Edit

Anonymous

public shellscript v1 · immutable
#459076 ·published 2007-04-26 08:01 UTC
rendered paste body
Index: idvid===================================================================--- idvid   (revision 2061)+++ idvid   (working copy)@@ -88,6 +88,7 @@ MATCH_FORMAT="" MATCH_TVSYS="" TABULAR=false+USE_NAVLOG=false ID_FILES="" mkdir -p "$STAT_DIR"@@ -295,12 +296,28 @@     # If doing -fast identification, skip "accurate" length determination     if $FAST; then         :-    else-        # Determine duration by playing the video into /dev/null and doing-        # tons of filtering. Time consuming, but presumably more accurate.-        V_DURATION=$(LC_ALL=C mencoder -ovc frameno -oac pcm -noskiplimit \+    else # make a nav_log: can be reused, especially by todisc for fast seeking+        if  [[ -s "$INFILE".nav_log ]]; then+            echo "Using ${INFILE}.nav_log"+            echo "If you don't want to use this file please delete it"+            USE_NAVLOG=:+        elif  [[ ${INFILE##*.} =~ [MmPpGg] ]] && hash tcdemux 2>/dev/null; then+        # use tcdemux if present, and  if *.mpg extension+            NAVSEEK_CMD=(nice tcdemux  -f $ID_VIDEO_FPS -W -i "$INFILE")+            "${NAVSEEK_CMD[@]}" >  "$INFILE".nav_log 2>&1+            USE_NAVLOG=:+        else+            # Determine duration by playing the video into /dev/null and doing+            # tons of filtering. Time consuming, but presumably more accurate.+            V_DURATION=$(LC_ALL=C mencoder -ovc frameno -oac pcm -noskiplimit \             "$INFILE" -o /dev/null 2>/dev/null | tr '\r' '\n' | grep ^Pos: | \             tail -n 1 | sed s/^.*Pos:// | awk '{print $1}' | sed s/[.][0-9]s//)+        fi+        if $USE_NAVLOG; then+            ID_VIDEO_FRAMES=$(awk '{ field = $2 }; END{ print field }'  < "${INFILE}".nav_log)+            V_DUR=$(bc <<< "$ID_VIDEO_FRAMES / $ID_VIDEO_FPS")+            V_DURATION=${V_DUR%%.*} # final value is integer ( seconds )+        fi     fi     # Use mplayer-reported length as a last resort (truncate floating-point)