You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							94 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							94 lines
						
					
					
						
							2.6 KiB
						
					
					
				#!/bin/bash | 
						|
# (c) 2012-2014 MORI Taeyeon | 
						|
# Convert video for playback on Sony PSP | 
						|
 | 
						|
usage() { | 
						|
    echo "Usage: `basename "$1"` [-subs] [-nothumb] <infile> [outfile] [-- <HandBrakeCLI options>]" | 
						|
    echo | 
						|
    echo "ffpsp (c) 2012-2014 MORI Taeyeon" | 
						|
    echo "Convert a video for Sony PSP" | 
						|
    echo | 
						|
    echo "Positional Arguments:" | 
						|
    echo -e "\tinfile\t\tInput file" | 
						|
    echo -e "\toutfile\t\tOutput file (default: same name in psp/ subdir)" | 
						|
    echo | 
						|
    echo "Options:" | 
						|
    echo -e "\t-h\t\tDisplay this help message and exit." | 
						|
    echo -e "\t-subs\t\tHardcode softsubs" | 
						|
    echo -e "\t-nothumb\tDon't generate Thumbnails" | 
						|
    echo | 
						|
    echo "Override Application executables:" | 
						|
    echo -e "\t-avprobe -ffmpeg -hbcli -videothumb" | 
						|
    echo | 
						|
    echo "Additional HB-CLI options may be added after a '--' (if you know what you're doing!)" | 
						|
} | 
						|
 | 
						|
# commandline options | 
						|
SUBTITLES=false | 
						|
THUMBNAIL=true | 
						|
INPUT_FILE= | 
						|
OUTPUT_FILE= | 
						|
 | 
						|
avprobe=avprobe | 
						|
hbcli=HandBrakeCLI | 
						|
ffmpeg=ffmpeg | 
						|
videothumb=videothumb | 
						|
 | 
						|
# Parse commandline options | 
						|
pos_args=0 | 
						|
next= | 
						|
for i in "$@"; do | 
						|
    shift; | 
						|
    if [[ -z "$next" ]]; then | 
						|
        case "$i" in | 
						|
        -subs) | 
						|
            SUBTITLES=true;; | 
						|
        -nothumb) | 
						|
            THUMBNAIL=false;; | 
						|
        -avprobe|-ffmpeg|-hbcli|-videothumb) | 
						|
            next=${1#-};; | 
						|
        --) | 
						|
            break;; | 
						|
        -h|-help|--help) | 
						|
            usage $0 | 
						|
            exit 0;; | 
						|
        *) | 
						|
            case $pos_args in | 
						|
                0) INPUT_FILE=$i;; | 
						|
                1) OUTPUT_FILE=$i;; | 
						|
            esac | 
						|
            pos_args=$[$pos_args+1];; | 
						|
        esac | 
						|
    else | 
						|
        eval "$next=\"\$i\"" | 
						|
        next= | 
						|
    fi | 
						|
done | 
						|
[[ $pos_args -lt 1 || $pos_args -gt 2 ]] && usage $0 && exit 1 | 
						|
 | 
						|
# Generate output filename | 
						|
if [[ -z "$OUTPUT_FILE" ]]; then | 
						|
    OUTPUT_DIR=`dirname "$INPUT_FILE"`/psp | 
						|
    OUTPUT_FILE=`basename "$INPUT_FILE"` | 
						|
    OUTPUT_FILE=$OUTPUT_DIR/${OUTPUT_FILE%.*}.mp4 | 
						|
    if ! [[ -e "$OUTPUT_DIR" ]]; then | 
						|
        mkdir -p "$OUTPUT_DIR" | 
						|
    elif [[ -e "$OUTPUT_FILE" ]]; then | 
						|
        echo "File already exists: \"$OUTPUT_FILE\". Specify it explicitly to overwrite" | 
						|
        exit 1 | 
						|
    fi | 
						|
fi | 
						|
THUMBNAIL_FILE=${OUTPUT_FILE%.*}.thm | 
						|
 | 
						|
# Handle Softsubs | 
						|
if $SUBTITLES && $avprobe "$INPUT_FILE" 2>&1 | grep -i Subtitle | grep -qi ass; then | 
						|
    SUB_ARGS="--subtitle-burned 1 -s 1" | 
						|
    echo "Found a subtitle Track!" | 
						|
fi | 
						|
 | 
						|
# Go! | 
						|
$hbcli -X 480 -Y 272 --modulus 16 -E faac -B 128 -R 44.1 -6 stereo -e x264 -r 23.976 -x profile=main:level=30:weightp=1:subq=9:rc-lookahead=20:8x8dct=0:b-pyramid=none:me=umh:bframes=16 -i "$INPUT_FILE" -o "$OUTPUT_FILE" -q 20 $SUB_ARGS "$@" || exit $? | 
						|
 | 
						|
 | 
						|
$THUMBNAIL && $videothumb "$OUTPUT_FILE" "$THUMBNAIL_FILE" -s 160x120 || exit $? | 
						|
 | 
						|
 |