JACKSONVILLE, Fla. -- An investigation into a confrontation between two members of Jacksonville's City Council and Jacksonville Sheriff's Officers conducting a traffic stop, all recorded on an officers body camera, has been closed.

JSO found that no laws were broken by council member Reginald Gaffney.

Body camera footage released Wednesday shows Gaffney being stopped by police for a reported stolen tag. Councilwoman Katrina Brown from a separate car accuses the officers of racially profiling Gaffney. Both Brown and Gaffney are African-American.

Brown specifically accused officers of pulling out in front of her car and profiling Gaffney for a traffic stop. The JSO sergeant on scene responded to Brown, saying "I would not condone racial profiling on my squad."

Gaffney apologized after the head of the Fraternal Order of Police, Steve Zona, demanded that Brown and Gaffney apologize or resign.

READ MORE: FOP accuses two Jax City Council members of abusing power, calls for apology or resignation

"I'm not a perfect man," Gaffney said. "I apologize for my behavior last week. I have always had the utmost respect for the men and women in uniform."

Police reports from the September 17 traffic incident and from March of 2016 show Gaffney's vehicle license plate had been reported stolen by Gaffney himself after he received tickets for running red lights. During the confrontation with police, Gaffney says he does not remember reporting the tag stolen but admits he "could have made" the report.

READ MORE: 'I don't know, things happened so fast': Councilman Gaffney responds to false report allegations

Gaffney told officers on the scene that he did not understand why he had been pulled over and says he had encountered police several times driving with the tag but was never pulled over. Gaffney told police he had just left a city council meeting and was heading home.

“I am fighting like hell to get you all more money and get more cops on the streets and for me to be harassed like I feel tonight, I just got out of the damn city council meeting. I have been behind a thousand cops, nobody pulled me over talking about my tag being stolen.” Gaffney can be heard on the video saying.

On Wednesday, JSO announced that Gaffney had broken no laws. They said a friend was driving his other vehicle and was responsible for the toll tickets. JSO said the auto repair shop most likely removed the tag temporarily and then put it back on after working on the vehicle.

Gaffney did notify police when his tag was back on the vehicle after filing the report, which caused the confusion, JSO said.

Following Gaffney's statement at City Council, Brown took the floor of the city council with strong words for FOP's president.

"I don't think I did anything wrong, so I'm not going to apologize," Brown said. "I receive attacks from FOP...because I ask questions my constituents want me to ask. I'm responsible for the constituents I represent."

"I never got out of my car, the [police officer] came up to me," Brown said. "The only thing I did was state my observation as a witness, I did not use my authority as a council member, I never even said I was a councilperson."

Following Brown and Gaffney's statements, Zona said he accepted Gaffney's apology and hoped all police officers accepted it as well. He disputed Brown's claims about FOP attacks on her agenda and said he plans to release his digital communications with Brown to the media as proof.

JSO is still investigating the earily release of the video without JSO's permission.