#!/bin/bash

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

PID=$$
OPT_VCODEC="-vcodec mpeg2video"
#OPT_VCODEC="-vcodec copy"
OPT_VBRATE="-b:v 3M"
#OPT_VFRATE="-r 25"
OPT_ACODEC="-acodec mp2"
#OPT_ACODEC="-acodec copy"
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 2"
#FORMAT="dvd"
FORMAT="mpegts"

# execを使う理由
# transcoding時には、mediatombからtrancodingのプロセス(この例だとffmpeg)を起動するが、
# execを使わないとtranscoding終了時にmediatombがそのプロセスを終了出来ないため。
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}" 2>/tmp/mediatomb-transcoding-video.log
