diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-01-11 18:10:03 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2016-01-31 22:51:06 +0100 |
| commit | e330d318d8f4bc3773319c4c451cbd71b9367344 (patch) | |
| tree | d5005361bf5be225c0501050923b2c1e865aaef6 | |
| parent | 4e6f4c7bc55d0f9e0bbe43fea8f75456bcc0db38 (diff) | |
added movie duration script
| -rwxr-xr-x | movielen.sh | 45 |
1 files changed, 45 insertions, 0 deletions
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 <reiner@reiner-h.de> +# 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 + |
