2015-04-29 11 views
13

अक्षम करें मैं वर्तमान में webrtc के माध्यम से संभव ऑडियो चैनल को साफ़ करने की कोशिश कर रहा हूं।वेबआरटीसी - सभी ऑडियो प्रोसेसिंग

constraints: { 
     audio: { 
      mandatory: { 
       echoCancellation: false, 
       googEchoCancellation: false, 
       googAutoGainControl: false, 
       googAutoGainControl2: false, 
       googNoiseSuppression: false, 
       googHighpassFilter: false, 
       googTypingNoiseDetection: false, 
       //googAudioMirroring: false // For some reason setting googAudioMirroring causes a navigator.getUserMedia error: NavigatorUserMediaError 
      } 
     }, 
     video: false 
    }, 

यह बहुत ऑडियो गुणवत्ता में सुधार, लेकिन अभी भी ऑडियो प्रसंस्करण वर्तमान जो उच्च आवृत्ति के रूप में ऑडियो की विकृति का कारण बनता है हो रहा है: वाया getUserMedia mediaconstraints वस्तु, मैं निम्नलिखित विकल्पों निर्धारित किया है कुछ परीक्षण नमूने के साथ शोर।

क्रोम ध्वज --use-file-for-fake-audio-capture है जैसा कि http://peter.sh/experiments/chromium-command-line-switches/#use-file-for-fake-audio-capture पर वर्णित है जो परीक्षण के लिए फ़ाइल के माध्यम से इनपुट की अनुमति देता है। जैसा कि ध्वज के विवरण में बताया गया है, सभी ऑडियो प्रोसेसिंग को अक्षम किया जाना चाहिए या ऑडियो विकृत हो जाएगा - इसलिए इस उद्देश्य के लिए अतिरिक्त विकल्प प्रतीत होते हैं।

मैंने --disable-audio-track-processing --audio-buffer-size=16 --enable-exclusive-audio क्रोम झंडे की भी कोशिश की, लेकिन फिर भी कुछ ऑडियो प्रोसेसिंग प्रतीत होती है।

क्या अभी भी मौजूदा ऑडियो प्रोसेसिंग को अक्षम करने का कोई तरीका है (अधिमानतः जेएस एपीआई के माध्यम से)?

+0

क्या यह स्थानीय रूप से या पीयर कनेक्शन में होता है? यह हो सकता है कि क्रोम ओपस के लिए गतिशील रूप से बिटरेट को बदल रहा है (यह केवल तभी होगा जब आप किसी कनेक्शन में इसे देख रहे हों)। एक पीयर कनेक्शन पर –

+0

। मुझे लगता है कि यह किसी प्रकार का आवाज ऑडियो अनुकूलन है। एक नमूना खेल रहा है एक्स एक्स के बाद हमेशा के साथ kicks। – wowpatrick

+0

मैंने इसे पढ़ा है इसलिए मैं निश्चित रूप से कह सकता हूं कि बिटरेट उपलब्ध बैंडविड्थ के अनुसार समायोजित किया गया है। – Robert

उत्तर

1

मैं दांव दूंगा कि ओपस कोडेक के परिवर्तनीय बिटरेट (डिफ़ॉल्ट) व्यवहार कुछ संपीड़न या समायोजन का कारण बन रहा है। आप वीबीआर (परिवर्तनीय बिट दर) के बजाय सीबीआर (निरंतर बिटरेट) का उपयोग करने के लिए मैन्युअल रूप से एसडीपी प्रस्ताव को उलझा सकते हैं।

a=fmtp:111 minptime=10; useinbandfec=1 

करने के लिए:: जब आप ब्राउज़र से एसडीपी प्रस्ताव मिलता है, लाइन बदलने

a=fmtp:111 minptime=10; cbr=1 

ध्यान दें कि मैं दोनों cbr=1 और जोड़नेuseinbandfec=1 को हटाने हूँ। मैं सकारात्मक नहीं हूं कि useinbandfec छोड़ना आवश्यक है, लेकिन ऐसा लगता है कि इन-बैंड एफईसी (अग्रेषण त्रुटि सुधार) संपीड़न समायोजन का कारण बनता है जिसे आप भी टालना चाहते हैं।

संबंधित मुद्दे