Police in Brazilian city of Rio de Janeiro have fired tear gas and set off deafening percussion grenades to disperse striking teachers gathered in central business district demanding better pay.

Clashes broke out on Tuesday as police skirmished with schoolteachers who have been striking for more than a month.

Chaos broke out in late afternoon when police officers set off deafening percussion grenades and fired rubber bullets in this densely frequented commercial district. Some main thoroughfares were closed, snarling traffic.

Negotiations between the city and the teachers' unions have been acrimonious, and Tuesday was the strike's 46th day.

Teachers opposed to the mayor's pay proposal have invaded City Hall trying to disrupt proceedings and police have repeatedly sprayed strikers with clouds of tear gas, rubber bullets and percussion grenades.

Rio's police forces have come under criticism in recent months for their forceful responses to a series of street protests that have swept the city since June, when small demonstrations against a subway and bus fare hike in Sao Paulo snowballed into a nationwide movement.

The head of the military police was replaced, but allegations of police brutality against demonstrators have persisted under his successor.