An armed man is holding dozens of people hostage on a bus in Rio de Janeiro and threatening to set the vehicle on fire, Brazilian police have said.

The Federal Highway Police said negotiations were under way with the man who has been holding 37 people hostage since about 5.30am local time on a busy bridge linking the suburb of Sao Goncalo to central Rio.

At least six hostages have been released so far and police said they told authorities the man had poured petrol in the bus and threatened to set it on fire.

Officials said the man has identified himself as a policeman but this has not been confirmed.

The man has not made any particular demands and appears to to have “psychological problems”, a spokesman for the traffic police said on TV Globo.

Rio’s elite police force known as BOPE is in charge of the negotiations, and a sniper has been placed nearby.

Traffic has been blocked in both directions on the bridge, with hundreds of vehicles stuck in queues.

Sao Goncalo is a violent, impoverished suburb separated from Rio by Guanabara Bay.