fi
tmp_video=tmp$$.mp4
-ratio=0.65
+
+function get_duration() {
+ ffmpeg -i $1 2>&1 | \
+ awk -F, '/Duration/{print $1}' | \
+ awk -F: '{print $2*3600 + $3*60 + $4}'
+}
+
+duration_audio=`get_duration $input_audio`
+echo Duration of audio is $duration_audio seconds
+
+duration_video=`get_duration $input_video`
+echo Duration of video is $duration_video seconds
+
+av_ratio=$(echo "2k $duration_audio $duration_video / p" | dc)
+echo Calculated audio/video ratio is $av_ratio
+
# make video about the same length as the audio
ffmpeg \
-i $input_video \
- -filter:v "setpts=${ratio}*PTS" \
+ -filter:v "setpts=${av_ratio}*PTS" \
$tmp_video
# adds audio to video,
-b:a 192k \
output.mp4
-
[[ -f $tmp_video ]] && rm $tmp_video