slitaz-tools annotate tinyutils/decode @ rev 762
Added tag 5.0 for changeset 592ca2af912a
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed May 02 16:03:49 2012 +0200 (2012-05-02) |
parents | 6c810b5973a7 |
children | 75e873df3022 |
rev | line source |
---|---|
pankso@746 | 1 #!/bin/sh |
pankso@746 | 2 # |
pankso@746 | 3 # Decode is a cmdline tool to decode all kind of files such as audio or video. |
pankso@746 | 4 # Let decode a single file, many file on cmdline or a full directory. |
pankso@746 | 5 # |
pankso@746 | 6 # Copyright (C) 2012 SliTaz GNU/Linux - BSD License |
pankso@746 | 7 # |
pankso@746 | 8 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@746 | 9 # |
pankso@746 | 10 . /lib/libtaz.sh |
pankso@746 | 11 |
pankso@746 | 12 # NOTES: |
pankso@746 | 13 # Do we need a --out=/output/path options ? |
pankso@746 | 14 # Use convert for [.png|.jpg] --> .raw ? |
pankso@746 | 15 # Use separators and give decoded file size ? |
pankso@746 | 16 # Use mencoder for flash video files (and other format) ? |
pankso@746 | 17 |
pankso@746 | 18 # Internationalization |
pankso@746 | 19 . /usr/bin/gettext.sh |
pankso@746 | 20 TEXTDOMAIN='slitaz-tools' |
pankso@746 | 21 export TEXTDOMAIN |
pankso@746 | 22 |
pankso@746 | 23 # |
pankso@746 | 24 # Functions |
pankso@746 | 25 # |
pankso@746 | 26 |
pankso@746 | 27 # Small help and usage. |
pankso@746 | 28 usage() { |
pankso@746 | 29 cat << EOT |
pankso@746 | 30 |
pankso@746 | 31 $(gettext "Usage:") $(basename $0) [option] [file|url] [file2 url2 ... fileN urlN] |
pankso@746 | 32 |
pankso@746 | 33 $(gettext "Decode audio and video files") |
pankso@746 | 34 |
pankso@746 | 35 $(gettext "Examples:") |
pankso@746 | 36 $(basename $0) audio.mp3 audio.ogg |
pankso@746 | 37 $(basename $0) /path/files/* |
pankso@746 | 38 $(basename $0) http://www.myurl/file.avi |
pankso@746 | 39 |
pankso@746 | 40 EOT |
pankso@746 | 41 } |
pankso@746 | 42 |
pankso@746 | 43 # Check if a tool is installed. Dont force users and auto install package |
pankso@746 | 44 # Decode is a cmdline line tool, let have auto install option in GUI. |
pankso@746 | 45 check_tool() { |
pankso@746 | 46 name="$(basename "$file")" |
pankso@746 | 47 if [ ! -x /usr/bin/$1 ]; then |
pankso@746 | 48 echo "" |
pankso@746 | 49 gettext "Missing decoder :"; echo " $1" |
pankso@746 | 50 gettext "Skipping file :"; echo " $name" |
pankso@746 | 51 continue |
pankso@746 | 52 else |
pankso@746 | 53 echo "" |
pankso@746 | 54 gettext "Decoding:"; echo " $name" |
pankso@746 | 55 #separator |
pankso@746 | 56 fi |
pankso@746 | 57 } |
pankso@746 | 58 |
pankso@746 | 59 # Decode a file. |
pankso@746 | 60 decoder() { |
pankso@746 | 61 case "$file" in |
pankso@746 | 62 *.mp3|*.MP3) |
pankso@746 | 63 check_tool "mpg123" |
pankso@746 | 64 mpg123 --rate 44100 --stereo --buffer 3072 --resync \ |
pankso@746 | 65 -w "${file%.*3}.wav" "$file" ;; |
pankso@746 | 66 *.ogg) |
pankso@746 | 67 check_tool "oggdec" |
pankso@746 | 68 oggdec "$file" ;; |
pankso@746 | 69 *.avi|*.wmv|*.mov|*.flv) |
pankso@746 | 70 check_tool "ffmpeg" |
pankso@746 | 71 ext=${file##*.} |
pankso@746 | 72 # *.flv --> mencoder file.flv -ovc lavc -oac mp3lame -o file.avi |
pankso@746 | 73 ffmpeg -y -i "$file" "${file%.$ext}.mpg" |
pankso@746 | 74 du -sh "${file%.$ext}.mpg" ;; |
pankso@746 | 75 *.wav|*.mpg|--*) |
pankso@746 | 76 # Skip decoded files and --options. |
pankso@746 | 77 continue ;; |
pankso@746 | 78 *) echo ""; gettext "Unsupported file:"; echo " $file" ;; |
pankso@746 | 79 esac |
pankso@746 | 80 } |
pankso@746 | 81 |
pankso@746 | 82 # |
pankso@746 | 83 # Commands |
pankso@746 | 84 # |
pankso@746 | 85 |
pankso@746 | 86 case "$1" in |
pankso@746 | 87 "") usage ;; |
pankso@746 | 88 *) |
pankso@746 | 89 for file in "$@" |
pankso@746 | 90 do |
pankso@746 | 91 case "$file" in |
pankso@746 | 92 http://*) |
pankso@746 | 93 busybox wget "$file" |
pankso@746 | 94 file="$(basename "$file")" |
pankso@746 | 95 decoder && rm "$file" ;; |
pankso@754 | 96 *.*) |
pankso@746 | 97 [ ! -f "$file" ] && \ |
pankso@746 | 98 (gettext "No file:"; echo " $file") && continue |
pankso@746 | 99 decoder ;; |
pankso@746 | 100 esac |
pankso@746 | 101 done && echo "" ;; |
pankso@746 | 102 esac |
pankso@746 | 103 |
pankso@746 | 104 exit 0 |