Web Video will not work since it only plays videos that have already been uploaded to the website by a different way
Discussion posts and replies are publicly visible
I think you can accomplish this by passing the in-Appian URL of the uploaded video file, i.e. perhaps by using "document(ri!videoFileId, "url")". I'll see if I can confirm in my community site.
Edit: tried it out and it works fine.
a!videoField( label: "Video", labelPosition: "ABOVE", videos: { a!webVideo( source: document(cons!MS_TEST_VIDEO, "url") ) } )