Are you streaming full length hd movies around the home or small low quality clips of internet filler type vids?
Sharing pictures with other machines locally and for your devices on the go is a matter of network configuration and possibly port forwarding your desired port through your router to the machine hosting the media. Not sure how mac does this but on windows you could skip all that and simply make a homegroup and share the directory and all other machines in the group will basically see the shared directory like you would see a drive under 'My Computer'.
View attachment 97395
Video is a bit different and it really amounts to what you are trying to stream (actual file properties, container and encoding format). If they are tiny mp4 files h.264 encoded for example, players like media player classic can use network buffering no problem and assuming you have feasible hardware holding the source video, and a halfway decent device for playback you could get away with locally "streaming" up to maybe a 1gb video file but beyond that is all horseshoes and hand grenades.
If you have tons of encoding formats/video containers you may want to actually purchase a media streaming software, or setup a dedicated linux machine and build a halfway decent media server using free software and all it will take is a small amount of research to go either route.
I could get into specifics but I talk too much as it is. If you want to do something slick and be able to customize it for rooms in your home... try something like this
https://www.mythtv.org/detail/mythtv
you will need to do a bit of reading but if you really want a decent media setup that is a nice way to go as you can fully customize it though if you are not capping cable, storing your movies and eps or wanting to stream to the home entertainment center as well as the basics you mentioned this may be complete overkill.