Code Monkey home page Code Monkey logo

Comments (18)

kclyu avatar kclyu commented on May 29, 2024

I have tested audio transmission from pi to chrome, but transmission to pi speakers has not yet been tested. Since the two-way audio is not blocked at the code level, the two-way audo-related part is available by default.
For USB auido related documents, please refer to README_audio.

Please give it a try and give us your feedback.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

ok, sir,
I'll give you feedback.
I have two other concerns about audio. when I plug audio source to pi the client couldn't establish ws channel between peers, have you got something similar?

from rpi-webrtc-streamer.

kclyu avatar kclyu commented on May 29, 2024

The mentioned phenomenon did not appear to me. First, I would like to recommend PI 2 or higher (PI Zero is 1 core, so if CPU 100% phenomenon occurs, it affects other processes) and when using with other hardware at the same time, please use the power source of PI power more than 2.1 Amp (do not know what happens when the power is insufficient).

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

thanks for help, the testing is subject of tomorrow, ill be in touch,

from rpi-webrtc-streamer.

noliveleger avatar noliveleger commented on May 29, 2024

@mkoyan44 I'm also very interested in your solution.
Please let me know if you find a way to do it.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

Hi,
For sure, I'm working for that part, there are few issues for integration, as soon as I got simple working example i'll inform you.

from rpi-webrtc-streamer.

noliveleger avatar noliveleger commented on May 29, 2024

@mkoyan44 ok great. Thank you.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

Hi,

I have got few issues around voice, may you please help me?
first: After successful send of local audio the raspberry run maximum a minute, then it drops the connection due to audio buffer overflow.
I got thte following log:
105:665] [1869] (audio_device_buffer.cc:428): [REC : 10000msec, 48kHz] callbacks: 497, samples: 238560, rate: 23856, level: 351
[105:666] [1869] (audio_device_buffer.cc:437): [PLAY: 10000msec, 48kHz] callbacks: 999, samples: 479520, rate: 47952, level: 446
[105:746] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe
[105:889] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe
[106:065] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe
[106:230] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe
[106:373] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe
[106:524] [1877] (audio_device_alsa_linux.cc:1561): capture snd_pcm_readi error: Broken pipe

After I tried to adjust sender audio bandwidth to lower value, but it hasn't any effect on PI. Perhaps we need a way to buffer audio.

Second:
even during the short time, the audio quality from PI side is very low, but with one side audio it behaves well

if you need my testing code please don't hesitate to ask me.

from rpi-webrtc-streamer.

kclyu avatar kclyu commented on May 29, 2024
  1. High CPU usage issue in PI2
    What is the hardware and CPU usage rate used for the two-way audio test?
    Recently, there is a problem that audio encoding of WebRTC native stack has high CPU usage in PI2. If possible, you should try the test in PI3. In the past, the video + microphone test on PI2 was 18% CPU usage(75% of one CPU core) in PI2, but now it uses 37% (full use of 1 core and 50% of other core).
    But, almost 20% CPU( 75% of one CPU core) in PI3.

  2. Full log file and One way Audio Testing
    The log message appears to be due to a failure to read the frame from the microphone device (capture device). is it possible to check if the same error is happening by using only one way audio test?
    And, I can not understand what is happening only by error message. If you attach the full test log message file that was logged during the test, i will check if there is any special information in the log message.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

Hi,
I'm using ordinary headsets (Logitech USB Headset H340), PI model is "3 Model B, rev: a02082". This CPU usage quite high in my case, during the stream it uses 2 cores (resolution:16_9 1920x1080, fps:25) at 200% at average (maximum 216%).
I use precompiled deb file, may this cause high CPU usage?

Here is a verbose log [two-way.log](https://github.com/kclyu/rpi-webrtc-streamer/files/2114240/two-way.log. With one way it is clear.

Do you have UML or any diagrams that explain your code?

--

from rpi-webrtc-streamer.

kclyu avatar kclyu commented on May 29, 2024

RWS uses SW codec for audio encoding/decoding. So, High CPU utilization is likely to affect delay or quality in audio encoding/decoding, but i think it is not an absolute cause.

The attached log message shows that the audio related filter that is not set in the config is enabled something like audio pass filter, and the CPU usage rate has increased. First of all, I will look into this part separately.

At this time, the CPU usage rate is slightly higher, and the audio option is enabled in the configuration. Please check the CPU utilization again with audio_processing_enable=false in media_config.conf.

The log message does not seem to be a problem except the capture device problem. Please refer to How can I use an external USB sound card and set it as default? For ALSA configuration and check if you need to modify the settings. If you have already seen it, please ignore it.

Audio uses the WebRTC native code package and does not have a separate document. For WebRTC native code documentation, see WebRTC native code.

If the problem persists, I should make an environment for speaker test and try.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

HI,

The CPU utilization with audio processing disabled is around 185%. Perhaps there is another cause of an issue, as you say utilization is less than 100%. please look to my code.
web-root.zip

from rpi-webrtc-streamer.

kclyu avatar kclyu commented on May 29, 2024

You can ignore CPU usage. My PI3 also has 1920x1080 resolution and 25 fps, so the CPU usage rate is about 120%.

I am going to test the two-way audio modification that you have uploaded, and I will let you know if there is a problem.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

thanks,

looking forward to your response.

from rpi-webrtc-streamer.

kclyu avatar kclyu commented on May 29, 2024

Bidirectional audio modified tway-audio.zip file.
You can use web-root/tway-audio. Not all cases are processed, but it seems to be enough to test.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

from rpi-webrtc-streamer.

noliveleger avatar noliveleger commented on May 29, 2024

Hi there,
I have tested it and it works perfectly.
CPU is around 170% in case you want to know.

from rpi-webrtc-streamer.

mkoyan44 avatar mkoyan44 commented on May 29, 2024

from rpi-webrtc-streamer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.