mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
trying a new method
This commit is contained in:
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
@@ -20,27 +20,11 @@ VIDEO_FPS="${VIDEO_FPS:-30}"
|
||||
VIDEO_BITRATE="${VIDEO_BITRATE:-3000000}"
|
||||
AUDIO_ENABLE="${AUDIO_ENABLE:-0}"
|
||||
AUDIO_DEVICE="${AUDIO_DEVICE:-plughw:0,0}"
|
||||
AUDIO_RATE="${AUDIO_RATE:-48000}"
|
||||
AUDIO_CHANNELS="${AUDIO_CHANNELS:-1}"
|
||||
AUDIO_BITRATE="${AUDIO_BITRATE:-24000}"
|
||||
AUDIO_CODEC="${AUDIO_CODEC:-pcm_mulaw}"
|
||||
|
||||
# Normalize device/rate to match the HAT capture; plughw handles any minor conversions.
|
||||
AUDIO_DEVICE="plughw:0,0"
|
||||
AUDIO_CODEC="pcm_s16le"
|
||||
# Keep the audio path simple for the Pi Zero; we hardcode a single PCM profile.
|
||||
AUDIO_RATE=16000
|
||||
AUDIO_CHANNELS=1
|
||||
# Defaults chosen to keep Pi Zero CPU low. Opus can be enabled by setting AUDIO_CODEC=libopus.
|
||||
if [[ "${AUDIO_CODEC}" == "libopus" ]]; then
|
||||
AUDIO_RATE=16000
|
||||
AUDIO_BITRATE=16000
|
||||
else
|
||||
# G.711 mu-law (or A-law if AUDIO_CODEC=pcm_alaw): very low CPU, 8 kHz mono, ~64 kbps.
|
||||
AUDIO_CODEC="pcm_mulaw"
|
||||
AUDIO_RATE=8000
|
||||
AUDIO_BITRATE=64000
|
||||
fi
|
||||
|
||||
# Disable audio streaming for now; only video will be published.
|
||||
AUDIO_ENABLE=0
|
||||
AUDIO_DEVICE="plughw:0,0"
|
||||
# Flip the camera 180deg (supported by rpicam-vid/libcamera-vid)
|
||||
FLIP_ARGS=(--rotation 180)
|
||||
|
||||
@@ -64,9 +48,6 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Flip using the native rotation flag (0/180 supported per rpicam-vid --help).
|
||||
FLIP_ARGS=(--rotation 180)
|
||||
|
||||
run_pipeline() {
|
||||
if [[ "${AUDIO_ENABLE}" -eq 1 ]]; then
|
||||
# Try audio + video; if audio device is missing, fallback to video-only.
|
||||
@@ -101,11 +82,9 @@ run_pipeline() {
|
||||
-i "${AUDIO_DEVICE}" \
|
||||
-c:v copy \
|
||||
-c:a "${AUDIO_CODEC}" \
|
||||
-b:a "${AUDIO_BITRATE}" \
|
||||
$( [[ "${AUDIO_CODEC}" == "libopus" ]] && echo "-compression_level 0 -application voip -frame_duration 60" ) \
|
||||
-ac:a "${AUDIO_CHANNELS}" \
|
||||
-ar:a "${AUDIO_RATE}" \
|
||||
-af "$( [[ "${AUDIO_CODEC}" == "libopus" ]] && echo "pan=1c|c0=c0," )volume=20dB" \
|
||||
-ac:a "${AUDIO_CHANNELS}" \
|
||||
-af "volume=20dB" \
|
||||
-flush_packets 1 \
|
||||
-f mpegts \
|
||||
"${PUBLISH_URL}"
|
||||
|
||||
@@ -204,8 +204,10 @@ VIDEO_WIDTH=1280
|
||||
VIDEO_HEIGHT=720
|
||||
VIDEO_FPS=30
|
||||
VIDEO_BITRATE=2000000
|
||||
AUDIO_ENABLE=1
|
||||
AUDIO_ENABLE=0
|
||||
AUDIO_DEVICE=plughw:0,0
|
||||
AUDIO_RATE=16000
|
||||
AUDIO_CHANNELS=1
|
||||
ENV
|
||||
chown roverd:roverd /var/lib/roverd/video.env
|
||||
chmod 0640 /var/lib/roverd/video.env
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ func LoadConfig(path string) (*Config, error) {
|
||||
Audio: AudioConfig{
|
||||
CaptureEnabled: false,
|
||||
CaptureDevice: "plughw:0,0",
|
||||
SampleRate: 48000,
|
||||
SampleRate: 16000,
|
||||
Channels: 1,
|
||||
Bitrate: 24000,
|
||||
TTSEnabled: false,
|
||||
|
||||
+14
-2
@@ -25,8 +25,20 @@ func UpdatePublisherEnv(media MediaConfig, audio AudioConfig) error {
|
||||
fmt.Fprintf(&buf, "VIDEO_HEIGHT=%d\n", media.VideoHeight)
|
||||
fmt.Fprintf(&buf, "VIDEO_FPS=%d\n", media.VideoFPS)
|
||||
fmt.Fprintf(&buf, "VIDEO_BITRATE=%d\n", media.VideoBitrate)
|
||||
// Disable mic streaming; audio is handled locally for TTS only.
|
||||
fmt.Fprintf(&buf, "AUDIO_ENABLE=0\n")
|
||||
audioDevice := audio.CaptureDevice
|
||||
if audioDevice == "" {
|
||||
audioDevice = "plughw:0,0"
|
||||
}
|
||||
if audio.SampleRate <= 0 {
|
||||
audio.SampleRate = 16000
|
||||
}
|
||||
if audio.Channels <= 0 {
|
||||
audio.Channels = 1
|
||||
}
|
||||
fmt.Fprintf(&buf, "AUDIO_ENABLE=%d\n", boolToInt(audio.CaptureEnabled))
|
||||
fmt.Fprintf(&buf, "AUDIO_DEVICE=%s\n", audioDevice)
|
||||
fmt.Fprintf(&buf, "AUDIO_RATE=%d\n", audio.SampleRate)
|
||||
fmt.Fprintf(&buf, "AUDIO_CHANNELS=%d\n", audio.Channels)
|
||||
if err := os.WriteFile(publisherEnvPath, buf.Bytes(), 0o640); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ cameraServo:
|
||||
audio:
|
||||
captureEnabled: false
|
||||
captureDevice: plughw:0,0
|
||||
sampleRate: 48000
|
||||
sampleRate: 16000
|
||||
channels: 1
|
||||
bitrate: 24000
|
||||
ttsEnabled: false
|
||||
|
||||
Reference in New Issue
Block a user