How do you solve a problem like marina?
Ok that title gag is awful, and probably pommy and dated already.
This is a Shaw 650, there are many like it, but this is mine.
Now I've already done live streaming to YouTube and Facebook simultaneously, I've done it over mobile, last years 'oceanhippie's outside broadcast truck' was nearly portable, if you call a laptop, mixer, inverter, dual battery system and 2.5tons of Toyota Land Cruiser portable. Clearly its not going to fit on a Shaw with no electricity - and I'm a weight nazi to boot.
I've been through various potential setups, many involving a raspberry pi, one involving a second hand pc in an ammo box. (Right)
It comes down to a Raspberry Pi doesn't have any grunt. The PI cam is good. and it works. Even from a pi zero - well it did till I tried to solder an external antenna conection to it now its dead.
To live stream to youtube from a PI zero:
Ok the FFMPEG package for the PI is out of date/or doesn't work missing bits or something. Don't use it. Building from source takes close to eternity by all accounts. Solution download the armel build from here: https://www.johnvansickle.com/ffmpeg/rking ffmpeg for a pi.
the command:
raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/[your stream key]
Will push it to youtube.
If you want to edit it somewhere with say obs then run up nginx on the obs box and change put rtmp://[ipofnginx]/application instead of youtube.
To stream a proper camcorder using a pi
You will need a Elgato Game Capture HD for this these are getting quite cheap on ebay these days.
The driver for this Will Compile and run fine on Raspberry PI 3! yay!
The instructions seem short a couple of firmware files, in the end I think this was what I ran:
sudo apt-get install git dmg2img hfsprogs libusb-dev clang make build-essential cmake install libusb-1.0-0-dev
git clone https://github.com/tolga9009/elgato-gchd.git
wget http://files.elgato.com/gamecapture/gchdm_203_970.dmg
dmg2img gchdm_203_970.dmg -o gchdm_203_970.dmg.img
mkdir /tmp/dmg
sudo mount -o loop -t hfsplus gchdm_203_970.dmg.img /tmp/dmg
sudo mkdir /usr/local/lib/firmware
sudo mkdir /usr/local/lib/firmware/gchd
sudo cp /tmp/dmg/Game\ Capture\ HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_idle.bin /usr/local/lib/firmware/gchd/
sudo cp /tmp/dmg/Game\ Capture\ HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_enc_h.bin /usr/local/lib/firmware/gchd/
sudo cp /tmp/dmg/Game\ Capture\ HD.app/Contents/Resources/Firmware/Beddo/*assp* /usr/local/lib/firmware/gchd/
cd elgato-gchd
mkdir build
cd build
cmake ..
make
make install
Then I plugged in a Camcorder at 1080p and the Elgato, and ran:
gchd -c yuv -of socket [ipaddress]:[portnumber]
where ip address = ip of a computer running obs and VLC adding a VLC source of udp://@[ipaddress]:[portnumber]
I don't have it straight to youtube yet, but I probably won't need to - I'm building a wifi network round the bay or can stream it to an IP in AWS and pump it to yourube from there.
A little note about utp streams ffmpeg vlc etc. utp streams don't listen in the client server type model. you "push" so ffmpeg udp or gchd socket to the ip of your laptop or whatever. Then on the laptop put the laptop IP into VLC with and @ on the front to receive it. This never seems to be explained anywhere and did my nut in