mirror of
https://github.com/smittix/intercept.git
synced 2026-06-08 06:01:56 -07:00
Fix audio dependency to use ffmpeg instead of sox
The Listening Post actually uses ffmpeg for audio encoding, not sox. Updated all documentation, setup scripts, and code to reflect this: - Removed unused find_sox() function from listening_post.py - Simplified tools endpoint to only check for ffmpeg - Updated CHANGELOG, README, HARDWARE.md, Dockerfile - Fixed setup.sh to check for ffmpeg - Updated frontend warnings to mention ffmpeg 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+4
-4
@@ -7,13 +7,13 @@ All notable changes to INTERCEPT will be documented in this file.
|
||||
### Added
|
||||
- **Listening Post Mode** - New frequency scanner with automatic signal detection
|
||||
- Scans frequency ranges and stops on detected signals
|
||||
- Real-time audio monitoring with sox integration
|
||||
- Real-time audio monitoring with ffmpeg integration
|
||||
- Skip button to continue scanning after signal detection
|
||||
- Configurable dwell time, squelch, and step size
|
||||
- Preset frequency bands (FM broadcast, Air band, Marine, etc.)
|
||||
- Activity log of detected signals
|
||||
- **Aircraft Dashboard Improvements**
|
||||
- Dependency warning when rtl_fm or sox not installed
|
||||
- Dependency warning when rtl_fm or ffmpeg not installed
|
||||
- Auto-restart audio when switching frequencies
|
||||
- Fixed toolbar overflow with custom frequency input
|
||||
- **Device Correlation** - Match WiFi and Bluetooth devices by manufacturer
|
||||
@@ -29,10 +29,10 @@ All notable changes to INTERCEPT will be documented in this file.
|
||||
- **Setup Script Rewrite**
|
||||
- Full macOS support with Homebrew auto-installation
|
||||
- Improved Debian/Ubuntu package detection
|
||||
- Added sox to tool checks
|
||||
- Added ffmpeg to tool checks
|
||||
- Better error messages with platform-specific install commands
|
||||
- **Dockerfile Updated**
|
||||
- Added sox and libsox-fmt-all for Listening Post audio
|
||||
- Added ffmpeg for Listening Post audio encoding
|
||||
- Added dump1090 with fallback for different package names
|
||||
|
||||
### Fixed
|
||||
|
||||
+1
-2
@@ -20,8 +20,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# Pager decoder
|
||||
multimon-ng \
|
||||
# Audio tools for Listening Post
|
||||
sox \
|
||||
libsox-fmt-all \
|
||||
ffmpeg \
|
||||
# WiFi tools (aircrack-ng suite)
|
||||
aircrack-ng \
|
||||
iw \
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
**2. Install dependencies:**
|
||||
```bash
|
||||
# Required
|
||||
brew install python@3.11 librtlsdr multimon-ng rtl_433 sox
|
||||
brew install python@3.11 librtlsdr multimon-ng rtl_433 ffmpeg
|
||||
|
||||
# For ADS-B aircraft tracking
|
||||
brew install dump1090-mutability
|
||||
@@ -66,7 +66,7 @@ sudo apt update
|
||||
sudo apt install -y python3 python3-pip python3-venv git
|
||||
|
||||
# Required SDR tools
|
||||
sudo apt install -y rtl-sdr multimon-ng rtl-433 sox
|
||||
sudo apt install -y rtl-sdr multimon-ng rtl-433 ffmpeg
|
||||
|
||||
# For ADS-B aircraft tracking (package name varies)
|
||||
sudo apt install -y dump1090-mutability # or dump1090-fa
|
||||
|
||||
+3
-3
@@ -21,7 +21,7 @@ INTERCEPT automatically detects connected devices.
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Core tools (required)
|
||||
brew install python@3.11 librtlsdr multimon-ng rtl_433 sox
|
||||
brew install python@3.11 librtlsdr multimon-ng rtl_433 ffmpeg
|
||||
|
||||
# ADS-B aircraft tracking
|
||||
brew install dump1090-mutability
|
||||
@@ -44,7 +44,7 @@ sudo apt update
|
||||
|
||||
# Core tools (required)
|
||||
sudo apt install -y python3 python3-pip python3-venv
|
||||
sudo apt install -y rtl-sdr multimon-ng rtl-433 sox
|
||||
sudo apt install -y rtl-sdr multimon-ng rtl-433 ffmpeg
|
||||
|
||||
# ADS-B aircraft tracking
|
||||
sudo apt install -y dump1090-mutability
|
||||
@@ -162,7 +162,7 @@ Open **http://localhost:5050** in your browser.
|
||||
| `multimon-ng` | multimon-ng | multimon-ng | Pager decoding |
|
||||
| `rtl_433` | rtl-433 | rtl_433 | 433MHz sensors |
|
||||
| `dump1090` | dump1090-mutability | dump1090-mutability | ADS-B tracking |
|
||||
| `sox` | sox | sox | Listening Post audio |
|
||||
| `ffmpeg` | ffmpeg | ffmpeg | Listening Post audio |
|
||||
| `airmon-ng` | aircrack-ng | aircrack-ng | WiFi monitor mode |
|
||||
| `airodump-ng` | aircrack-ng | aircrack-ng | WiFi scanning |
|
||||
| `aireplay-ng` | aircrack-ng | aircrack-ng | WiFi deauth (optional) |
|
||||
|
||||
@@ -79,9 +79,6 @@ def find_ffmpeg() -> str | None:
|
||||
return shutil.which('ffmpeg')
|
||||
|
||||
|
||||
def find_sox() -> str | None:
|
||||
"""Find sox for audio encoding."""
|
||||
return shutil.which('sox')
|
||||
|
||||
|
||||
def add_activity_log(event_type: str, frequency: float, details: str = ''):
|
||||
@@ -450,15 +447,11 @@ def check_tools() -> Response:
|
||||
"""Check for required tools."""
|
||||
rtl_fm = find_rtl_fm()
|
||||
ffmpeg = find_ffmpeg()
|
||||
sox = find_sox()
|
||||
can_stream = ffmpeg is not None or sox is not None
|
||||
|
||||
return jsonify({
|
||||
'rtl_fm': rtl_fm is not None,
|
||||
'ffmpeg': ffmpeg is not None,
|
||||
'sox': sox is not None,
|
||||
'can_stream': can_stream,
|
||||
'available': rtl_fm is not None and can_stream
|
||||
'available': rtl_fm is not None and ffmpeg is not None
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -179,11 +179,7 @@ check_tools() {
|
||||
|
||||
echo ""
|
||||
echo "Audio Tools:"
|
||||
check_tool "sox" "Audio player/processor" "audio"
|
||||
# ffmpeg is optional alternative to sox
|
||||
if check_cmd ffmpeg; then
|
||||
echo -e " ${GREEN}✓${NC} ffmpeg - Audio encoder (optional)"
|
||||
fi
|
||||
check_tool "ffmpeg" "Audio encoder for streaming" "audio"
|
||||
|
||||
echo ""
|
||||
echo "WiFi Tools:"
|
||||
@@ -258,7 +254,7 @@ install_macos_tools() {
|
||||
echo ""
|
||||
echo -e "${YELLOW}The following will be installed:${NC}"
|
||||
$MISSING_CORE && echo " - Core SDR tools (rtl-sdr, multimon-ng, rtl_433, dump1090)"
|
||||
$MISSING_AUDIO && echo " - Audio tools (sox)"
|
||||
$MISSING_AUDIO && echo " - Audio tools (ffmpeg)"
|
||||
$MISSING_WIFI && echo " - WiFi tools (aircrack-ng)"
|
||||
echo ""
|
||||
|
||||
@@ -283,7 +279,7 @@ install_macos_tools() {
|
||||
if $MISSING_AUDIO; then
|
||||
echo ""
|
||||
echo -e "${BLUE}Installing Audio tools...${NC}"
|
||||
brew install sox
|
||||
brew install ffmpeg
|
||||
fi
|
||||
|
||||
# WiFi tools
|
||||
@@ -305,7 +301,7 @@ show_macos_manual() {
|
||||
echo -e "${BLUE}Manual installation (macOS):${NC}"
|
||||
echo ""
|
||||
echo "# Required tools"
|
||||
echo "brew install librtlsdr multimon-ng rtl_433 sox"
|
||||
echo "brew install librtlsdr multimon-ng rtl_433 ffmpeg"
|
||||
echo ""
|
||||
echo "# ADS-B tracking"
|
||||
echo "brew install dump1090-mutability"
|
||||
@@ -329,7 +325,7 @@ install_debian_tools() {
|
||||
|
||||
echo -e "${YELLOW}The following will be installed:${NC}"
|
||||
$MISSING_CORE && echo " - Core SDR tools (rtl-sdr, multimon-ng, rtl-433, dump1090)"
|
||||
$MISSING_AUDIO && echo " - Audio tools (sox)"
|
||||
$MISSING_AUDIO && echo " - Audio tools (ffmpeg)"
|
||||
$MISSING_WIFI && echo " - WiFi tools (aircrack-ng)"
|
||||
$MISSING_BLUETOOTH && echo " - Bluetooth tools (bluez)"
|
||||
echo ""
|
||||
@@ -376,7 +372,7 @@ install_debian_tools() {
|
||||
if $MISSING_AUDIO; then
|
||||
echo ""
|
||||
echo -e "${BLUE}Installing Audio tools...${NC}"
|
||||
$SUDO apt install -y sox
|
||||
$SUDO apt install -y ffmpeg
|
||||
fi
|
||||
|
||||
# WiFi tools
|
||||
@@ -408,7 +404,7 @@ show_debian_manual() {
|
||||
echo -e "${BLUE}Manual installation (Debian/Ubuntu):${NC}"
|
||||
echo ""
|
||||
echo "# Required tools"
|
||||
echo "sudo apt install rtl-sdr multimon-ng rtl-433 sox"
|
||||
echo "sudo apt install rtl-sdr multimon-ng rtl-433 ffmpeg"
|
||||
echo ""
|
||||
echo "# ADS-B tracking"
|
||||
echo "sudo apt install dump1090-mutability # or dump1090-fa"
|
||||
|
||||
@@ -1780,7 +1780,7 @@ sudo make install</code>
|
||||
.then(data => {
|
||||
const missingTools = [];
|
||||
if (!data.rtl_fm) missingTools.push('rtl_fm');
|
||||
if (!data.sox) missingTools.push('sox (audio player)');
|
||||
if (!data.ffmpeg) missingTools.push('ffmpeg (audio encoder)');
|
||||
|
||||
if (missingTools.length > 0) {
|
||||
document.getElementById('airbandBtn').disabled = true;
|
||||
@@ -1825,7 +1825,7 @@ sudo make install</code>
|
||||
<div style="font-weight: bold; margin-bottom: 6px;">⚠️ Airband Listen Unavailable</div>
|
||||
<div>Missing required tools: <strong>${toolList}</strong></div>
|
||||
<div style="margin-top: 8px; font-size: 10px; opacity: 0.9;">
|
||||
Install with: <code style="background: rgba(0,0,0,0.3); padding: 2px 6px; border-radius: 3px;">sudo apt install rtl-sdr sox</code> (Debian) or <code style="background: rgba(0,0,0,0.3); padding: 2px 6px; border-radius: 3px;">brew install librtlsdr sox</code> (macOS)
|
||||
Install with: <code style="background: rgba(0,0,0,0.3); padding: 2px 6px; border-radius: 3px;">sudo apt install rtl-sdr ffmpeg</code> (Debian) or <code style="background: rgba(0,0,0,0.3); padding: 2px 6px; border-radius: 3px;">brew install librtlsdr ffmpeg</code> (macOS)
|
||||
</div>
|
||||
<button onclick="this.parentElement.remove()" style="position: absolute; top: 5px; right: 8px; background: none; border: none; color: white; cursor: pointer; font-size: 14px;">×</button>
|
||||
`;
|
||||
|
||||
@@ -8775,7 +8775,7 @@
|
||||
// ============================================
|
||||
|
||||
let isAudioPlaying = false;
|
||||
let audioToolsAvailable = { rtl_fm: false, audio_player: false };
|
||||
let audioToolsAvailable = { rtl_fm: false, ffmpeg: false };
|
||||
|
||||
// Web Audio API for visualization
|
||||
let visualizerContext = null;
|
||||
@@ -8919,14 +8919,14 @@
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
audioToolsAvailable.rtl_fm = data.rtl_fm;
|
||||
audioToolsAvailable.can_stream = data.can_stream;
|
||||
audioToolsAvailable.ffmpeg = data.ffmpeg;
|
||||
|
||||
const warnings = [];
|
||||
if (!data.rtl_fm) {
|
||||
warnings.push('rtl_fm not found - install rtl-sdr tools');
|
||||
}
|
||||
if (!data.can_stream) {
|
||||
warnings.push('No audio encoder (ffmpeg/sox) - install: brew install ffmpeg (macOS) or apt install ffmpeg (Linux)');
|
||||
if (!data.ffmpeg) {
|
||||
warnings.push('ffmpeg not found - install: brew install ffmpeg (macOS) or apt install ffmpeg (Linux)');
|
||||
}
|
||||
|
||||
const warningDiv = document.getElementById('audioToolsWarning');
|
||||
|
||||
Reference in New Issue
Block a user