vmolsa / webrtc-native Goto Github PK
View Code? Open in Web Editor NEWWebRTC for NodeJS
License: MIT License
WebRTC for NodeJS
License: MIT License
Add an example about how to consume the MediaStream and MediaStreamTracks objects from Node.js, and how to add them programatically. There are some modules like node-ffmpeg or node-speaker that could be used for this since you can pipe the streams to them. but I'm not sure if the formats are the same... :-/
Doesn't happen in release build, because the assert thing is conditional.
I think this can have some consequences
Ran node2browser, here's the log
(Module.cc:102): WebrtcModuleInit (Global.cc:38): WebRTC::Global::Init (Platform.cc:45): WebRTC::Platform::Init (PeerConnection.cc:38): WebRTC::PeerConnection::Init (DataChannel.cc:34): WebRTC::DataChannel::Init (GetSources.cc:34): WebRTC::GetSources::Init (GetUserMedia.cc:36): WebRTC::GetUserMedia::Init (MediaStream.cc:35): WebRTC::MediaStream::Init (MediaStreamTrack.cc:35): WebRTC::MediaStreamTrack::Init (Module.cc:42): SetDebug Open in browser: http://localhost:8080/ Peer Connected (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80040154) (webrtcvoiceengine.cc:1013): webrtc: Error details: Class not registered (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80040154) (webrtcvoiceengine.cc:1013): webrtc: Error details: Class not registered (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80070490) (webrtcvoiceengine.cc:1013): webrtc: Error details: Element not found. (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80070490) (webrtcvoiceengine.cc:1013): webrtc: Error details: Element not found. (audio_device_generic.cc:51): webrtc::AudioDeviceGeneric::BuiltInAECIsAvailable: Not supported on this platform (audio_device_generic.cc:66): webrtc::AudioDeviceGeneric::BuiltInAGCIsAvailable: Not supported on this platform (audio_device_generic.cc:76): webrtc::AudioDeviceGeneric::BuiltInNSIsAvailable: Not supported on this platform (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80070490) (webrtcvoiceengine.cc:1013): webrtc: Error details: Element not found. (webrtcvoiceengine.cc:1013): webrtc: SetRecordingDevice() unable to set the recording device (error=10028) (webrtcvoiceengine.cc:1013): webrtc: Core Audio method failed (hr=0x80070490) (webrtcvoiceengine.cc:1013): webrtc: Error details: Element not found. (webrtcvoiceengine.cc:1013): webrtc: SetPlayoutDevice() unable to set the playout device (error=8090) (common.cc:59): c:\webrtc_r50\src\webrtc\base\thread.cc(285): ASSERT FAILED: !current || current->blocking_calls_allowed_ @ rtc::Thread::AssertBlockingIsAllowedOnCurrentThread
I'm getting a freeze - which actually hangs the entire terminal in which I'm running the node server, requiring a forceful closing of that process. Possible race condition?
Here's the last few lines from the debug (WebRTC.setDebug(true). Below that is the full trace from the start of execution (server hangs as soon as a client connects, apparently).
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(webrtcsessiondescriptionfactory.cc:192): DTLS-SRTP enabled; sending DTLS identity request (key type: 0).
(dtlsidentitystore.cc:167): Using a free DTLS identity.
(dtlsidentitystore.cc:218): A DTLS identity is returned to an observer.
(webrtcsessiondescriptionfactory.cc:503): Setting new certificate
(dtlsidentitystore.cc:53): Generating identity, using keytype 0
(opensslidentity.cc:41): Making key pair
(opensslidentity.cc:82): Returning key pair
(opensslidentity.cc:89): Making certificate for WebRTC
(opensslidentity.cc:137): Returning certificate
(dtlsidentitystore.cc:212): A free DTLS identity was saved.
full log:
using webrtc-native
(opensslidentity.cc:82): Returning key pair
(opensslidentity.cc:89): Making certificate for WebRTC
(opensslidentity.cc:137): Returning certificate
(dtlsidentitystore.cc:212): A free DTLS identity was saved.
(PeerConnection.cc:174): static void WebRTC::PeerConnection::New(const Nan::FunctionCallbackInfo<Value> &)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:137): void WebRTC::EventEmitter::SetReference(bool)
(PeerConnection.cc:82): WebRTC::PeerConnection::PeerConnection(const Local<v8::Object> &, const Local<v8::Object> &)
(MediaConstraints.cc:49): static rtc::scoped_refptr<MediaConstraints> WebRTC::MediaConstraints::New(const Local<v8::Object> &)
(MediaConstraints.cc:43): static rtc::scoped_refptr<MediaConstraints> WebRTC::MediaConstraints::New()
(MediaConstraints.cc:35): WebRTC::MediaConstraints::MediaConstraints()
(MediaConstraints.cc:339): bool WebRTC::MediaConstraints::GetOptional(const std::string &)
(MediaConstraints.cc:327): bool WebRTC::MediaConstraints::IsOptional(const std::string &)
(MediaConstraints.cc:374): void WebRTC::MediaConstraints::SetOptional(const std::string &, const std::string &)
(MediaConstraints.cc:353): void WebRTC::MediaConstraints::RemoveOptional(const std::string &)
(MediaConstraints.cc:368): void WebRTC::MediaConstraints::AddOptional(const std::string &, const std::string &)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(EventEmitter.cc:31): WebRTC::EventEmitter::EventEmitter(uv_loop_t *, bool)
(EventEmitter.cc:249): WebRTC::NotifyEmitter::NotifyEmitter(WebRTC::EventEmitter *)
(EventEmitter.cc:66): void WebRTC::EventEmitter::AddListener(WebRTC::EventEmitter *)
(EventEmitter.cc:184): void WebRTC::EventEmitter::AddParent(WebRTC::EventEmitter *)
(Core.cc:61): static ThreadPool *ThreadPool::GetPool()
(Core.cc:117): ThreadConstructor::ThreadConstructor()
(Core.cc:129): rtc::Thread *ThreadConstructor::Current() const
(Core.cc:77): rtc::Thread *ThreadPool::GetWorker()
(Core.cc:143): PeerConnectionFactory::PeerConnectionFactory()
(webrtcvoiceengine.cc:535): WebRtcVoiceEngine::WebRtcVoiceEngine
(webrtcvoiceengine.cc:256): WebRtc VoiceEngine codecs:
(webrtcvoiceengine.cc:283): ISAC/16000/1 (103)
(webrtcvoiceengine.cc:283): ISAC/32000/1 (104)
(webrtcvoiceengine.cc:283): PCMU/8000/1 (0)
(webrtcvoiceengine.cc:283): PCMA/8000/1 (8)
(webrtcvoiceengine.cc:307): Unexpected codec: PCMU/8000/2 (110)
(webrtcvoiceengine.cc:307): Unexpected codec: PCMA/8000/2 (118)
(webrtcvoiceengine.cc:283): ILBC/8000/1 (102)
(webrtcvoiceengine.cc:283): G722/8000/1 (9)
(webrtcvoiceengine.cc:307): Unexpected codec: G722/8000/2 (119)
(webrtcvoiceengine.cc:283): opus/48000/2 (111)
(webrtcvoiceengine.cc:283): CN/8000/1 (13)
(webrtcvoiceengine.cc:283): CN/16000/1 (105)
(webrtcvoiceengine.cc:283): CN/32000/1 (106)
(webrtcvoiceengine.cc:283): telephone-event/8000/1 (126)
(webrtcvoiceengine.cc:283): red/8000/1 (127)
(webrtcvideoengine2.cc:496): WebRtcVideoEngine2::WebRtcVideoEngine2()
(webrtcvoiceengine.cc:562): WebRtcVoiceEngine::Init
(webrtcvoiceengine.cc:577): VoiceEngine 4.1.0
(webrtcvoiceengine.cc:1019): webrtc: CheckPlatform
(webrtcvoiceengine.cc:1019): webrtc: current platform is LINUX
(webrtcvoiceengine.cc:1019): webrtc: CreatePlatformSpecificObjects
(webrtcvoiceengine.cc:1019): webrtc: attempting to use the Linux PulseAudio APIs...
(webrtcvoiceengine.cc:1019): webrtc: SetPulseAudioObjects
(webrtcvoiceengine.cc:1019): webrtc: the PulseAudio objects for the mixer has been set
(webrtcvoiceengine.cc:1019): webrtc: checking PulseAudio version: 6.0
(webrtcvoiceengine.cc:1019): webrtc: Linux PulseAudio APIs will be utilized
(webrtcvoiceengine.cc:1019): webrtc: AttachAudioBuffer
(webrtcvoiceengine.cc:1019): webrtc: number of availiable output devices is 2
(webrtcvoiceengine.cc:1019): webrtc: AudioMixerManagerLinuxPulse::OpenSpeaker(deviceIndex=0)
(webrtcvoiceengine.cc:1019): webrtc: the output mixer device is now open
(webrtcvoiceengine.cc:1019): webrtc: number of availiable input devices is 2
(webrtcvoiceengine.cc:1019): webrtc: AudioMixerManagerLinuxPulse::OpenMicrophone(deviceIndex=1)
(webrtcvoiceengine.cc:1019): webrtc: the input mixer device is now open
(webrtcvoiceengine.cc:1019): webrtc: output: available=1
(webrtcvoiceengine.cc:1019): webrtc: AudioMixerManagerLinuxPulse::StereoRecordingIsAvailable() => available=79360, available
(webrtcvoiceengine.cc:1019): webrtc: output: available=1
(webrtcvoiceengine.cc:1019): webrtc: TransmitMixer::SetAudioProcessingModule(audioProcessingModule=0xc41798d0)
(webrtcvoiceengine.cc:1019): webrtc: OutputMixer::SetAudioProcessingModule(audioProcessingModule=0xc41798d0)
(webrtcvoiceengine.cc:650): ApplyOptions: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, typing: true, agc_delta: 0, experimental_agc: false, extended_filter_aec: false, delay_agnostic_aec: false, experimental_ns: false, }
(audio_device_generic.cc:51): BuiltInAECIsAvailable: Not supported on this platform
(webrtcvoiceengine.cc:723): Echo control set to 1 with mode 2
(audio_device_generic.cc:66): BuiltInAGCIsAvailable: Not supported on this platform
(webrtcvoiceengine.cc:758): Auto gain set to 1 with mode 2
(audio_device_generic.cc:76): BuiltInNSIsAvailable: Not supported on this platform
(webrtcvoiceengine.cc:805): Noise suppression set to 1 with mode 5
(webrtcvoiceengine.cc:811): High pass filter enabled? 1
(webrtcvoiceengine.cc:819): Stereo swapping enabled? 0
(webrtcvoiceengine.cc:828): NetEq capacity is 50
(webrtcvoiceengine.cc:836): NetEq fast mode? 0
(webrtcvoiceengine.cc:844): Typing detection is enabled? 1
(webrtcvoiceengine.cc:853): Adjust agc delta is 0
(webrtcvoiceengine.cc:1044): Adjusting AGC level from default -2dB to -2dB
(webrtcvoiceengine.cc:864): Delay agnostic aec is enabled? 0
(webrtcvoiceengine.cc:873): Extended filter aec is enabled? 0
(webrtcvoiceengine.cc:882): Experimental ns is enabled? 0
(webrtcvoiceengine.cc:613): WebRtc VoiceEngine codecs:
(webrtcvoiceengine.cc:615): opus/48000/2 (111)
(webrtcvoiceengine.cc:615): ISAC/16000/1 (103)
(webrtcvoiceengine.cc:615): ISAC/32000/1 (104)
(webrtcvoiceengine.cc:615): G722/8000/1 (9)
(webrtcvoiceengine.cc:615): ILBC/8000/1 (102)
(webrtcvoiceengine.cc:615): PCMU/8000/1 (0)
(webrtcvoiceengine.cc:615): PCMA/8000/1 (8)
(webrtcvoiceengine.cc:615): CN/32000/1 (106)
(webrtcvoiceengine.cc:615): CN/16000/1 (105)
(webrtcvoiceengine.cc:615): CN/8000/1 (13)
(webrtcvoiceengine.cc:615): red/8000/1 (127)
(webrtcvoiceengine.cc:615): telephone-event/8000/1 (126)
(webrtcvoiceengine.cc:919): Setting microphone to (id=0) and speaker to (id=0)
(webrtcvoiceengine.cc:938): Set microphone to (id=0) and speaker to (id=0)
(webrtcvoiceengine.cc:565): WebRtcVoiceEngine::Init Done!
(webrtcvideoengine2.cc:505): WebRtcVideoEngine2::Init
(Wrap.h:35): void WebRTC::RTCWrap::Wrap(v8::Local<v8::Object>, const char *)
(PeerConnection.cc:884): static void WebRTC::PeerConnection::SetOnIceCandidate(Local<v8::String>, Local<v8::Value>, const Nan::PropertyCallbackInfo<void> &)
(Wrap.h:59): static T *WebRTC::RTCWrap::Unwrap(v8::Local<v8::Object>, const char *) [T = WebRTC::PeerConnection]
(Wrap.h:53): T *WebRTC::RTCWrap::Unwrap() [T = WebRTC::PeerConnection]
(dtlsidentitystore.cc:53): Generating identity, using keytype 0
(opensslidentity.cc:41): Making key pair
(opensslidentity.cc:82): Returning key pair
(opensslidentity.cc:89): Making certificate for WebRTC
(opensslidentity.cc:137): Returning certificate
(dtlsidentitystore.cc:212): A free DTLS identity was saved.
(PeerConnection.cc:443): static void WebRTC::PeerConnection::CreateDataChannel(const Nan::FunctionCallbackInfo<Value> &)
(Wrap.h:59): static T *WebRTC::RTCWrap::Unwrap(v8::Local<v8::Object>, const char *) [T = WebRTC::PeerConnection]
(Wrap.h:53): T *WebRTC::RTCWrap::Unwrap() [T = WebRTC::PeerConnection]
(PeerConnection.cc:159): webrtc::PeerConnectionInterface *WebRTC::PeerConnection::GetSocket()
(EventEmitter.cc:137): void WebRTC::EventEmitter::SetReference(bool)
(MediaConstraints.cc:405): const webrtc::MediaConstraintsInterface *WebRTC::MediaConstraints::ToConstraints() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(MediaConstraints.cc:411): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetMandatory() const
(MediaConstraints.cc:417): virtual const webrtc::MediaConstraintsInterface::Constraints &WebRTC::MediaConstraints::GetOptional() const
(webrtcsessiondescriptionfactory.cc:192): DTLS-SRTP enabled; sending DTLS identity request (key type: 0).
(dtlsidentitystore.cc:167): Using a free DTLS identity.
(dtlsidentitystore.cc:218): A DTLS identity is returned to an observer.
(webrtcsessiondescriptionfactory.cc:503): Setting new certificate
(dtlsidentitystore.cc:53): Generating identity, using keytype 0
(opensslidentity.cc:41): Making key pair
(opensslidentity.cc:82): Returning key pair
(opensslidentity.cc:89): Making certificate for WebRTC
(opensslidentity.cc:137): Returning certificate
(dtlsidentitystore.cc:212): A free DTLS identity was saved.
any plans to update npm builds for node 5.11
webrtc-1.4.0-linux-x64-v5.11.x.node not found
The compatibility list only shows x64. Is it possible to get a 32bit build working? I would like to run it on an Intel Edison which comes with a 32bit BSP.
I tried changing maxRetransmits in the config but the RTCDataChannel property does not change.
I looked at test/dataChannel.js which uses the RTCConfig. On my computer (Mac OSX), it fails to set RTP to unordered and SCTP to ordered.
Also side note, the prebuilt binary fails with node 6, works with 5.9.1. Master works with node 6 but it prints a bunch of stack traces at the beginning, looks like it may be due to deprecation warnings.
Using pangyp requires python. Especially on windows python may not be found on default.
When building on Node > v7, I get compilation issues. WeakCallbackData was removed from V8 and is not available anymore in Node.
[2026/2037] CXX ../../src/webrtc.Observers.o
FAILED: ../../src/webrtc.Observers.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF ../../src/webrtc.Observers.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DBUILDING_NODE_EXTENSION -DNODE_GYP_MODULE_NAME=webrtc -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=261368-1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DWEBRTC_LINUX -DHASH_NAMESPACE=__gnu_cxx -DWEBRTC_POSIX -DDISABLE_DYNAMIC_CAST -D_REENTRANT -DEXPAT_RELATIVE_PATH -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -D_LARGEFILE_SOURCE -DUSE_BACKTRACE -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../../../../third_party/webrtc/src -I../../../../../third_party/webrtc/src -I../../../../../third_party/webrtc/src/third_party -I../../../../../third_party/webrtc/src/third_party/webrtc -I../../../../../third_party/webrtc/src/webrtc -I/home/vagrant/.node-gyp/8.4.0/include/node -I/home/vagrant/.node-gyp/8.4.0/src -I/home/vagrant/.node-gyp/8.4.0/deps/uv/include -I/home/vagrant/.node-gyp/8.4.0/deps/v8/include -I../../../../../third_party/webrtc/src/third_party/jsoncpp/source/include -I../../../../../third_party/webrtc/src/third_party/libsrtp/srtp -I../../../../../third_party/webrtc/src/third_party/libyuv/include -I../../../../../node_modules/nan -fstack-protector --param=ssp-buffer-size=4 -pthread -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -fcolor-diagnostics -B/home/vagrant/webrtc-native/third_party/webrtc/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wall -Wextra -Wformat -Wformat-security -Wimplicit-fallthrough -Wmissing-braces -Wreorder -Wunused-variable -Wno-address-of-array-temporary -Wthread-safety -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -Wimplicit-fallthrough -Wthread-safety -pthread -Wall -Wextra -Wno-unused-parameter -m64 -fPIC -Wno-deprecated-declarations -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-result -m64 -march=x86-64 --sysroot=/home/vagrant/webrtc-native/third_party/webrtc/src/build/linux/debian_wheezy_amd64-sysroot -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -O3 -fno-omit-frame-pointer -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wunused-private-field -Wnon-virtual-dtor -Woverloaded-virtual -fno-rtti -fno-exceptions -std=gnu++0x -Wno-non-virtual-dtor -Wno-delete-non-virtual-dtor -Wno-overloaded-virtual -c ../../../../../src/Observers.cc -o ../../src/webrtc.Observers.o
In file included from ../../../../../src/Observers.cc:28:
In file included from ../../../../../src/DataChannel.h:33:
../../../../../src/ArrayBuffer.h:314:44: error: no template named 'WeakCallbackData' in namespace 'v8'; did you mean 'WeakCallbackInfo'?
static inline void onDispose(const v8::WeakCallbackData<v8::ArrayBuffer, ArrayBuffer> &info) {
~~~~^~~~~~~~~~~~~~~~
WeakCallbackInfo
/home/vagrant/.node-gyp/8.4.0/include/node/v8.h:7990:16: note: 'WeakCallbackInfo' declared here
friend class WeakCallbackInfo;
^
In file included from ../../../../../src/Observers.cc:28:
In file included from ../../../../../src/DataChannel.h:33:
../../../../../src/ArrayBuffer.h:314:44: error: too many template arguments for class template 'WeakCallbackInfo'
static inline void onDispose(const v8::WeakCallbackData<v8::ArrayBuffer, ArrayBuffer> &info) {
^ ~~~~~~~~~~~~
/home/vagrant/.node-gyp/8.4.0/include/node/v8.h:7990:16: note: template is declared here
friend class WeakCallbackInfo;
^
In file included from ../../../../../src/Observers.cc:28:
In file included from ../../../../../src/DataChannel.h:33:
../../../../../src/ArrayBuffer.h:109:20: error: no member named 'SetHiddenValue' in 'v8::ArrayBuffer'
arrayBuffer->SetHiddenValue(v8::String::NewFromUtf8(isolate, "node::ArrayBuffer"), v8::External::New(isolate, buffer));
~~~~~~~~~~~ ^
../../../../../src/ArrayBuffer.h:123:49: error: no member named 'GetHiddenValue' in 'v8::ArrayBuffer'
v8::Local<v8::Value> ptr = arrayBuffer->GetHiddenValue(v8::String::NewFromUtf8(isolate, "node::ArrayBuffer"));
~~~~~~~~~~~ ^
../../../../../src/ArrayBuffer.h:142:22: error: no member named 'SetHiddenValue' in 'v8::ArrayBuffer'
arrayBuffer->SetHiddenValue(v8::String::NewFromUtf8(isolate, "node::ArrayBuffer"), v8::External::New(isolate, buffer));
~~~~~~~~~~~ ^
../../../../../src/ArrayBuffer.h:325:24: error: no member named 'DeleteHiddenValue' in 'v8::ArrayBuffer'
arrayBuffer->DeleteHiddenValue(v8::String::NewFromUtf8(isolate, "node::ArrayBuffer"));
~~~~~~~~~~~ ^
6 errors generated.
[2028/2037] CXX obj/webrtc/api/libjingle_peerconnection.webrtcsdp.o
ninja: build stopped: subcommand failed.
took nearly 1 hour on macbook air.
this is too much friction for any user.
Hi,
Tests in the simple-peer package fail:
onicecandidate
with a null candidate (see node-webrtc/node-webrtc#123).I wanted to test webrtc-native for the webtorrent-hybrid project, but it doesn't work because of these bugs I guess.
I tried to compile the module myself in order to make some tests, but it doesn't seem to work with the latest chromium code. Can you share the version you use?
Thanks for your work,
Chocobozzz
Very Strange issue:
I used this library successfully for the past months (1.2.2) and decided to update to the latest changes. I always prefer a clean install for all node modules, so i did a fresh install. My setup is as follows:
I'm using nvm for node versioning. When running npm install
it downloads the binary like always, but it gets stuck at Done! :)
, thus also preventing install of other modules.
I also did a fresh clone of the project and tried to install it there, but same output. Loglevel silly doesn't output anything useful (Downloading module..., Loading module..., Done :))
When compiling from scratch it works, however given my project should run in various environments, this shouldn't really be an option.
Any tips how to resolve this?
Hi,
I am working on streaming fakeYUV on browser using http://localhost:8080 on x86 machine. But here I am seeing only one fake YUV frame and after which it gets stuck. My chrome browser version is 48.0.2564.109.
Has anyone faced this kind of issue? Please help me
Thanks.
I ran node build.js
(with node 0.12.2), and it failed like this:
...
________ running '/usr/bin/python src/webrtc/build/gyp_webrtc -Dextra_gyp_flag=0' in '/code/webrtc-native/third_party/webrtc'
Updating projects from gyp files...
Hook '/usr/bin/python src/webrtc/build/gyp_webrtc -Dextra_gyp_flag=0' took 12.79 secs
Running: git submodule foreach 'git config -f $toplevel/.git/config submodule.$name.ignore all'
Running: git config --add remote.origin.fetch '+refs/tags/*:refs/tags/*'
Running: git config diff.ignoreSubmodules all
target_arch = x64
host_arch = x64
configuration = Release
SKIP_SYNC = false
Enable / Disable Sync:
export SKIP_SYNC=1
export SKIP_SYNC=0
________ running '/usr/bin/python -c import os,sys;script = os.path.join("trunk","check_root_dir.py");_ = os.system("%s %s" % (sys.executable,script)) if os.path.exists(script) else 0' in '/code/webrtc-native/third_party/webrtc'
________ running '/usr/bin/python -u src/sync_chromium.py --target-revision a12e1e10c4a910a4f8aa20e3ea8b611846f19ed9' in '/code/webrtc-native/third_party/webrtc'
Chromium already up to date: a12e1e10c4a910a4f8aa20e3ea8b611846f19ed9
________ running '/usr/bin/python src/setup_links.py' in '/code/webrtc-native/third_party/webrtc'
________ running '/usr/bin/python src/third_party/instrumented_libraries/scripts/download_binaries.py' in '/code/webrtc-native/third_party/webrtc'
________ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --bucket chromium-webrtc-resources src/resources' in '/code/webrtc-native/third_party/webrtc'
________ running '/usr/bin/python src/webrtc/build/gyp_webrtc -Dextra_gyp_flag=0' in '/code/webrtc-native/third_party/webrtc'
Updating projects from gyp files...
Hook '/usr/bin/python src/webrtc/build/gyp_webrtc -Dextra_gyp_flag=0' took 11.96 secs
Building WebRTC Node Module
Updating projects from gyp files...
gyp: build/config.gypi not found (cwd: /code/webrtc-native) while reading includes of webrtc.gyp
child_process.js:1389
throw err;
^
Error: Command failed: python /code/webrtc-native/third_party/webrtc/src/webrtc/build/gyp_webrtc webrtc.gyp
at checkExecSyncError (child_process.js:1346:13)
at execSync (child_process.js:1386:13)
at Object.<anonymous> (/code/webrtc-native/build.js:160:3)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
So I made another attempt with echo "{}" > build/config.gypi
and then I get a different error:
target_arch = x64
host_arch = x64
configuration = Release
SKIP_SYNC = true
Enable / Disable Sync:
export SKIP_SYNC=1
export SKIP_SYNC=0
Building WebRTC Node Module
Updating projects from gyp files...
ninja: Entering directory `/code/webrtc-native/third_party/webrtc/src/out/Release'
ninja: error: obj/../../../webrtc-native.ninja:162: expected '=', got identifier
dule_internal_impl.a libjingle_p2p.a libsrtp.a | $
^ near here
child_process.js:1389
throw err;
^
Error: Command failed: ninja -C /code/webrtc-native/third_party/webrtc/src/out/Release
at checkExecSyncError (child_process.js:1346:13)
at execSync (child_process.js:1386:13)
at Object.<anonymous> (/code/webrtc-native/build.js:166:3)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
Hi, I get some error messages when I require webrtc-native module
Error: Cannot find module './build/Release/webrtc.node'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/Users/tidenet/Documents/workspace/peer-to-peer/node_modules/webrtc-native/index.js:2:18)
at Module._compile (module.js:413:34)
at Module._extensions..js (module.js:422:10)
at Object.require.extensions.(anonymous function) [as .js] (/Users/tidenet/Documents/workspace/peer-to-peer/node_modules/babel-register/lib/node.js:136:7)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
My os is mac osx.
XCode version is 7.2.1.
Node version is 5.6.0.
Thank you.
Before starting a project that depends on webrtc-native
, I tried to use one of the tests test/videoStream.js
as a new index.js
.
I changed line 1 to write var WebRTC = require('webrtc-native');
and created a package.json
as usual.
When running export BUILD_WEBRTC=true && npm install webrtc-native --save
as instructed in the readme, the install fails with:
> [email protected] install <myDir>/webrtc-native-test/node_modules/webrtc-native
> node scripts/install.js
Building module...
module.js:328
throw err;
^
Error: Cannot find module '<myDir>/webrtc-native-test/node_modules/webrtc-native/node_modules/node-gyp/bin/node-gyp.js'
[...]
since the scripts/install.js looks in the wrong sub-dir for the node-gyp
module.
It should not look for it in
<myDir>/webrtc-native-test/node_modules/webrtc-native/node_modules/node-gyp/
but rather in
<myDir>/webrtc-native-test/node_modules/node-gyp/
This project looks pretty promising, Wondering if this has full audio & video Webrtc capabilities?
$ node test/bwtest.js
bwtest args: { _: [] }
~/code/webrtc-native/node_modules/simple-peer/index.js:151
if (self._pc.remoteDescription.type === 'offer') self._createAnswer()
^
TypeError: Cannot read property 'type' of undefined
at RTCPeerConnection.<anonymous> (~/code/webrtc-native/node_modules/simple-peer/index.js:151:37)
Hi, is it possible to publish v2.0.0 to npmjs.com ?
on MAC
../../../../../src/Core.cc:56:5: error: ignoring return value of function declared with warn_unused_result attribute [-Werror,-Wunused-result]
_manager.release();
^~~~~~~~~~~~~~~~
../../../../../src/Core.cc:63:3: error: ignoring return value of function declared with warn_unused_result attribute [-Werror,-Wunused-result]
_manager.release();
^~~~~~~~~~~~~~~~
I have the install via npm install webrtc-native --save
failing on debian jessie (with all prereg installed and successful build with an older nodejs version):
node
v5.3.0 (from https://deb.nodesource.com/node_5.x)npm
v3.3.12[...]
5091 info lifecycle [email protected]~install: Failed to exec install script
5092 verbose unlock done using /home/ax3l/.npm/_locks/staging-4fd396471c691efe.lock for /home/ax3l/node_modules/.staging
5093 silly rollbackFailedOptional Starting
5094 silly rollbackFailedOptional Finishing
5095 silly runTopLevelLifecycles Starting
5096 silly runTopLevelLifecycles Finishing
5097 silly install printInstalled
5098 warn ENOENT ENOENT: no such file or directory, open '/home/ax3l/package.json'
5099 warn EPACKAGEJSON webrtc-native No description
5100 warn EPACKAGEJSON webrtc-native No repository field.
5101 warn EPACKAGEJSON webrtc-native No README data
5102 warn EPACKAGEJSON webrtc-native No license field.
5103 verbose stack Error: [email protected] install: `node scripts/install.js`
5103 verbose stack Exit status 1
5103 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:232:16)
5103 verbose stack at emitTwo (events.js:87:13)
5103 verbose stack at EventEmitter.emit (events.js:172:7)
5103 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:24:14)
5103 verbose stack at emitTwo (events.js:87:13)
5103 verbose stack at ChildProcess.emit (events.js:172:7)
5103 verbose stack at maybeClose (internal/child_process.js:818:16)
5103 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
5104 verbose pkgid [email protected]
5105 verbose cwd /home/ax3l
5106 error Linux 3.16.0-4-amd64
5107 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "webrtc-native" "--verbose" "--save"
5108 error node v5.3.0
5109 error npm v3.3.12
5110 error code ELIFECYCLE
5111 error [email protected] install: `node scripts/install.js`
5111 error Exit status 1
5112 error Failed at the [email protected] install script 'node scripts/install.js'.
5112 error Make sure you have the latest version of node.js and npm installed.
5112 error If you do, this is most likely a problem with the webrtc-native package,
5112 error not with npm itself.
5112 error Tell the author that this fails on your system:
5112 error node scripts/install.js
5112 error You can get their info via:
5112 error npm owner ls webrtc-native
5112 error There is likely additional logging output above.
5113 verbose exit [ 1, true ]
Am I doing something wrong?
I tried it with an older nodejs version before but got install warnings (and runtime segfaults).
Following error on console, whn i try to install it.
at Error (native)
at Object.fs.linkSync (fs.js:869:18)
at init (D:\WebRTCServerAsClient\node_modules\webrtc-native\scripts\build.js:41:6)
at Object. (D:\WebRTCServerAsClient\node_modules\webrtc-native\scripts\build.js:291:3)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
nice! I like the native approach ๐
build.js fails immediately with node 0.10 due to execSync missing from child_process, which is an easy thing to fix.
though I wonder if the rest of the native code supports node 0.10 ?
$ node test
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
ISAC/32000/1 (104)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: ISAC/48000/1 (105)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: PCMU/8000/2 (110)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: PCMA/8000/2 (118)
ILBC/8000/1 (102)
G722/8000/1 (9)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: G722/8000/2 (119)
opus/48000/2 (111)
CN/8000/1 (13)
CN/16000/1 (105)
CN/32000/1 (106)
telephone-event/8000/1 (126)
red/8000/1 (127)
WebRtcVideoEngine2::WebRtcVideoEngine2()
WebRtcVoiceEngine::Init
webrtc: CheckPlatform
webrtc: current platform is MAC
webrtc: CreatePlatformSpecificObjects
webrtc: output: kPlatformDefaultAudio
webrtc: Mac OS X Audio APIs will be utilized
webrtc: AttachAudioBuffer
webrtc: OS info: OS X
webrtc: Hardware model: MacBookAir6,2
webrtc: number of availiable waveform-audio output devices is 3
webrtc: Output device: Apple Inc. Built-in Output
webrtc: AudioMixerManagerMac::OpenSpeaker(id=38)
webrtc: No process has hogged the input device
webrtc: number of availiable waveform-audio input devices is 2
webrtc: Input device: Apple Inc. Built-in Microphone
webrtc: AudioMixerManagerMac::OpenMicrophone(id=48)
webrtc: No process has hogged the input device
webrtc: output: available=1
webrtc: output: available=1
webrtc: TransmitMixer::SetAudioProcessingModule(audioProcessingModule=0x150aff0)
webrtc: OutputMixer::SetAudioProcessingModule(audioProcessingModule=0x150aff0)
WebRtc VoiceEngine Version:
VoiceEngine 4.1.0
Applying audio options: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, typing: true, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, delay_agnostic_aec: false, experimental_ns: false, aec_dump: false, }
Error(webrtcvoiceengine.cc:1446): webrtc: Built-in AEC not supported on this platform
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 1
Adjust agc delta is 0
Adjusting AGC level from default -2dB to -2dB
Aec dump is enabled? 0
Delay agnostic aec is enabled? 0
Experimental aec is enabled? 0
Experimental ns is enabled? 0
WebRtc VoiceEngine codecs:
opus/48000/2 (111)
ISAC/16000/1 (103)
ISAC/32000/1 (104)
G722/8000/1 (9)
ILBC/8000/1 (102)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
CN/32000/1 (106)
CN/16000/1 (105)
CN/8000/1 (13)
red/8000/1 (127)
telephone-event/8000/1 (126)
WebRtcVoiceEngine::Init Done!
WebRtcVideoEngine2::Init
Applying audio options: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, typing: true, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, delay_agnostic_aec: false, experimental_ns: false, aec_dump: false, }
Error(webrtcvoiceengine.cc:1446): webrtc: Built-in AEC not supported on this platform
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 1
Adjust agc delta is 0
Adjusting AGC level from default -2dB to -2dB
Aec dump is enabled? 0
Delay agnostic aec is enabled? 0
Experimental aec is enabled? 0
Experimental ns is enabled? 0
Setting microphone to (id=0, name=Default device) and speaker to (id=0, name=Default device)
Set microphone to (id=0 name=Default device) and speaker to (id=0 name=Default device)
Making key pair
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
ISAC/32000/1 (104)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: ISAC/48000/1 (105)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: PCMU/8000/2 (110)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: PCMA/8000/2 (118)
ILBC/8000/1 (102)
G722/8000/1 (9)
Warning(webrtcvoiceengine.cc:569): Unexpected codec: G722/8000/2 (119)
opus/48000/2 (111)
CN/8000/1 (13)
CN/16000/1 (105)
CN/32000/1 (106)
telephone-event/8000/1 (126)
red/8000/1 (127)
WebRtcVideoEngine2::WebRtcVideoEngine2()
WebRtcVoiceEngine::Init
webrtc: CheckPlatform
webrtc: current platform is MAC
webrtc: CreatePlatformSpecificObjects
webrtc: output: kPlatformDefaultAudio
webrtc: Mac OS X Audio APIs will be utilized
webrtc: AttachAudioBuffer
webrtc: OS info: OS X
webrtc: Hardware model: MacBookAir6,2
webrtc: number of availiable waveform-audio output devices is 3
webrtc: Output device: Apple Inc. Built-in Output
webrtc: AudioMixerManagerMac::OpenSpeaker(id=38)
webrtc: No process has hogged the input device
webrtc: number of availiable waveform-audio input devices is 2
webrtc: Input device: Apple Inc. Built-in Microphone
webrtc: AudioMixerManagerMac::OpenMicrophone(id=48)
webrtc: No process has hogged the input device
webrtc: output: available=1
webrtc: output: available=1
webrtc: TransmitMixer::SetAudioProcessingModule(audioProcessingModule=0x1221bf0)
webrtc: OutputMixer::SetAudioProcessingModule(audioProcessingModule=0x1221bf0)
WebRtc VoiceEngine Version:
VoiceEngine 4.1.0
Applying audio options: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, typing: true, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, delay_agnostic_aec: false, experimental_ns: false, aec_dump: false, }
Error(webrtcvoiceengine.cc:1446): webrtc: Built-in AEC not supported on this platform
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 1
Adjust agc delta is 0
Adjusting AGC level from default -2dB to -2dB
Aec dump is enabled? 0
Delay agnostic aec is enabled? 0
Experimental aec is enabled? 0
Experimental ns is enabled? 0
WebRtc VoiceEngine codecs:
opus/48000/2 (111)
ISAC/16000/1 (103)
ISAC/32000/1 (104)
G722/8000/1 (9)
ILBC/8000/1 (102)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
CN/32000/1 (106)
CN/16000/1 (105)
CN/8000/1 (13)
red/8000/1 (127)
telephone-event/8000/1 (126)
WebRtcVoiceEngine::Init Done!
WebRtcVideoEngine2::Init
Applying audio options: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, typing: true, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, delay_agnostic_aec: false, experimental_ns: false, aec_dump: false, }
Error(webrtcvoiceengine.cc:1446): webrtc: Built-in AEC not supported on this platform
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 1
Adjust agc delta is 0
Adjusting AGC level from default -2dB to -2dB
Aec dump is enabled? 0
Delay agnostic aec is enabled? 0
Experimental aec is enabled? 0
Experimental ns is enabled? 0
Setting microphone to (id=0, name=Default device) and speaker to (id=0, name=Default device)
Set microphone to (id=0 name=Default device) and speaker to (id=0 name=Default device)
Making key pair
Allowing SCTP data engine.
Returning key pair
Making certificate for WebRTC
Returning certificate
Making key pair
Local and Remote descriptions must be applied to get SSL Role of the session.
Error(webrtcsession.cc:1200): ConnectDataChannel called when data_channel_ is NULL.
Alice State: stable
Allowing SCTP data engine.
Returning key pair
Making certificate for WebRTC
Returning certificate
Making key pair
Bob State: stable
Returning key pair
Making certificate for WebRTC
Returning certificate
Returning key pair
Making certificate for WebRTC
Returning certificate
Session:8792605950890241566 Old state:STATE_INIT New state:STATE_RECEIVEDTERMINATE Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
Session:7365232863691173892 Old state:STATE_INIT New state:STATE_RECEIVEDTERMINATE Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
Total count of channels: 0
and there it stays just hanging...
the same also happens when I redirect any of the tests from node-webrtc to use webrtc native
such as https://github.com/js-platform/node-webrtc/blob/develop/test/connect.js but it seems consistent that it hangs after returning certificate.
Built the latest version e10bc4e1
on Windows, and while it seems to work fine, it throws a few stack traces before running, saying
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.
==== JS stack trace =========================================
Security context: 000003BB4FECFB61 <JS Object>#0#
1: .node [module.js:597] [pc=000003C663D81524] (this=00000145768C1D49 <an Object with map 0000017F6DC1AC51>#1#,module=000000F9FE79F809 <a Module with map 0000017F6DC1BA69>#2#,filename=000000F9FE79DD09 <String[30]: C:\w\build\Release\webrtc.node>)
2: load [module.js:487] [pc=000003C663D40D32] (this=000000F9FE79F809 <a Module with map 0000017F6DC1BA69>#2#,filename=000000F9FE79DD09 <String[30]: C:\w\build\Release\webrtc.node>)
3: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=000003C663D4085D] (this=000003BB4FE04381 <undefined>,module=000000F9FE79F809 <a Module with map 0000017F6DC1BA69>#2#,filename=000000F9FE79DD09 <String[30]: C:\w\build\Release\webrtc.node>)
4: _load [module.js:438] [pc=000003C663D355A2] (this=00000145768C1D01 <JS Function Module (SharedFunctionInfo 000001457682D2B1)>#3#,request=00000268C6C6DDE9 <String[27]: ./build/Release/webrtc.node>,parent=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,isMain=000003BB4FE04271 <false>)
5: require [module.js:497] [pc=000003C663D4AA33] (this=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,path=00000268C6C6DDE9 <String[27]: ./build/Release/webrtc.node>)
6: require(aka require) [internal/module.js:20] [pc=000003C663D4A766] (this=000003BB4FE04381 <undefined>,path=00000268C6C6DDE9 <String[27]: ./build/Release/webrtc.node>)
7: /* anonymous */ [C:\w\index.js:2] [pc=000003C663D8127E] (this=000000F9FE79C049 <an Object with map 00000221BBB075E9>#5#,exports=000000F9FE79C049 <an Object with map 00000221BBB075E9>#5#,require=000000F9FE79CC99 <JS Function require (SharedFunctionInfo 000001457685FF31)>#6#,module=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,__filename=000000F9FE79B211 <String[13]: C:\w\index.js>,__dirname=000000F9FE79CC39 <String[4]: C:\w>)
8: _compile [module.js:570] [pc=000003C663D49EF0] (this=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,content=000000F9FE79C811 <String[58]\: \nmodule.exports = require('./build/Release/webrtc.node');\n>,filename=000000F9FE79B211 <String[13]: C:\w\index.js>)
9: .js [module.js:579] [pc=000003C663D42F2B] (this=00000145768C1D49 <an Object with map 0000017F6DC1AC51>#1#,module=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,filename=000000F9FE79B211 <String[13]: C:\w\index.js>)
10: load [module.js:487] [pc=000003C663D40D32] (this=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,filename=000000F9FE79B211 <String[13]: C:\w\index.js>)
11: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=000003C663D4085D] (this=000003BB4FE04381 <undefined>,module=000000F9FE79BFF9 <a Module with map 0000017F6DC1BA69>#4#,filename=000000F9FE79B211 <String[13]: C:\w\index.js>)
12: _load [module.js:438] [pc=000003C663D355A2] (this=00000145768C1D01 <JS Function Module (SharedFunctionInfo 000001457682D2B1)>#3#,request=0000014576827BD1 <String[2]: ..>,parent=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,isMain=000003BB4FE04271 <false>)
13: require [module.js:497] [pc=000003C663D4AA33] (this=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,path=0000014576827BD1 <String[2]: ..>)
14: require(aka require) [internal/module.js:20] [pc=000003C663D4A766] (this=000003BB4FE04381 <undefined>,path=0000014576827BD1 <String[2]: ..>)
15: /* anonymous */ [C:\w\test\multiconnect.js:5] [pc=000003C663D4DAC7] (this=00000145768C1FA1 <an Object with map 00000221BBB075E9>#8#,exports=00000145768C1FA1 <an Object with map 00000221BBB075E9>#8#,require=00000145768C1E59 <JS Function require (SharedFunctionInfo 000001457685FF31)>#9#,module=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,__filename=00000145768C1F69 <String[25]: C:\w\test\multiconnect.js>,__dirname=00000145768C1F41 <String[9]: C:\w\test>)
16: _compile [module.js:570] [pc=000003C663D49EF0] (this=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,content=00000145768C2C11 <Very long string[3004]>#10#,filename=00000145768C1F69 <String[25]: C:\w\test\multiconnect.js>)
17: .js [module.js:579] [pc=000003C663D42F2B] (this=00000145768C1D49 <an Object with map 0000017F6DC1AC51>#1#,module=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,filename=00000145768C1F69 <String[25]: C:\w\test\multiconnect.js>)
18: load [module.js:487] [pc=000003C663D40D32] (this=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,filename=00000145768C1F69 <String[25]: C:\w\test\multiconnect.js>)
19: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=000003C663D4085D] (this=000003BB4FE04381 <undefined>,module=00000145768C1DC9 <a Module with map 0000017F6DC1BA69>#7#,filename=00000145768C1F69 <String[25]: C:\w\test\multiconnect.js>)
20: _load [module.js:438] [pc=000003C663D355A2] (this=00000145768C1D01 <JS Function Module (SharedFunctionInfo 000001457682D2B1)>#3#,request=000001457685F949 <String[14]: ./multiconnect>,parent=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,isMain=000003BB4FE04271 <false>)
21: require [module.js:497] [pc=000003C663D4AA33] (this=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,path=000001457685F949 <String[14]: ./multiconnect>)
22: require(aka require) [internal/module.js:20] [pc=000003C663D4A766] (this=000003BB4FE04381 <undefined>,path=000001457685F949 <String[14]: ./multiconnect>)
23: /* anonymous */ [C:\w\test\all.js:1] [pc=000003C663D4A1BB] (this=00000145768C3979 <an Object with map 00000221BBB075E9>#12#,exports=00000145768C3979 <an Object with map 00000221BBB075E9>#12#,require=00000145768C3899 <JS Function require (SharedFunctionInfo 000001457685FF31)>#13#,module=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,__filename=00000145768C3951 <String[16]: C:\w\test\all.js>,__dirname=00000145768C3929 <String[9]: C:\w\test>)
24: _compile [module.js:570] [pc=000003C663D49EF0] (this=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,content=00000145768C3A69 <String[55]\: require('./multiconnect');\nrequire('./bwtest').tape();\n>,filename=00000145768C3951 <String[16]: C:\w\test\all.js>)
25: .js [module.js:579] [pc=000003C663D42F2B] (this=00000145768C1D49 <an Object with map 0000017F6DC1AC51>#1#,module=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,filename=00000145768C3951 <String[16]: C:\w\test\all.js>)
26: load [module.js:487] [pc=000003C663D40D32] (this=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,filename=00000145768C3951 <String[16]: C:\w\test\all.js>)
27: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=000003C663D4085D] (this=000003BB4FE04381 <undefined>,module=00000145768C3809 <a Module with map 0000017F6DC1BA69>#11#,filename=00000145768C3951 <String[16]: C:\w\test\all.js>)
28: _load [module.js:438] [pc=000003C663D355A2] (this=00000145768C1D01 <JS Function Module (SharedFunctionInfo 000001457682D2B1)>#3#,request=00000145768543C9 <String[16]: C:\w\test\all.js>,parent=000003BB4FE04201 <null>,isMain=000003BB4FE043C1 <true>)
29: /* anonymous */(aka /* anonymous */) [module.js:604] [pc=000003C663D3506A] (this=000003BB4FE04381 <undefined>)
30: run(aka run) [bootstrap_node.js:394] [pc=000003C663D34EF0] (this=000003BB4FE04381 <undefined>,entryFunction=0000014576852E31 <JS Function Module.runMain (SharedFunctionInfo 000001457682E0F1)>#14#)
31: startup(aka startup) [bootstrap_node.js:149] [pc=000003C663C44B12] (this=000003BB4FE04381 <undefined>)
32: /* anonymous */(aka /* anonymous */) [bootstrap_node.js:509] [pc=000003C663C42939] (this=000003BB4FE04201 <null>,process=000003BB4FEE1EA1 <a process with map 00000221BBB113B1>#15#)
=====================
I get throw new Error('prebuilt module not found. See the instructions from https://github.com/vmolsa/webrtc-native/wiki/Getting-started#building-from-source for building module from source.'); ^ Error: prebuilt module not found. See the instructions from https://github.com/vmolsa/webrtc-native/wiki/Getting-started#building-from-source for building module from source.
when i try to run npm install webrtc-native --save
I got a weird requirejs config so this require call is not working for my set up
var WebRTC = require('webrtc-native');
Wondering what exactly is the main file being used? Will just try an absolute path
Hi, i have A peer and B peer, A peer provide a stream transport to webrtc-native server, and i want B peer get stream from nodejs server and play it.
but B peer in windows 7, i have a black screen. and the mediastream readystate is muted?
if in ubuntu 14.04.1, the nodejs server will be crash.
my node version is 0.12.7, it's webrtc-native bug? or my usage is wrong?
Somehow related to my findings in #31.
When downloading a module, it is not versioned by the lib itself, i.e. I use an older Version of webrtc-native (1.2.2 vs current 1.3.4), it is downloading the module as of
URL += 'webrtc-' + PLATFORM + '-' + ARCH + '-' + NODEVER + '.node';
and eventually returning (although it hangs up first due to #31 on my machine). However after using the module, it is clearly not the desired version (url is not versioned + the downloaded binary has the new chromium 50 api changes, e.g. new RTCStats format).
My proposal would be to keep the binaries of previous versions by downloading a versioned binary, then during piping of the request just rename it to webrtc.node as usual
Hi,
I could not find any Windows x64 release for this module. I could not install or build the source following the instructions, either. Could you please provide a Windows release too? Not necessarily for v 2.0.0 but for a stable version of webrtc-native?
When running npm install webrtc-native --save
, I get the following:
npm install webrtc-native --save
[email protected] install /home/nithyesh/node_modules/webrtc-native
node scripts/install.jsDownloading module: webrtc-1.4.0-linux-x64-v6.9.x.node
/home/nithyesh/node_modules/webrtc-native/scripts/install.js:78
throw` new Error('prebuilt module not found. See the instructions from https://github.com/vmolsa/webrtc-native/wiki/Getting-started#building-from-source for building module from source.');
^Error: prebuilt module not found. See the instructions from https://github.com/vmolsa/webrtc-native/wiki/Getting-started#building-from-source for building module from source.
at Request._callback (/home/nithyesh/node_modules/webrtc-native/scripts/install.js:78:13)
at Request.self.callback (/home/nithyesh/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (/home/nithyesh/node_modules/request/request.js:1081:10)
at emitOne (events.js:101:20)
at Request.emit (events.js:188:7)
at IncomingMessage. (/home/nithyesh/node_modules/request/request.js:1001:12)
at IncomingMessage.g (events.js:291:16)
at emitNone (events.js:91:20)
It seems that the binaries are not present. Is there a way to proceed with this or is building from source my only option now?
Hi,
I'm interested in this library to add crossplatform webrtc support to eureca.io
right now I'm using node-webrtc, but it only support linux.
I have two questions
Using Ubuntu 14.04, WebRTC.getSources() returns an empty array. I have Alsa devices available and getUserMedia successfully returns an (seemingly) empty stream.
How can I use HTMLCanvasElement.captureStream() in this library?
Hello!
Build is failing in multiple places. I'm trying to fix by manually installing libs, etc, and have made 2 changes so far, but as a result I don't have the exact error messages from those earlier failures (don't really feel like re-downloading chromium on my current internet connection!) - so I'm going to paraphrase.
Error 1:
missing .../third_party/icu/icu.gyp
. The entire icu directory is missing. I pulled it from an earlier branch of chromium and put it in the expected location, which seems to have resolved the error message.
Error 2:
missing libvpx_new/libvpx.gyp
Can't remember the exact details, but same idea - no libvpx_new folder was present. I also manually tried to install this, but am probably using the wrong version (I grabbed one from a day prior to your last commit ~26 October). Likely, that's the source of my current error:
Error 3:
I haven't been able to fix this yet:
ninja: error: '../../third_party/libvpx_new/source/libvpx/vp9/encoder/x86/vp9_error_intrin_avx2.c', needed by obj/third_party/libvpx_new/source/libvpx/vp9/encoder/x86/libvpx_intrinsics_avx2.vp9_error_intrin_avx2.o', missing and no known rule to make it
I read in another (closed) issue that you're planning to update to the latest WebRTC build. I'm looking forward to that, and thank you for your efforts!
Webrtc-native works well on Ubuntu 14.04 including video and audio capturing with some modifications.
Now i'm trying to cross compile it to my arm based computer (it also has Ubuntu 14.04 OS). Any hints about how can i do it properly?
I successfully build the code using buildwebrtc. when I tried to build it using another tool I got this error.
Error: /mnt/disk/node-webrtc-native/build/Release/webrtc.node: undefined symbol: jsimd_extxrgb_ycc_convert_sse2
I need to use the other tool to build the arm version. could you advise what could the error be.
regards,
M. Hefny
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.