google ads mobile
google ads

ffmpegでエンコードするときに画像サイズを指定する

PHP

解像度は以下のとおりにしてみる

ファイルの種類 解像度
生TS 1440x1080
mp4 720×540

ffmpegでコマンドのオプションに -s で指定しないとそのままTSの解像度でエンコードされるので

たぶん処理に時間がえらくかかってしまう(と思われる)

どうせmp4で見るのはタブレットとかスマフォなので

解像度を1/2に変更してみる。

[root@recorder ~]# vi /var/www/epgrec/do-record.sh

#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"
echo "SID : $SID"

RECORDER=/usr/local/bin/recpt1

# fail safe
case $CHANNEL in
101|102|191|192|193)
if [ $SID = 'hd' ]; then
SID=$CHANNEL
fi ;;
esac
if [ -z $SID ]; then
SID='hd'
fi

############################################
#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"
echo "SID : $SID"

RECORDER=/usr/local/bin/recpt1

# fail safe
case $CHANNEL in
101|102|191|192|193)
if [ $SID = 'hd' ]; then
SID=$CHANNEL
fi ;;
esac
if [ -z $SID ]; then
SID='hd'
fi

############################################
RECORDER=recpt1
ENCODER=ffmpeg

EPGREC_DIR=/var/www/epgrec/
PRESET=libx264.ffpreset

TMP_OUTPUT=${OUTPUT}_tmp.ts

#CMD
FULL_TS="$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null"
MIN_TS="$RECORDER --b25 --strip --sid $SID $CHANNEL $DURATION ${OUTPUT} >/dev/null"
-i test.ts -vcodec libx264 -acodec libfaac -y test.mp4
#↓ここの-sオプションを追加してみた
ENCODE="$ENCODER -i ${TMP_OUTPUT} -s 720x540 -vcodec libx264 -acodec libfaac -y ${OUTPUT}"
############################################

if [ ${MODE} = 0 ]; then
# MODE=0では必ず無加工のTSを吐き出すこと
$FULL_TS
elif [ ${MODE} = 1 ]; then
if [ ${CHANNEL} = "23" ] || [ ${CHANNEL} = "24" ]; then
# テレビ朝日とテレビ東京はFullTS
$FULL_TS
else
# 目的のSIDのみ残す
$MIN_TS
fi
elif [ ${MODE} = 2 ]; then
# FULL_TSで録画してエンコード
$FULL_TS
mv $OUTPUT $TMP_OUTPUT
$ENCODE
#rm $TMP_OUTPUT
fi

ためしにエンコードしてみると、サイズも変更されて処理時間も短くなった(10分程度のTSファイルを15分程度で変換できた)

タイトルとURLをコピーしました