People hide down alleys and in doorways, as the bang of gunfire sends them running for cover.
It's late evening in Urmia, a city in western Iran, and a confrontation between anti-government protesters and Iranian police is about to turn nasty.
A young boy is hit by a bullet. In the chaos of the dark night, he's lifted by people close to him, his blood pouring on to the street, and rushed to hospital.
The doctors try to save him, but 16-year-old Abdullah Mohammed Pour dies of his wounds, the latest casualty of the protests across Iran.
The Iranian security forces don't want the outside world to see the footage of this night, but the bravery of an eyewitness has made sure they have.
The video evidence that shows this unfold has been smuggled out of Iran and given to Sky News by an Iranian Kurdish man, Mohammed Ahmadi.
If he'd been caught, his life would have been in danger. He took the risk, so the world can see what is happening inside Iran.
'Batons, tear gas... then shots'
"No one expected the Basij [paramilitary force] to do this, [shoot at protesters] because it wasn't their job.
"There were special riot police deployed that evening to prevent people from protesting, so we were very surprised when the gunfire came from the Basij base. It was random, they had it all planned out.
"People thought that if they [the riot police] wanted to stop the protest then at most they would use batons or tear gas, but when the Basijis started shooting, they panicked."
The following morning, an angry crowd gathered at the city mosque. Abdullah's body was carried to be buried along with a second man who also died the previous night.
Hundreds turned up to the cemetery to grieve with the families. Some are seen in the videos standing in respectful silence, others chant "death to the dictator".
Around his grave, men wail in grief and mourning.
It's estimated more than 200 have been killed and thousands wounded and detained since the protests began following the death of a young Iranian Kurdish woman, Mahsa Amini, in September.
She was arrested by Iran's morality police for incorrectly wearing her hijab head-covering and died in custody. Iranian authorities claim she had pre-existing health conditions, but her family have previously told Sky News she was tortured.
The violence in Urmia continued for a second night.
"After the burial, people returned home and shops were closed that day in protest," Mohammed recounts.
"At dusk I saw young people coming out, mostly teenagers. The numbers grew, people were just walking, there was no protest or chanting.
"It was around 7.30pm or 8pm when I first heard the sound of bullets. I came out and there was a constant crackle of gunfire.
"The young people were just coming and going in the streets. It was obvious there was no real protest, but the Basij started firing.
"The people outside the Basij base were scared because there was an ambush. They fled into the alleys on either side of the street."
Finger and toenails pulled out
That night, some of Mohammed's friends were arrested and tortured - they were beaten, and he says one of them had their finger and toenails pulled out. They're still in prison.
The two days of violent crackdown in Urmia left three protesters dead and many wounded.
In revenge, protesters stormed the Basij police station, taking out furniture and burning it in the streets.
Mohammed's smuggled video and interview shows a 48-hour snapshot of just one town, during more than 40 days of ongoing nationwide protest.
The Iranian security forces have resorted to a tried and tested tactic: violence. But it's not working.