The command is giving an error of "empty" archive because your are not passing it anything to tar for compressing.
-f what comes after should be the name of the archive to create and only then archives to compress (on your case, a directory).
For sending it to stdout to feed it to pipe, you should use the dummy option/shortcut "-"
tar -czf - Pictures | base64 | nc remote_host 443
As also @muru correctly points out, tar output to stdout by default, so another option if taking out the "-f".
tar -cz Pictures | base64 | nc remote_host 443
nc also in theory is also well capable of handling binary files when not sending them to the console, you can do without the extra step of base64 enconding and decoding. I certainly did it thousands of times without using base64.
I would also prefer using the
nc without -v for scripting in the remote side as in:
tar -czf - Pictures | nc remote_host 443
nc -lp 443 > secret.tgz # remote host