You might need to also add --gidmap=n:{video_gid}:1, otherwise the host video group won't have a matching group in the container's user namespace. n can be any number you pick, so long as it doesn't clash with an existing gid in the container. Unsure if --group-add=keep-groups does this already. You can check /proc/self/gid_map to see what is already being mapped.
Of course the container user will need group n (from the gidmap flag above) either as primary or in the supplementary groups.
[edit: I wrote this at 3am on my phone, and I misunderstood how the --gidmap flag works. This code won't work, but I think the diagnosis is correct: there's no mapping from the host's video group to the container's user namespace, see my other comment in reply to OP]