Crowds of demonstrators gathered for an organised protest in Chicago, but there were only small scuffles with law enforcement.
The dashcam video shows officer Jason Van Dyke open fire 16 times on Laquan McDonald, 17.
Shot from an approaching cruiser, it shows McDonald run down the middle of the street towards a cruiser, hitch up his pants and then start to walk away from Van Dyke and his partner.
His body then spins and strikes the pavement. McDonald lifts his head, moves an arm and then a cloud from another gunshot rises up from his chest as he lays in a fetal position.
None of the officers approach McDonald to try to help him as he bleeds out on the street, writhing once in the remaining minute of video.
Prosecutors said Van Dyke opened fire just 30 seconds after his cruiser pulled up to the scene and six seconds after stepping out of it.
"It is graphic, it is violent, it is chilling," Cook County State's Attorney Anita Alvarez told reporters after charging Van Dyke with first degree murder.
"To watch a 17-year-old young man die in such a violent manner is deeply disturbing and I have absolutely no doubt this video will tear at the hearts of all Chicagoans."
It was the first time a Chicago police officer has been charged with first-degree murder for an on-duty fatality in more than 30 years, the Chicago Tribune reported.
Mayor Rahm Emanuel appealed for calm.
"I understand people will be upset and will want to protest when they see this video," he told reporters.
"It is fine to be passionate, but it is essential that it remains peaceful."
"People have a right to be angry. People have a right to protest. People have a right to free speech. But they do not have a right to commit criminal acts," he told reporters.
McDonald's family has joined community leaders and city officials in appealing for peace.
