diff --git a/atom b/atom index 4844961..e1a22a4 100755 --- a/atom +++ b/atom @@ -186,7 +186,8 @@ if ! which ogginfo >/dev/null then echo "[WARNING] Tool ogginfo (from vorbis-tools) is not" \ "installed or not in PATH - Vorbis metadata disabled" >&2 + Vorbis metadata disabled + WebM metadata disabled" >&2 disableogginfo=1 (( sanitywarn++ )) fi @@ -245,6 +246,15 @@ then disablempcdec=1 (( sanitywarn++ )) fi +if ! which mkvextract >/dev/null +then + echo "[WARNING] Tool mkvextract (from MKVToolNix) is not" \ + "installed or not in PATH + WebM metadata disabled + WebM support disabled" >&2 + disablemkvextract=1 + (( sanitywarn++ )) +fi if ! which ffprobe >/dev/null then echo "[WARNING] Tool ffprobe (from FFmpeg) is not installed or not in PATH diff --git a/lib/tags/ffmpeg b/lib/tags/ffmpeg index e03e879..fbfc59d 100644 --- a/lib/tags/ffmpeg +++ b/lib/tags/ffmpeg @@ -1,5 +1,5 @@ #!/bin/bash -getInfosffmpeg_version='ffmpeg-2' +getInfosffmpeg_version='ffmpeg-3' tagreaders+=( "$getInfosffmpeg_version" ) getInfos::ffmpeg() { tagreader="$getInfosffmpeg_version" diff --git a/lib/tags/getInfos::WebM b/lib/tags/getInfos::WebM new file mode 100644 index 0000000..2303f67 --- /dev/null +++ b/lib/tags/getInfos::WebM @@ -0,0 +1,17 @@ +#!/bin/bash +getInfoswebm_version='webm-1' +tagreaders+=( "$getInfoswebm_version" ) +getInfos::WebM() { + getInfos::ffmpeg_video + tagreader="$getInfoswebm_version" + local infos=$( + mkvextract tracks \ + "$sourcepath/$filename" \ + 1:>(ogginfo /dev/stdin) \ + | sed 's/\t//;s/: /=/g' + ) + rate=$(gettag rate|head -n1) + channels=$(gettag channels|head -n1) + bitrate=$(gettag 'average bitrate') + bitrate=${bitrate%%,*} +} diff --git a/lib/tags/getInfos::ffmpeg_other b/lib/tags/getInfos::ffmpeg_other new file mode 100644 index 0000000..608e733 --- /dev/null +++ b/lib/tags/getInfos::ffmpeg_other @@ -0,0 +1,7 @@ +#!/bin/bash +getInfosffmpeg_other_version='ffmpeg_other-1' +tagreaders+=( "$getInfosffmpeg_other_version" ) +getInfos::ffmpeg_other() { + getInfos::ffmpeg + tagreader="$getInfosffmpeg_other_version" +} diff --git a/lib/tags/getInfos::ffmpeg_video b/lib/tags/getInfos::ffmpeg_video new file mode 100644 index 0000000..ef31d51 --- /dev/null +++ b/lib/tags/getInfos::ffmpeg_video @@ -0,0 +1,7 @@ +#!/bin/bash +getInfosffmpeg_video_version='ffmpeg_video-1' +tagreaders+=( "$getInfosffmpeg_video_version" ) +getInfos::ffmpeg_video() { + getInfos::ffmpeg + tagreader="$getInfosffmpeg_video_version" +} diff --git a/lib/tags/gettags b/lib/tags/gettags index ecd996c..dcaa0e9 100644 --- a/lib/tags/gettags +++ b/lib/tags/gettags @@ -19,12 +19,16 @@ getTags() { type=FLAC (( disableflac )) && unset type ;; + video/webm) + type=WebM + (( disablemkvextract || disableogginfo )) && unset type + ;; video/*) - type=ffmpeg + type=ffmpeg_video (( disableffprobe )) && unset type ;; *) - type=ffmpeg + type=ffmpeg_other (( disableffprobe )) && unset type ;; esac