A cargo ship with 49 people evacuated from a ferry that caught fire in the Adriatic Sea has arrived in the Italian port of Bari, the first big group to reach land.

More than 160 people remain trapped on the smoke-filled vessel adrift in rough seas between Italy and Albania.

Helicopter crews have been airlifting passengers from the upper deck of the Norman Atlantic, which caught fire in the early hours of Sunday.

One person was killed in the risky rescue operation and two others were injured.

Bad weather hampered efforts overnight to attach cables to the ferry for towing, and a tug boat is expected to reach the ship to make another attempt.

Sky and Italian state television RAI reported that one of the people rescued said he had seen four people dead, but there was no confirmation of the report.

The Italian-flagged ferry, chartered by Greek ferry operator Anek Lines, was sailing between Patros in western Greece to Ancona in Italy carrying 478 passengers and crew and more than 200 vehicles when it caught fire.

All day and night, passengers huddled on the vessel's upper decks, pelted by rain and hail and struggling to breathe through the thick smoke.