Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: support audio streaming #990

Open
1 task done
ES-Alexander opened this issue Apr 20, 2022 · 4 comments
Open
1 task done

core: support audio streaming #990

ES-Alexander opened this issue Apr 20, 2022 · 4 comments
Labels
accessibility core Issue related to BlueOS-core enhancement New feature or request needs-external-change Depends on 3rd party tools ui User Interface feature

Comments

@ES-Alexander
Copy link
Collaborator

ES-Alexander commented Apr 20, 2022

Current behaviour

When connecting a microphone there's no option in BlueOS to stream the audio to the surface, or record it.

Expected or desired behaviour

Companion supported automatic streaming of the BR Low-Light Camera's audio. Would be good to support at least that, but preferably just audio streaming and recording in general (assuming that's possible).

Internal discussion here, which mostly covers:

  • QGC currently doesn't have audio support, although there is an issue about it
  • BlueOS builds gstreamer from source, and may not have the alsasrc element as a result
  • audio support likely makes the most sense in mavlink-camera-manager (which BlueOS uses), but adding it would likely require some API changes, and may not be super simple to do
  • definitely a useful feature to some users, but also not critical functionality to most users

Prerequisites

  • I have checked to make sure that a similar request has not already been filed or fixed.
@ES-Alexander ES-Alexander added enhancement New feature or request core Issue related to BlueOS-core ui User Interface feature triage Needs triage from developers labels Apr 20, 2022
@patrickelectric patrickelectric added needs-external-change Depends on 3rd party tools and removed triage Needs triage from developers labels Apr 20, 2022
@ES-Alexander
Copy link
Collaborator Author

This issue has been raised in this forum post, which mentions:

what I want to do is connect a usb hydrophone and channel the audio to the ground station, and play it in parallel to the video, I know that Qgroundcontrol discontinued the audio, so I was planning to play the audio separately in VLC

@ES-Alexander
Copy link
Collaborator Author

@joaoantoniocardoso did you mention recently that you had some plans to work on audio support for mavlink camera manager? I have a vague recollection of that, but could also be misremembering.

@joaoantoniocardoso
Copy link
Collaborator

@joaoantoniocardoso did you mention recently that you had some plans to work on audio support for mavlink camera manager? I have a vague recollection of that, but could also be misremembering.

I actually don't have solid plans for it yet, but the data/stream part shouldn't be difficult, we first need to figure out what we really want with it, then we can see how it would be done.

Do we want to have only the camera's builtin audio muxed with the video stream, or do we want to allow any audio to mux into any video stream, like from a USB microphone? Or even, do we want completely separate streams with only audio? I would like to hear your thoughts about it :)

@ES-Alexander
Copy link
Collaborator Author

Do we want to have only the camera's builtin audio muxed with the video stream, or do we want to allow any audio to mux into any video stream, like from a USB microphone? Or even, do we want completely separate streams with only audio? I would like to hear your thoughts about it :)

@joaoantoniocardoso I forgot to respond to this before, but just came across it again.

Here are my thoughts:

  • The primary requirement is for the BR camera's audio to be sendable to the topside
    • The Companion Software approach had a separate stream for it, so muxing is not a hard requirement
  • A good solution should be able to handle audio inputs that don't come from video streams (e.g. from hydrophones and USB microphones)
    • Ideally it would be possible to mix in audio streams from the topside as well, e.g. for audio commentary, but that may be more in the scope of the topside software rather than needing to be handled by BlueOS
  • From a recording standpoint I imagine (but don't know for sure) that it's simpler to record video and audio streams that are already muxed together
    • This is particularly relevant for camera+microphone combinations like the BR camera
    • If we support muxing, ideally it would be for arbitrary audio+video stream combinations, and ideally one video stream could be muxed with multiple audio streams (e.g. for left/right)
    • If muxing wouldn't automatically align the audio and video timing together correctly then I don't think it's worth doing, because the audio would then need to be adjusted relative to the video anyway
  • Tee behaviour (like we have for video streams) is desirable, so that different systems can get access to the same audio
    • As an example, there may be separate programs for piloting and for providing a live-stream to an audience, that should both be able to access the same audio, and separate streams reduce the configuration and potential port conflicts at the topside (albeit potentially at the cost of some extra tether bandwidth usage)
    • This is a "nice to have", not a strict/blocking requirement - some audio soon is better than no audio for longer, it's just worth keeping in mind as "of interest"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accessibility core Issue related to BlueOS-core enhancement New feature or request needs-external-change Depends on 3rd party tools ui User Interface feature
Projects
None yet
Development

No branches or pull requests

3 participants