Remote ESSB audio OVER ip - using TCP/IP Gstreamer scripts and a Raspberry PI::RIG interface

QRQcw
QRQcw
207 بار بازدید - 5 سال پیش - experimental Ham Radio Remote Rig
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
5 سال پیش در تاریخ 1398/06/23 منتشر شده است.
207 بـار بازدید شده
... بیشتر