Hungarian police have detained the captain of a vessel that collided with another sightseeing boat on a busy stretch of the Danube river, resulting in the death of at least seven South Korean tourists with 21 others still missing.

"The Ukrainian captain of the cruise ship was questioned as a suspect by investigators in relation to 'endangering waterborne traffic resulting in multiple deaths'", police said in a statement.

"After being questioned, 64-year-old Yuriy C., a resident of Odessa, was detained and a request for his arrest has been made," the statement added.

The suspect was the captain of the 135-metre four-storey Viking Sigyn "longship", which collided with the 26-metre Mermaid.

The boat reportedly collided with another tourist vessel near the Hungarian parliament building, then turned over on the river, which has been flooding, with very strong currents, while a rainstorm enveloped Budapest.

Mihaly Toth, a spokesman of the boat's owner, told state television that the boat - the Mermaid - had sunk.

Hungarian police have launched a criminal investigation into the accident.

"A criminal investigation has been launched. Police are investigating at the scene," police colonel Adrian Pal told reporters.

Police said the boat had been carrying 33 South Korean tourists plus a crew of two. A state media reporter cited a South Korean embassy official as saying the passengers included children. Journalists at the scene said they saw children's ambulances on the riverbank.

An ambulance spokesman told state television that 14 people had been pulled out of the water so far. Seven of them have died, with the other seven suffering from hypothermia but stable. It was not immediately clear exactly how many of the remaining 21 people were still missing.

Dozens of emergency vehicles were visible on a stretch several kilometres downstream from the site of the accident, which happened shortly after 9pm local time.

The hours that have passed since the accident make it less likely that new survivors will be found in the central Budapest area, as the strong currents have carried people far downstream, emergency rescue chiefs told state media.

The National Ambulance Service was conducting searches on a long stretch downstream from Budapest and on alert on the entire Danube stretch south of Budapest in Hungary, where all boat traffic has been halted.

Television footage showed the bank of the Danube closed off by police on the Pest side, across from the World Heritage site of Buda Castle.

The Danube's flooding and currents made rescue efforts extremely difficult, a rescue diver told the state broadcaster, adding that the waters of the Danube were only about 10-12 degrees Celsius.

The boat was a 27-metre double-decker river cruise boat that can hold up to 60 people and was equipped with a 150-horsepower engine, its owner, Panorama Deck Ltd., told state media.

"We are mobilising every resource we have to protect human lives," they added.

The Mermaid had been in their fleet since 2003 and received regular maintenance, they said.

According to boat register, the Mermaid was originally manufactured in 1949 in the Soviet Union and received a Hungarian-made new engine in the 1980s.

Neither the boat registry nor the boat's operator could be immediately reached for comment on the boat's age.

A shipping expert told state television that it was likely that the pleasure boat had collided with a very large vessel that had sunk it very quickly.

The hull was found on the riverbed just a few hundred metres from its usual mooring point.