54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
HEADER="[Script Info]
|
|
ScriptType: v4.00+
|
|
Collisions: Normal
|
|
PlayDepth: 0
|
|
Timer: 100,0000
|
|
Video Aspect Ratio: 0
|
|
WrapStyle: 0
|
|
ScaledBorderAndShadow: no
|
|
|
|
[V4+ Styles]
|
|
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,StrikeOut,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
|
|
Style: Default,Arial,16,&H00FFFFFF,&H00FFFFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,0,2,10,10,10,0
|
|
Style: Top,Arial,16,&H00F9FFFF,&H00FFFFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,0,8,10,10,10,0
|
|
Style: Mid,Arial,16,&H0000FFFF,&H00FFFFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,0,5,10,10,10,0
|
|
Style: Bot,Arial,16,&H00F9FFF9,&H00FFFFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,0,2,10,10,10,0"
|
|
|
|
OUTFILE="out.ass"
|
|
|
|
in1=$(mktemp --suffix ".ass")
|
|
in2=$(mktemp --suffix ".ass")
|
|
|
|
# Convert 1st srt to ass
|
|
ffmpeg -i "$1" "$in1"
|
|
|
|
# Convert 2nd srt to ass
|
|
ffmpeg -i "$2" "$in2"
|
|
|
|
# Write header
|
|
cat <<< "$HEADER" > $OUTFILE
|
|
|
|
# Get events from 1st input
|
|
# awk is easier
|
|
awk '
|
|
/\[Events\]/,EOF {
|
|
str = $0
|
|
sub(/,Default,/, ",Top,", str)
|
|
print str
|
|
}' "$in1" >> $OUTFILE
|
|
|
|
# Get events from 2nd input
|
|
# awk is easier
|
|
awk -v ORS="" '
|
|
/\[Events\]/,EOF {
|
|
str = $0
|
|
sub(/,Default,/, ",Bot,", str)
|
|
print str
|
|
}' "$in2" >> $OUTFILE
|
|
|
|
# cleanup
|
|
rm "$in1"
|
|
rm "$in2"
|