slitaz-tools annotate tinyutils/decode @ rev 1028

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