Difference between revisions of "Broadcastify/RTLSDR-Airband"
From The RadioReference Wiki
(78 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | RTLSDR-Airband receives analog radio voice channels and produces audio streams which can be routed to various outputs. | + | RTLSDR-Airband or rtl_airband receives analog radio voice channels and produces audio streams which can be routed to various outputs. |
+ | |||
Download: https://github.com/szpajder/RTLSDR-Airband | Download: https://github.com/szpajder/RTLSDR-Airband | ||
− | |||
− | + | Broadcastify Fully Supports RTLSDR-Airband or rtl_airband. | |
+ | |||
+ | |||
+ | RTLSDR-Airband or rtl_airband - User's Manual: https://github.com/szpajder/RTLSDR-Airband/wiki | ||
+ | |||
+ | |||
+ | |||
+ | RTLSDR-Airband or rtl_airband support multiple frequency channel scanning features. | ||
+ | |||
+ | |||
+ | |||
+ | Here is a custom rtl_airband.conf config file for Broadcastify server and local Icecast server if you have it setup in your Raspberry Pi unit. | ||
+ | |||
− | # Sample file of " | + | |
+ | Else you can set "disable = true;" if you do not need that section profile enabled. Otherwise set "disabled = false;" if you need that section profile to be enabled for active usage. | ||
+ | |||
+ | |||
+ | |||
+ | --- BOF /usr/local/etc/rtl_airband.conf --- | ||
+ | |||
+ | <nowiki> | ||
+ | # Sample file of "rtl-airband.conf" output to BroadCastify.com icecast streaming server | ||
+ | # RTLSDR-Airband - User's Manual: https://github.com/szpajder/RTLSDR-Airband/wiki | ||
# index = 0 => First dongle | # index = 0 => First dongle | ||
Line 15: | Line 36: | ||
type = "rtlsdr"; | type = "rtlsdr"; | ||
index = 0; | index = 0; | ||
− | gain = | + | gain = 22.9; |
correction = 0; | correction = 0; | ||
mode = "scan"; | mode = "scan"; | ||
Line 22: | Line 43: | ||
{ | { | ||
# squelch = 30; # Uncomment to set squelch manually | # squelch = 30; # Uncomment to set squelch manually | ||
− | freqs = ( 118200000, 119450000, 121900000, 124200000 ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY | + | freqs = ( 118200000, 119450000, 121900000, 124200000 ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY |
− | labels = ( "Tower", "S-Approach", "Ground", "N-Approach" ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY_NAME_LABELS | + | labels = ( "Tower", "S-Approach", "Ground", "N-Approach" ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY_NAME_LABELS |
outputs: ( | outputs: ( | ||
# For local IceCast server | # For local IceCast server | ||
{ | { | ||
+ | disable = true; # IF_NO_LOCAL_ICECAST_SERVER_IS_AVAILABLE_SET_IT_TO_TRUE | ||
type = "icecast"; | type = "icecast"; | ||
server = "127.0.0.1"; | server = "127.0.0.1"; | ||
Line 36: | Line 58: | ||
username = "source"; | username = "source"; | ||
password = "hackme"; | password = "hackme"; | ||
− | send_scan_freq_tags = | + | send_scan_freq_tags = false; |
description = "LOCAL IceCast Server"; | description = "LOCAL IceCast Server"; | ||
}, | }, | ||
Line 42: | Line 64: | ||
# For remote BroadCastify server | # For remote BroadCastify server | ||
{ | { | ||
+ | disable = false; # THIS_PROFILE_TEMPLATE_ACTIVE_IN_USED | ||
type = "icecast"; | type = "icecast"; | ||
− | server = " | + | server = "audioXXXXXXXX.radioreference.com"; # FROM_YOUR_RR_FEED_PROVIDER_PAGE |
− | port = 80; # PORT_OF_RR_FEED_PROVIDER_ICECAST_SERVER_USUALLY_8000 | + | port = 80; # PORT_OF_RR_FEED_PROVIDER_ICECAST_SERVER_USUALLY_8000 |
− | mountpoint = "XXXXXXXX"; # MOUNT_POINT_FROM_YOUR_RR_FEED_PROVIDER_PAGE | + | mountpoint = "XXXXXXXX"; # MOUNT_POINT_FROM_YOUR_RR_FEED_PROVIDER_PAGE |
− | name = "XXXXXXXX"; # FEED_NAME_THAT_RR_GAVE_YOU_WHEN_YOU_APPLIED | + | name = "XXXXXXXX"; # FEED_NAME_THAT_RR_GAVE_YOU_WHEN_YOU_APPLIED |
genre = "ATC"; | genre = "ATC"; | ||
username = "source"; | username = "source"; | ||
− | password = "XXXXXXXX"; # PASSWD_FROM_YOUR_RR_FEED_PROVIDER_PAGE | + | password = "XXXXXXXX"; # PASSWD_FROM_YOUR_RR_FEED_PROVIDER_PAGE |
− | send_scan_freq_tags = | + | send_scan_freq_tags = false; |
− | description = "XXXXXXXX"; # DESCRIPTION_ASSIGNED_FROM_YOUR_RR_FEED_APPLICATION | + | description = "XXXXXXXX"; # DESCRIPTION_ASSIGNED_FROM_YOUR_RR_FEED_APPLICATION |
} | } | ||
− | # If you need more outputs, put here ... | + | # If you need more outputs, put under here ... |
+ | |||
− | # Make sure you remove the comma at the end of the profile segment template e.g. "}," to "}" else you get | + | # NOTICE: Make sure you remove the comma at the end of the profile segment template. |
+ | # e.g. From "}," to "}" else you get an error. For the last profile template segment only. | ||
); | ); | ||
Line 63: | Line 88: | ||
} | } | ||
); | ); | ||
+ | </nowiki> | ||
+ | |||
+ | --- EOF /usr/local/etc/rtl_airband.conf --- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Recommended RTL-Airband sample compile script for Raspberry Pi 2/3 uses V3D GPU mode by Tomasz Lemiech [mailto:szpajder@gmail.com szpajder@gmail.com] | ||
+ | |||
+ | |||
+ | --- BOF /root/rtl-airband-compile.sh --- | ||
+ | |||
+ | <nowiki> | ||
+ | #!/bin/bash | ||
+ | clear | ||
+ | cd ~ | ||
+ | apt-get install build-essential libmp3lame-dev libshout3-dev libconfig++-dev libraspberrypi-dev librtlsdr-dev git cmake libfftw3-dev -y | ||
+ | git clone https://github.com/szpajder/RTLSDR-Airband.git | ||
+ | cd RTLSDR-Airband | ||
+ | git checkout unstable | ||
+ | make help | ||
+ | sleep 10 | ||
+ | cp /usr/local/etc/rtl_airband.conf /usr/local/etc/rtl_airband.conf.old | ||
+ | rm /usr/local/etc/rtl_airband.conf -R -f | ||
+ | make clean | ||
+ | make PLATFORM=rpiv2 | ||
+ | make install | ||
+ | ldconfig | ||
+ | cd ~ | ||
+ | </nowiki> | ||
+ | |||
+ | --- EOF /root/rtl-airband-compile.sh --- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Instruction to activate and run at service mode... https://github.com/szpajder/RTLSDR-Airband/wiki/Running-the-program | ||
+ | |||
+ | |||
+ | Else see here is the summary of commands on the shell terminal... | ||
+ | |||
+ | <nowiki> | ||
+ | sudo chown root.root /etc/systemd/system/rtl_airband.service | ||
+ | sudo chmod 0777 /etc/systemd/system/rtl_airband.service | ||
+ | sudo systemctl disable rtl_airband | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable rtl_airband | ||
+ | sudo systemctl restart rtl_airband | ||
+ | sudo systemctl status rtl_airband | ||
+ | </nowiki> | ||
+ | |||
+ | |||
+ | |||
+ | --- BOF /etc/systemd/system/rtl_airband.service --- | ||
+ | <nowiki> | ||
+ | [Unit] | ||
+ | Description=SDR AM/NFM demodulator | ||
+ | Documentation=https://github.com/szpajder/RTLSDR-Airband/wiki | ||
+ | Wants=network.target | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStart=/usr/local/bin/rtl_airband -Fe -c /usr/local/etc/rtl_airband.conf | ||
+ | # The program may exit only due to startup failure (eg. misconfiguration) | ||
+ | # or due to failure of all SDR devices (eg. disconnection). In either case, | ||
+ | # there is no point to restart it, because it would fail once again. | ||
+ | Restart=no | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </nowiki> | ||
+ | |||
+ | --- EOF /etc/systemd/system/rtl_airband.service --- | ||
+ | |||
+ | |||
+ | |||
+ | Insert this Audio web tag at the end of the html code to auto play the local icecast server VHF audio streams... | ||
+ | |||
+ | --- BOF /var/www/html/index.html --- | ||
+ | <nowiki> | ||
+ | <p> | ||
+ | <b>WMSA - Sultan Abdul Aziz Shah Airport - Subang - Air Traffic Controller</b><br> | ||
+ | <audio controls autoplay> <source src="http://rodyeo.dyndns.org:8000/wmsa" type="audio/mpeg">Click to play</audio> | ||
+ | </p> | ||
+ | <p> | ||
+ | <b>WMKK - Kuala Lumpur International Airport - Sepang - Air Traffic Controller</b><br> | ||
+ | <audio controls> <source src="http://rodyeo.dyndns.org:8000/wmkk" type="audio/mpeg">Click to play</audio> | ||
+ | </p> | ||
+ | </nowiki> | ||
+ | |||
+ | --- EOF /var/www/html/index.html --- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | * Acknowledgement to Tomasz Lemiech [mailto:szpajder@gmail.com szpajder@gmail.com] for his constant guide and tutorial mentoring to make this simplifed manual guide easy for newbies... a big "Thank You" to him... else I would not have perfected my RTL-Airband audio streaming at http://rodyeo.dyndns.org/ ;) | ||
+ | |||
+ | |||
+ | |||
+ | Multiple source streaming sample file config @ http://rodyeo.dyndns.org/download/rb24-vhf-share.zip by http://rodyeo.dyndns.org/ | ||
+ | |||
+ | Also reference to another thread posting ... https://wiki.radioreference.com/index.php/Raspberry_Pi_RTL-SDR_Broadcastify | ||
+ | |||
+ | |||
+ | [[Category:Software for Live Audio Broadcasting]] |
Revision as of 10:10, 15 July 2020
RTLSDR-Airband or rtl_airband receives analog radio voice channels and produces audio streams which can be routed to various outputs.
Download: https://github.com/szpajder/RTLSDR-Airband
Broadcastify Fully Supports RTLSDR-Airband or rtl_airband.
RTLSDR-Airband or rtl_airband - User's Manual: https://github.com/szpajder/RTLSDR-Airband/wiki
RTLSDR-Airband or rtl_airband support multiple frequency channel scanning features.
Here is a custom rtl_airband.conf config file for Broadcastify server and local Icecast server if you have it setup in your Raspberry Pi unit.
Else you can set "disable = true;" if you do not need that section profile enabled. Otherwise set "disabled = false;" if you need that section profile to be enabled for active usage.
--- BOF /usr/local/etc/rtl_airband.conf ---
# Sample file of "rtl-airband.conf" output to BroadCastify.com icecast streaming server # RTLSDR-Airband - User's Manual: https://github.com/szpajder/RTLSDR-Airband/wiki # index = 0 => First dongle # index = 1 => Second dongle devices: ({ type = "rtlsdr"; index = 0; gain = 22.9; correction = 0; mode = "scan"; channels: ( { # squelch = 30; # Uncomment to set squelch manually freqs = ( 118200000, 119450000, 121900000, 124200000 ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY labels = ( "Tower", "S-Approach", "Ground", "N-Approach" ); # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY_NAME_LABELS outputs: ( # For local IceCast server { disable = true; # IF_NO_LOCAL_ICECAST_SERVER_IS_AVAILABLE_SET_IT_TO_TRUE type = "icecast"; server = "127.0.0.1"; port = 8000; mountpoint = "LOCAL"; name = "Airport_ICAO"; genre = "ATC"; username = "source"; password = "hackme"; send_scan_freq_tags = false; description = "LOCAL IceCast Server"; }, # For remote BroadCastify server { disable = false; # THIS_PROFILE_TEMPLATE_ACTIVE_IN_USED type = "icecast"; server = "audioXXXXXXXX.radioreference.com"; # FROM_YOUR_RR_FEED_PROVIDER_PAGE port = 80; # PORT_OF_RR_FEED_PROVIDER_ICECAST_SERVER_USUALLY_8000 mountpoint = "XXXXXXXX"; # MOUNT_POINT_FROM_YOUR_RR_FEED_PROVIDER_PAGE name = "XXXXXXXX"; # FEED_NAME_THAT_RR_GAVE_YOU_WHEN_YOU_APPLIED genre = "ATC"; username = "source"; password = "XXXXXXXX"; # PASSWD_FROM_YOUR_RR_FEED_PROVIDER_PAGE send_scan_freq_tags = false; description = "XXXXXXXX"; # DESCRIPTION_ASSIGNED_FROM_YOUR_RR_FEED_APPLICATION } # If you need more outputs, put under here ... # NOTICE: Make sure you remove the comma at the end of the profile segment template. # e.g. From "}," to "}" else you get an error. For the last profile template segment only. ); } ); } );
--- EOF /usr/local/etc/rtl_airband.conf ---
Recommended RTL-Airband sample compile script for Raspberry Pi 2/3 uses V3D GPU mode by Tomasz Lemiech szpajder@gmail.com
--- BOF /root/rtl-airband-compile.sh ---
#!/bin/bash clear cd ~ apt-get install build-essential libmp3lame-dev libshout3-dev libconfig++-dev libraspberrypi-dev librtlsdr-dev git cmake libfftw3-dev -y git clone https://github.com/szpajder/RTLSDR-Airband.git cd RTLSDR-Airband git checkout unstable make help sleep 10 cp /usr/local/etc/rtl_airband.conf /usr/local/etc/rtl_airband.conf.old rm /usr/local/etc/rtl_airband.conf -R -f make clean make PLATFORM=rpiv2 make install ldconfig cd ~
--- EOF /root/rtl-airband-compile.sh ---
Instruction to activate and run at service mode... https://github.com/szpajder/RTLSDR-Airband/wiki/Running-the-program
Else see here is the summary of commands on the shell terminal...
sudo chown root.root /etc/systemd/system/rtl_airband.service sudo chmod 0777 /etc/systemd/system/rtl_airband.service sudo systemctl disable rtl_airband sudo systemctl daemon-reload sudo systemctl enable rtl_airband sudo systemctl restart rtl_airband sudo systemctl status rtl_airband
--- BOF /etc/systemd/system/rtl_airband.service ---
[Unit] Description=SDR AM/NFM demodulator Documentation=https://github.com/szpajder/RTLSDR-Airband/wiki Wants=network.target After=network.target [Service] Type=simple ExecStart=/usr/local/bin/rtl_airband -Fe -c /usr/local/etc/rtl_airband.conf # The program may exit only due to startup failure (eg. misconfiguration) # or due to failure of all SDR devices (eg. disconnection). In either case, # there is no point to restart it, because it would fail once again. Restart=no [Install] WantedBy=multi-user.target
--- EOF /etc/systemd/system/rtl_airband.service ---
Insert this Audio web tag at the end of the html code to auto play the local icecast server VHF audio streams...
--- BOF /var/www/html/index.html ---
<p> <b>WMSA - Sultan Abdul Aziz Shah Airport - Subang - Air Traffic Controller</b><br> <audio controls autoplay> <source src="http://rodyeo.dyndns.org:8000/wmsa" type="audio/mpeg">Click to play</audio> </p> <p> <b>WMKK - Kuala Lumpur International Airport - Sepang - Air Traffic Controller</b><br> <audio controls> <source src="http://rodyeo.dyndns.org:8000/wmkk" type="audio/mpeg">Click to play</audio> </p>
--- EOF /var/www/html/index.html ---
- Acknowledgement to Tomasz Lemiech szpajder@gmail.com for his constant guide and tutorial mentoring to make this simplifed manual guide easy for newbies... a big "Thank You" to him... else I would not have perfected my RTL-Airband audio streaming at http://rodyeo.dyndns.org/ ;)
Multiple source streaming sample file config @ http://rodyeo.dyndns.org/download/rb24-vhf-share.zip by http://rodyeo.dyndns.org/
Also reference to another thread posting ... https://wiki.radioreference.com/index.php/Raspberry_Pi_RTL-SDR_Broadcastify