slitaz-tools annotate tinyutils/decode @ rev 835
Tiny edits
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Mon Feb 24 20:08:51 2014 +0000 (2014-02-24) |
parents | c79e656b37a5 |
children | 5d80f6fdbdb7 |
rev | line source |
---|---|
pankso@746 | 1 #!/bin/sh |
pankso@746 | 2 # |
paul@763 | 3 # Decode is a cmdline tool to decode all kinds of files such as audio or video. |
paul@763 | 4 # Lets you decode a single file, many files on cmdline or a full directory. |
pankso@746 | 5 # |
pascal@821 | 6 # Copyright (C) 2012-2014 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 |
al@813 | 11 export TEXTDOMAIN='slitaz-tools' #i18n |
pankso@746 | 12 |
pankso@746 | 13 # NOTES: |
paul@835 | 14 # Do we need a --out=/output/path option ? |
pankso@746 | 15 # Use convert for [.png|.jpg] --> .raw ? |
pankso@746 | 16 # Use separators and give decoded file size ? |
pankso@746 | 17 # Use mencoder for flash video files (and other format) ? |
pankso@746 | 18 |
pankso@746 | 19 |
pankso@746 | 20 # |
pankso@746 | 21 # Functions |
pankso@746 | 22 # |
pankso@746 | 23 |
pankso@746 | 24 # Small help and usage. |
pankso@746 | 25 usage() { |
pankso@746 | 26 cat << EOT |
pankso@746 | 27 |
al@813 | 28 $(_n 'Decode audio and video files') |
pankso@746 | 29 |
al@813 | 30 $(boldify "$(_ 'Usage:')") |
al@813 | 31 $(basename $0) [$(_n 'option')] [$(_n 'file')|$(_n 'URL')] ... |
pankso@746 | 32 |
al@813 | 33 $(boldify "$(_ 'Examples:')") |
pankso@746 | 34 $(basename $0) audio.mp3 audio.ogg |
al@813 | 35 $(basename $0) $(_n '/path/to/files/*') |
al@813 | 36 $(basename $0) http://www.myurl/$(_n 'file').avi |
pankso@746 | 37 |
pankso@746 | 38 EOT |
pankso@746 | 39 } |
pankso@746 | 40 |
paul@763 | 41 # Check if a tool is installed. Don't force users and auto install package |
paul@763 | 42 # Decode is a cmdline line tool, let's have auto install option in GUI. |
pankso@746 | 43 check_tool() { |
al@813 | 44 dec=$1 |
pankso@746 | 45 name="$(basename "$file")" |
pankso@746 | 46 if [ ! -x /usr/bin/$1 ]; then |
al@813 | 47 _ 'Missing decoder: $dec' |
al@813 | 48 _ 'Skipping file: $name' |
pankso@746 | 49 continue |
pankso@746 | 50 else |
al@813 | 51 _ 'Decoding: $name' |
al@813 | 52 newline |
pankso@746 | 53 fi |
pankso@746 | 54 } |
pankso@746 | 55 |
pankso@746 | 56 # Decode a file. |
pankso@746 | 57 decoder() { |
al@813 | 58 newline; separator; newline |
al@813 | 59 if [ ! -f "$file" ]; then |
al@813 | 60 _ 'No file: $file' |
al@813 | 61 continue |
al@813 | 62 fi |
al@813 | 63 ext=$(echo ${file##*.} | tr '[A-Z]' '[a-z]') |
al@813 | 64 case $ext in |
al@813 | 65 mp3) |
pankso@746 | 66 check_tool "mpg123" |
pankso@746 | 67 mpg123 --rate 44100 --stereo --buffer 3072 --resync \ |
al@813 | 68 -w "${file%.*}.wav" "$file" ;; |
al@813 | 69 ogg) |
pankso@746 | 70 check_tool "oggdec" |
pankso@746 | 71 oggdec "$file" ;; |
al@813 | 72 avi|wmv|mov|flv) |
pankso@746 | 73 check_tool "ffmpeg" |
pankso@746 | 74 # *.flv --> mencoder file.flv -ovc lavc -oac mp3lame -o file.avi |
al@813 | 75 ffmpeg -y -i "$file" "${file%.*}.mpg" |
al@813 | 76 du -sh "${file%.*}.mpg" ;; |
al@813 | 77 wav|mpg|--*) |
pankso@746 | 78 # Skip decoded files and --options. |
al@813 | 79 name="$(basename "$file")" |
al@813 | 80 _ 'Skipping file: $name' |
pankso@746 | 81 continue ;; |
al@813 | 82 *) _ 'Unsupported file: $file' ;; |
pankso@746 | 83 esac |
pankso@746 | 84 } |
pankso@746 | 85 |
pankso@746 | 86 # |
pankso@746 | 87 # Commands |
pankso@746 | 88 # |
pankso@746 | 89 |
pankso@746 | 90 case "$1" in |
al@813 | 91 -h|--help|"") usage ;; |
pankso@746 | 92 *) |
al@813 | 93 for file in "$@"; do |
al@813 | 94 debug "$file" |
pankso@746 | 95 case "$file" in |
pankso@746 | 96 http://*) |
pankso@746 | 97 busybox wget "$file" |
pankso@746 | 98 file="$(basename "$file")" |
pankso@746 | 99 decoder && rm "$file" ;; |
pankso@754 | 100 *.*) |
pankso@746 | 101 decoder ;; |
pankso@746 | 102 esac |
al@813 | 103 done |
al@813 | 104 newline ;; |
pankso@746 | 105 esac |
pankso@746 | 106 |
pankso@746 | 107 exit 0 |