video – What's the difference in FFMPEG between using -c: v libx264, -c: v copy and -vcodec copy?

I'm trying to record video and audio from an IP camera streaming to H.264.

I found these different options:

-i "camera_url" -c: v libx264 -acodec copy "out.mp4"
-i "camera_url" -c: v copy -acodec copy "out.mp4"
-i "camera_url" -vcodec copy -acodec copy "out.mp4"

Could anyone tell me what is the difference between these 3 types of recordings?
As far as I know, the last is not transcoding, so everything that comes from the camera is stored in the file. What about the other 2?