web-dev-qa-db-ja.com

MediaTombは字幕を有効/表示しますか?

MediaTombによってパナソニックテレビにストリーミングされたビデオに表示される字幕(sub、srt)を作成する方法は?

1
radibg2

まず、テレビがサポートするフォーマットに応じて、これを行うには本当に強力なセットアップが必要になります。以前はps3にストリーミングしていて、ほとんどすべてをトランスコードする必要がありました。

字幕を追加するには、「-sub-autodetect-file」パラメーターを指定して「vlc」を使用できます。

Mediatombのトランスコーディングを有効にする必要があります。トランスコーディングを有効にする方法を説明したドキュメント全体がmediatombサイトにあります。 http://mediatomb.cc/pages/transcoding

Vlcコマンドを直接呼び出すのではなく、スクリプトを使用することをお勧めします。これにより、mediatombを再起動する必要なく、スクリプトを簡単に変更できます。

結局のところ、これはps3で私にとって最も効果的なスクリプトでしたが、ここでも、テレビがサポートするものに応じて変更を加える必要があります。

#!/bin/bash -x

VLC=`which vlc`
MEDIAINFO=`which mediainfo`
XMLSTAR=`which xmlstarlet`
INPUT="$1"
OUTPUT="$2"
VIDEO_CODEC="mpgv"
VIDEO_BITRATE="4096"
VIDEO_FRAMERATE="25"
AUDIO_CODEC="a52"
AUDIO_BITRATE="192"
AUDIO_SAMPLERATE="48000"
AUDIO_CHANNELS="2"
FORMAT="ps"
SUBTITLE_LANGUAGE="nl"

VLC_VID_OPT="vcodec=${VIDEO_CODEC},vb=${VIDEO_BITRATE},fps=${VIDEO_FRAMERATE},soverlay,threads=2"

AUDIO_FORMAT=`${MEDIAINFO} --Output=XML "${INPUT}" | ${XMLSTAR} sel -t -m ".//track[@type='Audio']" -v "Format"`
case ${AUDIO_FORMAT} in
"AC-3" | "MPEG Audio" )
        VLC_AUD_OPT="audio-sync" ;;
* )
       VLC_AUD_OPT="acodec=${AUDIO_CODEC},ab=${AUDIO_BITRATE},samplerate=${AUDIO_SAMPLERATE},channels=${AUDIO_CHANNELS},audio-sync" ;;
esac

exec "${VLC}" -v "${INPUT}" -I dummy --sout "#transcode{${VLC_VID_OPT},${VLC_AUD_OPT}}:standard{mux=${FORMAT},access=file,dst=${OUTPUT}}" --sub-autodetect-file --sub-autodetect-fuzzy=1 --freetype-rel-fontsize=18 --sout-mux-caching=1500 --file-caching=1500 vlc:quit

exit 0

注:mediainfoやxmlstarletなどの追加パッケージを使用します。

編集:それはたくさんの質問です!まず、私はmediatombが不安定だったため、もう使用していません。どうやら、ある程度の時間が経過するとdlna/upnpでアクセスできなくなったのと同じ問題が発生するようです。

とにかく、何が起こっているのかを確認できるように、スクリプトにログを追加することをお勧めします。通常、字幕は1つのデバイスだけでなく、どこでも取得する必要があります。

これは、ファイル/メディアタイプに対して別の方法で機能します。一部のファイルでのみ機能し、他のファイルでは機能しないため、特定の範囲のファイルのみをトランスコードしている可能性があります。

1
dirk