A police officer has been filmed allegedly punching a teenage girl in the head during an arrest at a pro-marijuana rally in central Melbourne.

Footage of the incident emerged on Saturday after the 15-year-old was arrested at the rally in Flagstaff Gardens about 2.30pm.

Witnesses said the teen was pulled to the ground by officers during her arrest. When she was eventually led away, she allegedly spat in the face of a female officer, who appears to retaliate with a right hook.

The girl was charged with trafficking drugs, possessing drugs and assaulting an officer. She is due to face the Children's Court at a later date.