From 5790b04b9cd06d0798ea34071a26721686caf6bc Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Sat, 1 Jun 2013 00:12:19 +0200 Subject: [PATCH] WebM information --- atom | 12 +++++++++++- lib/tags/getInfos::WebM | 17 +++++++++++++++++ lib/tags/getInfos::ffmpeg | 2 +- lib/tags/getInfos::ffmpeg_other | 7 +++++++ lib/tags/getInfos::ffmpeg_video | 7 +++++++ lib/tags/getTags | 8 ++++++-- 6 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 lib/tags/getInfos::WebM create mode 100644 lib/tags/getInfos::ffmpeg_other create mode 100644 lib/tags/getInfos::ffmpeg_video diff --git a/atom b/atom index 31775ae..e177d24 100755 --- a/atom +++ b/atom @@ -155,7 +155,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 @@ -214,6 +215,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/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 b/lib/tags/getInfos::ffmpeg index e03e879..fbfc59d 100644 --- a/lib/tags/getInfos::ffmpeg +++ b/lib/tags/getInfos::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::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