我尝试根据编解码器和比特率过滤视频。
如果编解码器是xvid或x264或x265且比特率大于500,则键入= 42 否则对于xvid和比特率低于500然后类型为2和x264 / x265并且比特率低于500然后类型为54
以下方式是否正确?
if [ "$PROFILE" == "TV" ]; then
LEETCAT=TV
bitrate=$(cat $UP_INFO_FILE | grep "Height" | awk -F ':' '{print $2}' | grep -o "[0-9]*" | head -n 1)
echo "Height: $bitrate"
if [ "$bitrate" == "" ]; then
echo Bad bitrate
continue
fi
if [ "$bitrate" -ge "500" ]; then
LEETTYPE=41
else
LEETTYPE=6
fi
else
if [ "$PROFILE" == "MOVIE" ]; then
LEETCAT=Movies
XviD=$(cat $UP_INFO_FILE | grep "Simple@" | awk -F ':' '{print $2}' | grep -o "[0-9]*" | head -n 1)
X264=$(cat $UP_INFO_FILE | grep "Advanced Video Codec" | awk -F ':' '{print $2}' | grep -o "[0-9]*" | head -n 1)
X264=$(cat $UP_INFO_FILE | grep "High Efficiency Video Codec" | awk -F ':' '{print $2}' | grep -o "[0-9]*" | head -n 1)
bitrate=$(cat $UP_INFO_FILE | grep "Height" | awk -F ':' '{print $2}' | grep -o "[0-9]*" | head -n 1)
echo "Codec: $bitrate"
if [ "$bitrate" == "" ]; then
echo Bad bitrate
continue
fi
if [ "$XviD" == "Simple@" ] || [ "$X264" == "Advanced Video Codec" ] || [ "$X265" == "High Efficiency Video Codec" ] && [ "$bitrate" -ge "500" ];
LEETTYPE=42
elif [ "$XviD" == "Simple@" ] && [ "$bitrate" -le "499" ]; then
LEETTYPE=2
elif [ "$X264" == "Advanced Video Codec" ] || [ "$X265" == "Advanced Video Codec" ] && [ "$bitrate" -le "499" ]; then
LEETTYPE=54
fi
echo $LEETTYPE
else
echo Bad profile:$PROFILE
continue
fi
fi
答案 0 :(得分:0)
使用if
(否则...... if ...)来测试您的其他方案,而不是嵌套elif
语句:
if [ "$XviD" = "Simple@" ] || [ "$X264" = "Advanced Video Codec" ] || [ "$X265" = "High Efficiency Video Codec" ] && [ "$bitrate" -ge "500" ];
LEETTYPE=42
elif [ "$XviD" = "Simple@" ] && [ "$bitrate" -le "499" ]; then
LEETTYPE=2
elif [ "$X264" = "Advanced Video Codec" ] || [ "$X265" = "Advanced Video Codec" ] && [ "$bitrate" -le "499" ]; then
LEETTYPE=54
fi