If you do put the Pi in the ROV, beware of using WiFi, as water absorbs 2.4 GHz signals especially well. To my knowledge, Raspberry Pi only has 2.4 GHz WiFi (and most likely, 5 GHz would not fare much better - real submarines use VLF (Wikipedia says 3-30 KHz) and there's no hope of homebrewing anything to transmit video over that.
Also, salt water is more of a nuisance to radio than fresh water, since it conducts electricity better.
If you absolutely need wireless, consider radio modems of lower frequencies and significant power (e.g. 1W or maybe 2W, but some frequencies and power levels might be illegal in some lands).
If you don't need wireless, use an Ethernet cable as a tether - transmit video over the network. Finding the slimmest properly made Ethernet cable will then be the biggest challenge.
If you want Raspivid to transmit over a network, there are many choices. It has its built-in -u command line option (UDP), and you can also install gstreamer and its various plugins, direct the standard output of "raspivid" into the standard input of "gst-launch-1.0" and have it wrap the H264 stream into RTP packets, then receive, unwrap and display them on the other side.
I have done it, and while the command lines are often complicated and messy, it works reliably.
Example transmit side pipeline (expects host IP as command line argument):
Code: Select all
raspivid -f -n -t 0 -w 640 -h 480 -b 1000000 -fps 30 -ex auto -pf baseline -o - | \
gst-launch-1.0 -v fdsrc fd=0 ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=$1 port=9000
Example receive side pipeline:
Code: Select all
gst-launch-1.0 -v udpsrc port=9000 \
caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' \
! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false