YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-17 (水)


[一語一絵/IT系]

DLNAサーバ完成 / 2013-02-07 (木)

昨年10月18日に導入しはじめたDLNAサービスmediatomb

10月23日に「DMS-1.50対応」とする事によりREGZA 37Z3500からの接続&トランスコード再生ができるとこで終わっていたのだが、[External]DLNAサーバーを試す[MediaTomb]編 – トラスコ時にシークバーを表示する[External]MediatombをビエラのDLNAサーバとして使う(その8)を参考にして、ようやくREGZA 37Z3500でもシーク&ポーズが出来るようになった。

というわけで手順をおさらい。

svnでチェックアウトしたソースコードに[External]SourceForge.net: MediaTomb: Detail: 2995015 - Add time-based seek capability to transcoded streamsからダウンロードしたパッチmediatomb-seek.patchを適用し、build&インストール。

$ svn co https://svn.mediatomb.cc/svnroot/mediatomb/trunk/mediatomb mediatomb-src
$ cd mediatomb-src
$ patch -p 0 < ~/Download/mediatomb-seek.patch
$ autoreconf -i
$ ./configure && make
$ sudo make install

設定ファイル/etc/mediatomb/config.xmlは全てのagent行にcan-seek parameterを追加する。ポイントはトランスコード処理のmediatomb-ffmpeg-video.shを起動するagent行で、argumentsの%secondsとcan-seek parameterのyesを追加。

<agent command="/usr/local/bin/mediatomb-ffmpeg-video.sh" arguments="%in %out %seconds" can-seek="yes"/>

トランスコード時に起動される/usr/local/bin/mediatomb-ffmpeg-video.shは以下のとおり。%secondsをffmpegの-ssオプションに展開するのがミソ。

!/bin/bash

# exec "/usr/local/bin/ffmpeg" -ss "${3}" -i "${1}" -f mpegts -vcodec mpeg2video -b 2048k -acodec mp2 -ab 128k -ac 2 -threads 1 - > "${2}"

FFMPEG_PATH="/usr/local/bin/ffmpeg"
INPUT="$1"
OUTPUT="$2"
OPT_SEEKPOS="${3:+-ss $3}"

OPT_VCODEC="-vcodec mpeg2video"
OPT_VBRATE="-b:v 3M"
#OPT_VFRATE="-r 25"
OPT_ACODEC="-acodec mp2"
OPT_ABRATE="-ab 128k"
OPT_AFRATE="-ar 44100"
OPT_ACHS="-ac 2"

OPT_ASPECT="-aspect 4:3"
#OPT_ASPECT="-aspect 16:9"
#OPT_THREADS="-threads 0"
#FORMAT="dvd"
FORMAT="mpegts"

exec "${FFMPEG_PATH}" ${OPT_SEEKPOS} -i "${INPUT}" -f ${FORMAT} \
      ${OPT_VCODEC} ${OPT_VBRATE} ${OPT_VFRATE} \
      ${OPT_ACODEC} ${OPT_ABRATE} ${OPT_AFRATE} ${OPT_ACHS} \
      ${OPT_ASPECT} ${OPT_THREADS} - > "${OUTPUT}"

先人のたゆまぬ努力と慈悲に感謝。

【参照】
●デジ備忘 http://www.degi.saloon.jp/
DLNAサーバーを試す[MediaTomb][ubuntu]編 – REGZAへ認識させる 2010年11月6日
DLNAサーバーを試す[MediaTomb]編 – トランスコードしてREGZAから視聴 2010年12月1日
DLNAサーバーを試す[MediaTomb]編 – トラスコ時にシークバーを表示する 2011年5月4日
●ぱぱらくだ日記 http://papa3camel.blogspot.jp/
MediatombをビエラのDLNAサーバとして使う(その8) 2012年7月11日
●Ubuntu Japanese Wiki https://wiki.ubuntulinux.jp/
UbuntuTips/Server/DLNAserver
●MediaTomb - Free UPnP MediaServer http://mediatomb.cc/
MediaTomb - Browse Files at SourceForge.net
●FFmpeg http://ffmpeg.org/