MediaTomb включить / показать субтитры?
Как сделать так, чтобы субтитры (sub, srt) отображались на видео, передаваемом MediaTomb на телевизор Panasonic?
2 ответа
Во-первых, вам понадобится действительно мощная настройка, в зависимости от того, какие форматы поддерживает тв. Раньше я использовал для потоковой передачи на PS3 и пришлось почти все перекодировать.
Чтобы добавить субтитры, вы можете использовать vlc с параметром --sub-autodetect-file.
Вам нужно будет включить транскодирование для 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.
Во всяком случае, я предлагаю вам добавить логирование в сценарии, чтобы вы могли видеть, что происходит. Обычно вы должны получать субтитры везде, а не только на одном устройстве и не на другом.
Он работает по-другому для типов файлов / носителей, возможно, вы транскодируете только определенный диапазон файлов, потому что он работает с некоторыми, а не с другими.
Если вы перекодируете с помощью vlc, просто добавьте soverlay в ваш скрипт vlc. Назовите.srt так же, как ваш фильм, и оба в одном каталоге.
кусок примера скрипта;
#transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,soverlay,aenc=ffmpeg, ...
example of file naming;
mymovie.mp4
mymovie.srt
работает.