Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ##### Variable: $burnSubs_usage ###############################################
- burnSubs_usage="
- Usage:
- ./burnSubs <Video File> [<Subtitle File>] [<Output File>]
- Examples:
- To burn in file-embedded subtitles:
- ./burnSubs <Video File>
- To burn in external subtitles:
- ./burnSubs <Video File> <Subtitle File>
- The default output filename is:
- <Video File>.subtitled.mp4
- "
- ##### Required Argument 1 #####################################################
- if [ -z "$1" ]
- then
- echo "Error: Missing required first argument."
- echo "$burnSubs_usage"
- exit 99
- fi
- ##### Variable: $VIDEO_SOURCE #################################################
- VIDEO_SOURCE=$1
- if [ -z "$2" ]
- then
- SUBTITLE_SOURCE=$VIDEO_SOURCE
- else
- SUBTITLE_SOURCE=$2
- fi
- ##### Variable: $OUTPUT_FILENAME ##############################################
- if [ -z "$3" ]
- then
- OUTPUT_FILENAME="${VIDEO_SOURCE}.subtitled.mp4"
- else
- OUTPUT_FILENAME=$3
- fi
- ##### Variable: $SUBTITLE_SETTINGS ############################################
- SUBTITLE_SETTINGS="force_style='FontName=Arial'"
- ##### Variable: $VIDEO_SOURCE #################################################
- VIDEO_SOURCE_ESCAPED=$(printf '%q' "$VIDEO_SOURCE")
- ##### Variable: $SUBTITLE_SOURCE ##############################################
- SUBTITLE_SOURCE_ESCAPED=$(printf '%q' "$SUBTITLE_SOURCE")
- ##### Variable: $OUTPUT_FILENAME ##############################################
- OUTPUT_FILENAME_ESCAPED=$(printf '%q' "$OUTPUT_FILENAME")
- ##### FUNCTION: Prepare temp data file ####
- if [ -f "tmp.dat" ];
- then
- rm "tmp.dat"
- fi
- touch "tmp.dat"
- ##### FUNCTION: Resize Video if too big ####
- `ffmpeg -i "${VIDEO_SOURCE}" 2> tmp.dat`
- if grep -q " Video: " tmp.dat
- then
- RESOLUTION=`grep " Video: " tmp.dat`
- RESOLUTION=`echo $RESOLUTION | sed -En 's/.* [0-9][0-9]+x([0-9]+) .*/\1/p'`
- echo $RESOLUTION
- if [[ $RESOLUTION -gt 720 ]];
- then
- ffmpeg -y -i "${VIDEO_SOURCE}" \
- -c:v libx264 \
- -crf 25 \
- -vf subtitles="${SUBTITLE_SOURCE}":${SUBTITLE_SETTINGS},scale=-2:480 \
- "${OUTPUT_FILENAME}"
- else
- ffmpeg -y -i "${VIDEO_SOURCE}" \
- -vf subtitles="${SUBTITLE_SOURCE}":${SUBTITLE_SETTINGS} \
- "${OUTPUT_FILENAME}"
- fi
- else
- # cat tmp.dat
- echo "ERROR: Unable to read source video \"$VIDEO_SOURCE\""
- exit 99
- fi
- if [ -f "tmp.dat" ];
- then
- rm "tmp.dat"
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement