Read tags from video files

This commit is contained in:
Vincent Riquer 2013-04-29 23:16:56 +02:00
parent 2fe2c311e9
commit b4efa78092
2 changed files with 55 additions and 1 deletions

51
lib/tags/getInfos::ffmpeg Normal file
View File

@ -0,0 +1,51 @@
#!/bin/bash
getInfosffmpeg_version='ffmpeg-1'
tagreaders+=( "$getInfosffmpeg_version" )
getInfos::ffmpeg() {
tagreader="$getInfosffmpeg_version"
local allinfos=$(
ffprobe -show_streams \
-i "$sourcepath/$filename" 2>&1 \
|sed '
/^Input/,/.* Audio: /{s/ *: */=/}
s/^[[:space:]]*//'
)
local metadata=$(
echo -e "$allinfos" \
|sed -n '/Metadata=/,/\[STREAM\]/p'
)
local fmt_infos=$(
echo -e "$allinfos" \
|sed -n \
'/codec_type=audio/,/\[STREAM\]/{
/^\(sample_rate\|bit_rate\|channels\)=/{
p
}
}'
)
local infos="$metadata"
albumartist=$(gettag album_artist)
album=$(gettag album)
artist=$(gettag artist)
composer=$(gettag composer)
genre=$(gettag genre)
performer=$(gettag TOPE)
title=$(gettag title)
tracknum=$(gettag tracknumber)
year=$(gettag year)
expr='^[0-9]*$'
if [ -n "$genre" ] && [[ $genre =~ $expr ]]
then
genre="${id3genres[$genre]}"
fi
infos="$fmt_infos"
channels=$(gettag channels)
rate=$(gettag 'sample_rate')
bitrate=$(gettag 'bit_rate')
if [[ $bitrate == N/A ]]
then
unset bitrate
else
bitrate=$((bitrate / 1000))
fi
}

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
getTags_version='unknown-2' getTags_version='unknown-3'
tagreaders+=( "$getTags_version" ) tagreaders+=( "$getTags_version" )
getTags() { getTags() {
unset type unset type
@ -16,6 +16,9 @@ getTags() {
audio/x-flac) audio/x-flac)
type=FLAC type=FLAC
;; ;;
video/*)
type=ffmpeg
;;
*) *)
extendedtype=$(file -b "$sourcepath/$filename") extendedtype=$(file -b "$sourcepath/$filename")
case "$extendedtype" in case "$extendedtype" in