Striking schoolteachers demanding better wages have clashed with riot police in Rio de Janeiro.

Hundreds of teachers protesting against a new payroll and benefit package proposed by mayor Eduardo Paes gathered in front of City Hall, in the central business district.

While councillors discussed the bill inside city Hall, the protest erupted into violence provoked by anti-establishment "black bloc" anarchists, police said.

Riot police fired rubber bullets and set off percussion grenades.

Dozens of people took shelter in the Odeon cinema, which was hosting red carpet events for the Rio Film Festival.

Police said that 20 people - all black blocs - were arrested on rioting, looting and resisting arrest charges.

Teachers have been on strike for 46 days and some had been camping outside City Hall for weeks.

Despite the protest, councillors approved the plan by 36 votes to three. Nine opposition councillors walked out as chaos erupted outside.

A wave of mass protests for social change has struck Brazil in recent months.

In June more than one million demonstrators took to the streets to protest against rising prices and corruption and calling for a boycott of the 2014 World Cup, on which they say the government has spent billions of dollars while neglecting social and public services.

A demonstrator lashes out at a municipal building during a teacher's strike in Rio de JaneiroReuters
Riot police clash with demonstrators in Rio de JaneiroReuters
A demonstration of teachers protesting for better wages was infiltrated by black bloc anarchists, police saidReuters
An anti-government demonstrator breaks ATMs inside a bank during the protestReuters
Striking schoolteachers protesting at a new payroll and benefit package surrounded by riot policeReuters
Police said 20 people were arrested on rioting and looting chargesReuters
An anti-government demonstrator kicks a window of a HSBC bank branch in RioReuters
A demonstrator throws a stone at the police outside the City HallReuters