The engines of a luxury cruise ship that narrowly escaped disaster during a storm off Norway on Saturday failed because of relatively low levels of lubricating oil in the engines, the Norwegian Maritime Authority said on Wednesday.

The Viking Sky, with almost 1,400 passengers and crew aboard, sent out a mayday signal on Saturday as it drifted in rough waters in the Norwegian Sea to within 100 metres of land. All four engines had failed, but crew managed to restart one of the engines just in time.

"Our conclusion is that the engine failure was directly caused by low oil pressure," the Norwegian Maritime Authority said in a statement.

"The level of lubricating oil in the tanks was within set limits, however relatively low, when the vessel started to cross Hustadvika," it added, referring to the stretch of water where the incident happened.

The heavy seas probably caused movements in the tanks so large that the supply to the lubricating oil pumps stopped, the regulator said.

This triggered an alarm indicating a low level of lubricating oil, which in turn caused an automatic shutdown of the engines.

Rescue services airlifted 479 people, hoisting them one-by-one onto helicopters, before the weather subsided on Sunday and a tow could begin.