Audio distortion at 64kbps

Shawn Woo

New Member
There is noticeable audio distortion at 64kbps. Mostly with people's voices. But less noticeable with music. At 96kbps, the voice distortion is less noticeable but still there. At 128kbps, it seems to be fine.

When I was testing I didn't stream video, so audio only. Because I wanted to isolate the audio problem without video tainting the test. My data rate to the servers was only ~80kbps up. Even though the casting bitrate was set much higher.
bitrate: 1000
buffer size: 1200

OBS 0.651 with the same settings does not have this problem. Otherwise, a very stable and organized build.

Someone mentioned in another thread that "OBS MP is using a different audio encoder."

https://obsproject.com/forum/threads/audio-bitrate-capped-at-160kbps-low-audio-quality.28524/

If others could verify it would be much appreciated.


Code:
15:21:54: OBS 0.10.1 (64bit, windows)
15:21:54: CPU Name: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
15:21:54: CPU Speed: 3511MHz
15:21:54: Physical Cores: 2, Logical Cores: 2
15:21:54: Physical Memory: 8191MB Total, 5752MB Free
15:21:54: Windows Version: 6.1 Build 7601 Service Pack 1
15:21:54: audio settings reset:
    samples per sec: 44100
    speakers:        2
    buffering (ms):  1000

15:21:54: ---------------------------------
15:21:54: Initializing D3D11..
15:21:54: Available Video Adapters:
15:21:54:     Adapter 0: NVIDIA GeForce 8800 GTS
15:21:54: Loading up D3D11 on adapter NVIDIA GeForce 8800 GTS (0)
15:21:54: D3D11 loaded sucessfully, feature level used: 40960
15:21:55: video settings reset:
    base resolution:   854x480
    output resolution: 852x480
    fps:               25/1
    format:            NV12
15:21:56: No blackmagic support
15:21:56: Failed to start search for DeckLink devices
15:21:56: output 'adv_stream' (rtmp_output) created
15:21:56: output 'adv_file_output' (flv_output) created
15:21:56: encoder 'streaming_h264' (obs_x264) created
15:21:56: encoder 'adv_aac0' (ffmpeg_aac) created
15:21:56: encoder 'adv_aac1' (ffmpeg_aac) created
15:21:56: encoder 'adv_aac2' (ffmpeg_aac) created
15:21:56: encoder 'adv_aac3' (ffmpeg_aac) created
15:21:56: service 'default_service' (rtmp_common) created
15:21:56: WASAPI: Device 'Speaker (e2eSoft VAudio)' initialized
15:21:56: source 'Desktop Audio' (wasapi_output_capture) created
15:21:56: source 'PotPlayer1' (scene) created
15:21:56: source 'PotPlayer' (window_capture) created
15:21:56: source 'Vcam' (scene) created
15:21:56: source 'Vcam1' (dshow_input) created
15:21:56: Vcam1: Video configuration failed
15:21:56: source 'Title' (text_ft2_source) created
15:21:56: source 'Web browser' (scene) created
15:21:56: source 'Food Travel' (window_capture) created
15:21:56: source 'Crop' (crop_filter) created
15:21:56: source 'Image' (image_source) created
15:21:56: source 'Food' (text_ft2_source) created
15:21:56: source 'Youtube1' (scene) created
15:21:56: source 'Youtube' (window_capture) created
15:21:56: Update check failed: Unable to init SSL Context:
15:22:09: [x264 encoder: 'streaming_h264'] preset: faster
15:22:09: [x264 encoder: 'streaming_h264'] profile: high
15:22:09: [x264 encoder: 'streaming_h264'] settings:
    bitrate:     1000
    buffer size: 1200
    fps_num:     25
    fps_den:     1
    width:       852
    height:      480
    keyint:      250
    cbr:         off
15:22:09: Using ffmpeg "aac" aac encoder
15:22:09: FFmpeg AAC: bitrate: 64, channels: 2
15:22:09: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://live-nyc2.vaughnsoft.net:443/live...
15:22:10: [rtmp stream: 'adv_stream'] Connection to rtmp://live-nyc2.vaughnsoft.net:443/live successful
15:23:57: [rtmp stream: 'adv_stream'] User stopped the stream
15:23:57: Output 'adv_stream': stopping
15:23:57: Output 'adv_stream': Total frames: 2703
15:23:57: Output 'adv_stream': Number of skipped frames: 0 (0%)
15:29:35: [x264 encoder: 'streaming_h264'] settings:
    bitrate:     1000
    buffer size: 1200
    fps_num:     25
    fps_den:     1
    width:       852
    height:      480
    keyint:      250
    cbr:         off
15:29:35: [x264 encoder: 'streaming_h264'] preset: faster
15:29:35: [x264 encoder: 'streaming_h264'] profile: high
15:29:35: [x264 encoder: 'streaming_h264'] settings:
    bitrate:     1000
    buffer size: 1200
    fps_num:     25
    fps_den:     1
    width:       852
    height:      480
    keyint:      250
    cbr:         off
15:29:35: warning: 2 frames left in the queue on closing
15:29:35: Using ffmpeg "aac" aac encoder
15:29:35: FFmpeg AAC: bitrate: 64, channels: 2
15:29:35: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://live-nyc2.vaughnsoft.net:443/live...
15:29:36: [rtmp stream: 'adv_stream'] Connection to rtmp://live-nyc2.vaughnsoft.net:443/live successful
15:33:26: [rtmp stream: 'adv_stream'] User stopped the stream
15:33:26: Output 'adv_stream': stopping
15:33:26: Output 'adv_stream': Total frames: 5772
15:33:26: Output 'adv_stream': Number of skipped frames: 2 (0.03465%)
 
Last edited:

Gol D. Ace

Member
OBS1 is using libfaac
OBS MP does use ffmpeg_aac (the internal ffmpeg aac Encoder I believe).

The order is libfdk_aac > libfaac >= Native FFmpeg AAC encoder (aac) > libvo_aacenc
 
Last edited:

Lain

Forum Admin
Lain
Forum Moderator
Developer
The AAC encoder that comes with the default build is a bit simple and doesn't really encode very well below 128kb/s. Unless you're running a super low bandwidth stream with no other choice, I'd honestly recommend 160 if you're able.

It can however be compiled with libfdk support, which is probably one of the best, but its license isn't GPL-compatible so we can't distribute it with the program. However you can compile it in yourself if you have the tools.
 

Shawn Woo

New Member
Thank you both for replying. This is one of the annoyances of losing functionality with a newer release.

In my case, libfaac is superior to the Native FFmpeg AAC encoder. Why would OBS MP use an inferior AAC encoder?



https://trac.ffmpeg.org/wiki/Encode/AAC

Which encoder should I use? What provides the best quality?

For AAC-LC the likely answer is: libfdk_aac > libfaac > Native FFmpeg AAC encoder (aac) > libvo_aacenc.
 
Last edited:
Top