Измените его на этот
setTimeout(() => {
$('#overlay').hide();
}, 12000);
.modal класс является частью другой библиотеки / фреймворка (я подозреваю Bootstrap)
Кроме того, вам не нужно $('#overlay').modal('show')
, если вы хотитеон появляется при загрузке страницы
И, если вы хотите, чтобы это произошло в конце видео, тогда:
1) Вам необходимо удалить атрибут loop
из элемента <video>
2) Вам необходимо добавить EventListener, который будет ждать события окончания видео.
Что-то вроде
const video = document.querySelector('video');
video.onended = (event) => {
$('#overlay').hide();
};
JSFiddle link https://jsfiddle.net/67ujLnsx/