From e330d318d8f4bc3773319c4c451cbd71b9367344 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Mon, 11 Jan 2010 18:10:03 +0100 Subject: added movie duration script --- movielen.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 movielen.sh diff --git a/movielen.sh b/movielen.sh new file mode 100755 index 0000000..e39ba57 --- /dev/null +++ b/movielen.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Print duration of video files +# +# Author: Reiner Herrmann +# License: GPLv3 +# +# mplayer: +# mplayer -identify -ao null -vo null -frames 0 FILENAME 2>/dev/null | grep ID_LENGTH +# 0m3.604s +# tcprobe: +# tcprobe -i FILENAME 2>/dev/null | grep length +# 0m3.340s, but can't read mkv files +# ffmpeg: +# ffmpeg -i FILENAME 2>&1 | grep Duration +# 0m8.981s +# + +print_time () +{ + FILENAME=$1 + if [ ! -f "$FILENAME" ] + then + echo "$0: $FILENAME: No such file or directory" 1>&2 + return 1 + fi + + TIME=`mplayer -identify "$FILENAME" -ao null -vo null -frames 0 2>/dev/null | grep ^ID_LENGTH | sed 's/^ID_LENGTH=\([0-9]*\)\.[0-9]*/\1/'` + if [ ! $TIME ] + then + echo "$0: $FILENAME: Unrecognized format" 1>&2 + return 1 + fi + + HOURS=$(( $TIME/3600 )) + MINUTES=$(( $(($TIME-$HOURS*3600))/60 )) + SECONDS=$(( $TIME%60 )) + printf " %i:%.2i:%.2i - $FILENAME\n" $HOURS $MINUTES $SECONDS +} + +for filename in "$@"; +do + print_time "$filename"; +done + -- cgit v1.2.3