LaiFeng-Android / SopCastComponent

该项目不再维护,仅供学习参考
Other
2.48k stars 617 forks source link

在直播時回聲很明顯 #28

Closed WillyWLLu closed 7 years ago

WillyWLLu commented 7 years ago

您好, 我透過您提供的sample code在YouTube上進行直播時, 視頻的回聲很明顯

設置setAec(true), 或透過AcousticEchoCanceler, AutomaticGainControl等方法都沒有效果

不曉得您有沒有其他想法或是建議? 感謝您的幫助!

SuperJim123 commented 7 years ago

@WillyWLLu 你的回声是怎么造成的?一边观看视频,一边采集吗?setAec(true)需要对采样率也进行设置,http://www.jianshu.com/p/2cb75a71009f 这篇文章也许对你有帮助。

WillyWLLu commented 7 years ago

感謝您的回覆

我目前是使用您sample code中的LandscapeActivity.java這個頁面進行直播功能的實作

我先從YouTube API拿到RTMP的位置, 再透過您sample code LandscapeActivity.java進行直播

在直播的過程中畫面顯示正常, 但是聲音回聲很明顯, 於是我進行以下回聲消除的設定, 還是不行 AudioConfiguration.Builder audioBuilder = new AudioConfiguration.Builder(); audioBuilder.setAec(true).setBps(32, 64).setFrequency(16000).setMime(DEFAULT_MIME). setAacProfile(DEFAULT_AAC_PROFILE).setAdts(DEFAULT_ADTS). setChannelCount(1).setEncoding(DEFAULT_AUDIO_ENCODING); AudioConfiguration audioConfiguration = audioBuilder.build(); mLFLiveView.setAudioConfiguration(audioConfiguration);

後來我查到YouTube建議的編碼方式是雙聲道的, 因此我也將setChannelCount(2), 但還是沒有效果 https://support.google.com/youtube/answer/2853702?topic=2853713&hl=zh-Hant

SuperJim123 commented 7 years ago

setFrequency(16000)改为setFrequency(8000)

WillyWLLu commented 7 years ago

您好, 我將setFrequency(8000), 只能聽到"點 點 點"的聲音

SuperJim123 commented 7 years ago

new AudioConfiguration.Builder(); audioBuilder.setAec(true).setBps(32, 64).setFrequency(8000); 后面的不需要设置,你在尝试一下看看

WillyWLLu commented 7 years ago

您好, 感謝您的回覆, 我目前這樣設置會完全聽不到聲音喔

SuperJim123 commented 7 years ago

@WillyWLLu 哈哈 好的^_^

SuperJim123 commented 7 years ago

@WillyWLLu 是听不到声音,还是听不到回声?

WillyWLLu commented 7 years ago

您好, 是視頻只有畫面, 完全沒有任何聲音喔

SuperJim123 commented 7 years ago

@WillyWLLu 那可能Youtube不支持8000采样率的声音,aec一般在采样率8000的情况下才能使用。

WillyWLLu commented 7 years ago

好的, 我了解了, 謝謝您的幫忙

tytung commented 6 years ago

請問有人解決YouTube直播聲音問題了嗎? 謝謝