YANO's digital garage

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

Last-modified: 2024-04-08 (月)


[一語一絵/IT系]

MediaTombおさらい / 2013-02-22 (金)

昨日の対処でFFmpegによるmp4エンコードも復活したのだが、今度はまた先々週できるようになったMediaTombDLNAトランスコードがまた失敗する状態になってしまった。

昨日のmp4エンコード対処を参考にFFmpegのオプション指定を弄りつつ見直してみたものの、どうやらOPT_SEEKPOS="${3:+-ss $3}"があるとうまくいかないようだ。試しにOPT_SEEKPOS="-ss 120"とかするとちゃんと120秒飛ばしたところから再生が始まったように見えるので、MediaTombがパラメータを正しく渡せていないように思われるが、今回MediaTomb自体には手を加えていないので、何が良くないのか想像がつかない。

手元にあるMediaTombのソースツリーもバリエーションがいくつかできてしまって紛らわしいので、もう一度svnから最新版を取得しなおしてfix_libav_0.7_support.patch、libavformat_0.11_support.patch、mediatomb-seek.patchの3パッチを適用する事で、先々週と同等のソースツリーが再構築できた。

yano@GT110b:~/software/MediaTomb$ wget "https://launchpadlibrarian.net/71935204/fix_libav_0.7_support.patch"
yano@GT110b:~/software/MediaTomb$ wget "http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20120618/f6d39a21/attachment.patch" -O libavformat_0.11_support.patch
yano@GT110b:~/software/MediaTomb$ wget "http://sourceforge.net/tracker/download.php?group_id=129766&atid=715782&file_id=372446&aid=2995015" -O mediatomb-seek.patch
yano@GT110b:~/software/MediaTomb$ svn co https://svn.mediatomb.cc/svnroot/mediatomb/trunk/mediatomb mediatomb-newsrc
A    mediatomb-newsrc/README.UTF_8
A    mediatomb-newsrc/devconf
A    mediatomb-newsrc/AUTHORS
A    mediatomb-newsrc/webnew
~~~~~~~~~~~~~~~~~~~~~~~~~~
A    mediatomb-newsrc/web/js/items.js
 U   mediatomb-newsrc
リビジョン 2104 をチェックアウトしました。
yano@GT110b:~/software/MediaTomb$ mv mediatomb-newsrc mediatomb-r2104
yano@GT110b:~/software/MediaTomb$ cd mediatomb-r2104/
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ patch -p 0 < ../mediatomb-seek.patch
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ patch -p 1 < ../fix_libav_0.7_support.patch
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ patch -p 1 < ../libavformat_0.11_support.patch
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ autoreconf -i
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ ./configure && make
yano@GT110b:~/software/MediaTomb/mediatomb-r2104$ sudo make install

実際の/usr/local/bin/mediatomb-ffmpeg-video.shに関しては以下の通り。 前回aspect_ratioを指定する事でREGZAの選択画面において映像がプレビュー出力されるようにできたものの、元ソースのアスペクト比(4:3か16:9)に合わせた表示ができない軽微な問題があったのだが、今回[External]Wikipediaのエントリを参考にaspect_ratioに変えてtargetをNTSC-SVCDに設定する事で期待通りのアスペクト比で出力されるようになった。

yano@GT110b:~$ cat /usr/local/bin/mediatomb-ffmpeg-video.sh
#!/bin/bash
#
#  DLNA transcode for REGZA
#

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

OPT_VCODEC="-vcodec mpeg2video"
OPT_VBRATE="-b:v 5M"
# OPT_VFRATE="-r 25"

OPT_ACODEC="-acodec mp2"
OPT_ABRATE="-ab 128k"
OPT_AFRATE="-ar 44100"
OPT_ACHS="-ac 2"

# OPT_THREADS="-threads 0"
# OPT_TARGET="-target ntsc-svcd"
# OPT_ASPECT="-aspect 4:3"
OPT_ASPECT="-s 480x480"

#FORMAT="dvd"
FORMAT="mpegts"

exec "${FFMPEG_PATH}" ${OPT_SEEKPOS} \
      -i "${INPUT}" ${OPT_TARGET} \
      ${OPT_VCODEC} ${OPT_VBRATE} ${OPT_VFRATE} \
      ${OPT_ACODEC} ${OPT_ABRATE} ${OPT_AFRATE} \
      ${OPT_ACHS} ${OPT_ASPECT} ${OPT_THREADS} \
      -f ${FORMAT} - > "${OUTPUT}"
しかし、target[External]スーパービデオCD(SVCD)とした事で今度は2.6Mbpsを超えるbitrate設定がエラーになってしまったのだが、試行錯誤の結果aspect_ratiotargetに代えてvideo_sizeを指定する事で「アスペクト比を保ったプレビュー出力」と「2.6Mbpsを超えるbitrate設定」の両立に成功した。【2/25追記】

【参照】
●MediaTomb - Free UPnP MediaServer http://mediatomb.cc/
●FFmpeg http://www.ffmpeg.org/
●MediaTomb | Free Audio & Video software downloads at SourceForge.net http://sourceforge.net/projects/mediatomb/
MediaTomb: Detail: 2995015 - Add time-based seek capability to transcoded streams 2010年4月30日
●Bugs : “mediatomb” package : Ubuntu https://bugs.launchpad.net/ubuntu/+source/mediatomb
Bug #784431 “mediatomb build failure when libavformat-dev >= 4:0...” 2011年5月18日
●pkg-multimedia-maintainers Info Page http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers
Bug#677959: mediatomb: fails to build against current version of libavformat 2012年6月18日
●Wikipedia http://ja.wikipedia.org/wiki/
FFmpeg