experimental Ham Radio Remote Rig Operations for a REMOTE ESSB VOICE setup using TCP/IP OPUS AUDIO Over IP server scripts for both TRANSMIT and RECEIVE on a Raspberry PI 2b connected via USB to an Elecraft K3S. (NOTE: the K3S has its own internal USB SOUND CARD that the PI is using as its own sound card too) The REMOTE OP does not have to forward any ports...all the TCP audio OVER ip SERVER WORK is done on the home base PI and the home base router is PORT FORWARDED to the PI
BASIC SETUP for this test run - to see how well the internet path holds up under the stress of these OPUS TCP AUDIO PACKETS, going through all kinds of HOPs, ROUTERs, and SWITCHes, etc, by using a TCP GSTREAMER LOOPBACK setup on the PI so that all incoming audio to the PI goes right back out to the REMOTE OP...To simulate remote microphone "VOICE", the REMOTE OP is transmitting ESSB AUDIO MP3s from N9UN's site...which first go to the PI over a VPN across a few states ...then get bounced back to the REMOTE OP across a few states again...so this will be a network challenge going through many hops/routers, switches...etc over the internet to and from the PI to the recording laptop...
NOTE: "system" on the PI, is the RIG's LINE INPUT and LINE OUTPUT that would be used(instead of loopbacking) to actually transmit MIC VOICE from the remote laptop station to the PI::RIG
the following GSTREAMER TCP SCRIPTS were used for this example:
PI
SEND AUDIO TO THE REMOTE OP:
pi@raspberrypi ~ $ gst-launch-1.0 -v jackaudiosrc ! queue ! audioconvert ! queue ! opusenc frame-size=2.5 bitrate=250000 inband-fec=true ! queue ! rtpopuspay ! queue ! rtpstreampay ! queue ! tcpserversink host=192.168.1.130 port=6002
RECEIVE AUDIO for transmit from the REMOTE OP:
pi@raspberrypi ~ $ gst-launch-1.0 tcpserversrc port=6003 host=192.168.1.130 do-timestamp=true ! "application/x-rtp-stream, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)X-GST-OPUS-DRAFT-SPITTKA-00, sprop-maxcapturerate=(string)48000, sprop-stereo=(string)0, payload=(int)96, encoding-params=(string)2, ssrc=(uint)2790831607, timestamp-offset=(uint)505251092, seqnum-offset=(uint)17627" ! queue ! rtpstreamdepay ! rtpjitterbuffer latency=500 ! rtpopusdepay ! opusdec use-inband-fec=true ! audioconvert ! audiorate ! audioresample quality=10 ! queue ! jackaudiosink buffer-time=500000
REMOTE OPs LAPTOP:
qrq@qrq:~$ gst-launch-1.0 -v jackaudiosrc ! audioconvert ! opusenc frame-size=2.5 inband-fec=true bitrate=250000 ! rtpopuspay ! rtpstreampay ! queue ! tcpclientsink host=(EXTERNAL IP address of the PI) port=6003
qrq@qrq:~$ gst-launch-1.0 -v tcpclientsrc host=(EXTERNAL IP address of the PI) port=6002 ! "application/x-rtp-stream, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)X-GST-OPUS-DRAFT-SPITTKA-00, payload=(int)96, ssrc=(uint)3839170915, timestamp-offset=(uint)2073047696, seqnum-offset=(uint)20185" ! rtpstreamdepay ! rtpjitterbuffer latency=500 ! rtpopusdepay ! opusdec ! audioconvert ! audiorate ! audioresample quality=10 ! jackaudiosink buffer-time=500000 sync=false
http://www.nu9n.com/mp3.html
Watch video Remote ESSB audio OVER ip - using TCP/IP Gstreamer scripts and a Raspberry PI::RIG interface online without registration, duration hours minute second in high quality. This video was added by user QRQcw 14 September 2019, don't forget to share it with your friends and acquaintances, it has been viewed on our site 211 once and liked it 4 people.