webrtc opus 设置与编码

2023-10-27

webrtc opus bg57iv3 扩展头 格式 audio encoder


Received session description :{

   "sdp" : "v=0

o=- 7489544636758395528 2 IN IP4 127.0.0.1

s=-

t=0 0

a=group:BUNDLE 0 1

a=msid-semantic: WMS stream_id

m=audio 9 RTP/AVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:xUFn

a=ice-pwd:Zq3MQKxIqnkSsr0ESYN8gEFV

a=ice-options:trickle

a=mid:0

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid

a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id

a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id

a=sendrecv

a=msid:stream_id audio_label

a=rtcp-mux

a=rtpmap:111 opus/48000/2

a=rtcp-fb:111 transport-cc

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

a=rtpmap:103 ISAC/16000

a=rtpmap:104 ISAC/32000

a=rtpmap:9 G722/8000

a=rtpmap:102 ILBC/8000

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=rtpmap:106 CN/32000

a=rtpmap:105 CN/16000

a=rtpmap:13 CN/8000

a=rtpmap:110 telephone-event/48000

a=rtpmap:112 telephone-event/32000

a=rtpmap:113 telephone-event/16000

a=rtpmap:126 telephone-event/8000

a=ssrc:1527975052 cname:WiREXAcYmJ5rkNaW

m=video 9 RTP/AVPF 96 97 98 99 100 101 127 124 125

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:xUFn

a=ice-pwd:Zq3MQKxIqnkSsr0ESYN8gEFV

a=ice-options:trickle

a=mid:1

a=extmap:14 urn:ietf:params:rtp-hdrext:toffset

a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=extmap:12 urn:3gpp:video-orientation

a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay

a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type

a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing

a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07

a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space

a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid

a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id

a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id

a=recvonly

a=rtcp-mux

a=rtcp-rsize

a=rtpmap:96 VP8/90000

a=rtcp-fb:96 goog-remb

a=rtcp-fb:96 transport-cc

a=rtcp-fb:96 ccm fir

a=rtcp-fb:96 nack

a=rtcp-fb:96 nack pli

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=96

a=rtpmap:98 VP9/90000

a=rtcp-fb:98 goog-remb

a=rtcp-fb:98 transport-cc

a=rtcp-fb:98 ccm fir

a=rtcp-fb:98 nack

a=rtcp-fb:98 nack pli

a=fmtp:98 profile-id=0

a=rtpmap:99 rtx/90000

a=fmtp:99 apt=98

a=rtpmap:100 VP9/90000

a=rtcp-fb:100 goog-remb

a=rtcp-fb:100 transport-cc

a=rtcp-fb:100 ccm fir

a=rtcp-fb:100 nack

a=rtcp-fb:100 nack pli

a=fmtp:100 profile-id=2

a=rtpmap:101 rtx/90000

a=fmtp:101 apt=100

a=rtpmap:127 red/90000

a=rtpmap:124 rtx/90000

a=fmtp:124 apt=127

a=rtpmap:125 ulpfec/90000

",

   "type" : "answer"

}

Opus 格式设置为:

 WebRtcVoiceMediaChannel::SetSendParameters: {codecs: [AudioCodec[111:opus:48000:0:2], AudioCodec[103:ISAC:16000:0:1], AudioCodec[104:ISAC:32000:0:1], AudioCodec[9:G722:8000:0:1], AudioCodec[102:ILBC:8000:0:1], AudioCodec[0:PCMU:8000:0:1], AudioCodec[8:PCMA:8000:0:1], AudioCodec[106:CN:32000:0:1], AudioCodec[105:CN:16000:0:1], AudioCodec[13:CN:8000:0:1], AudioCodec[110:telephone-event:48000:0:1], AudioCodec[112:telephone-event:32000:0:1], AudioCodec[113:telephone-event:16000:0:1], AudioCodec[126:telephone-event:8000:0:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}, {uri: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01, id: 2}, {uri: urn:ietf:params:rtp-hdrext:sdes:mid, id: 3}, {uri: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id, id: 4}, {uri: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id, id: 5}], extmap-allow-mixed: false, max_bandwidth_bps: -1, mid: 0, options: AudioOptions {}}

(audio_send_stream.cc:258): AudioSendStream::ConfigureStream: {rtp: {ssrc: 1708860063, extmap-allow-mixed: false, extensions: [{uri: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01, id: 2}, {uri: urn:ietf:params:rtp-hdrext:sdes:mid, id: 3}, {uri: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id, id: 5}, {uri: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id, id: 4}, {uri: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}], c_name: +zQ1fzmm8MR/paky}, rtcp_report_interval_ms: 5000, send_transport: (Transport), media_transport: null, min_bitrate_bps: 32000, max_bitrate_bps: 32000, send_codec_spec: {nack_enabled: false, transport_cc_enabled: true, cng_payload_type: <unset>, payload_type: 111, format: {name: opus, clockrate_hz: 48000, num_channels: 2, parameters: {minptime: 10, useinbandfec: 1}}}}

fc7ff708 11debac8 77258033 5019e027 51327245 0653a6ed 4faf51d4 d254a135 2f6f78f4 d269413d 52fa12e4 cdd88727 05fb302f 9739b367 bda9c26b de98514a 982d93c5 d359ddb0 fbfeaecc 19c9e690 e645e35f fa8fd12e fbc131cf 6913aa0a 4facf341 9f2021a3 8fb620

68222a50 0b25ad5f 9c19543b c2d15e0f a1b3170e 0728546a f0ae3e04 2bf4e1ba 98e98220 3f8fd24e 4ba1b6d3 0260ee36 9d91ffee b4e6b429 4dedee9b 5d7bfbbb fa34df8c 67a205cb 36d7b761 44e778e4 cb4685a5 bd

780be749 feef07fc d847401c f2af5d2b 191eec21 018489d0 eecb817c 2c4c8835 658022dd 51639426 c1a19e0b 7f4dce2f a4ce

一些 OPUS 相关定义:

#define OPUS_SIGNAL_VOICE                    3001 /**< Signal being encoded is voice */

#define OPUS_SIGNAL_MUSIC                    3002 /**< Signal being encoded is music */

#define OPUS_BANDWIDTH_NARROWBAND            1101 /**< 4 kHz bandpass @hideinitializer*/

#define OPUS_BANDWIDTH_MEDIUMBAND            1102 /**< 6 kHz bandpass @hideinitializer*/

#define OPUS_BANDWIDTH_WIDEBAND              1103 /**< 8 kHz bandpass @hideinitializer*/

#define OPUS_BANDWIDTH_SUPERWIDEBAND         1104 /**<12 kHz bandpass @hideinitializer*/

#define OPUS_BANDWIDTH_FULLBAND              1105 /**<20 kHz bandpass @hideinitializer*/

 

#define MODE_SILK_ONLY          1000

#define MODE_HYBRID             1001

#define MODE_CELT_ONLY          1002

 

  Name Value Type
this 0x000000000c24df60 {config_={frame_size_ms=20 num_channels=1 application=kVoip (0) ...} payload_type_=...} webrtc::AudioEncoderOpusImpl *
  ◢ webrtc::AudioEncoder {...} webrtc::AudioEncoder
  ▶ __vfptr 0x0000000142125800 {JzlRtcP2p.exe!void(* webrtc::AudioEncoderOpusImpl::`vftable'[27])()} {0x0000000140a09dd5 {JzlRtcP2p.exe!webrtc::AudioEncoderOpusImpl::`vector deleting destructor'(unsigned int)}, ...} void * *
  ◢ config_ {frame_size_ms=20 num_channels=1 application=kVoip (0) ...} webrtc::AudioEncoderOpusConfig
  frame_size_ms 20 int
  num_channels 1 unsigned __int64
  application kVoip (0) webrtc::AudioEncoderOpusConfig::ApplicationMode
  ◢ bitrate_bps {...} absl::optional<int>
  ▶ absl::optional_internal::optional_data<int,1> {...} absl::optional_internal::optional_data<int,1>
  absl::optional_internal::optional_ctor_base<0> {...} absl::optional_internal::optional_ctor_base<0>
  absl::optional_internal::optional_assign_base<0> {...} absl::optional_internal::optional_assign_base<0>
  fec_enabled true bool
  cbr_enabled false bool
  max_playback_rate_hz 48000 int
  complexity 9 int
  low_rate_complexity 9 int
  complexity_threshold_bps 12500 int
  complexity_threshold_window_bps 1500 int
  dtx_enabled false bool
  ▶ supported_frame_lengths_ms { size=3 } std::vector<int,std::allocator<int> >
  uplink_bandwidth_update_interval_ms 200 int
  payload_type -1 int
  payload_type_ 111 const int
  send_side_bwe_with_overhead_ false const bool
  use_link_capacity_for_adaptation_ false const bool
  adjust_bandwidth_ false const bool
  bitrate_changed_ true bool
  packet_loss_rate_ 0.000000000 float
  min_packet_loss_rate_ 0.000000000 const float
  ▶ new_packet_loss_optimizer_ empty const std::unique_ptr<webrtc::AudioEncoderOpusImpl::NewPacketLossRateOptimizer,std::default_delete<webrtc::AudioEncoderOpusImpl::NewPacketLossRateOptimizer> >
  ▶ input_buffer_ { size=960 } std::vector<short,std::allocator<short> >
  ▶ inst_ 0x000000000c1fa2e0 {encoder=0x000000000c2a8070 {celt_enc_offset=38288 silk_enc_offset=18040 silk_mode=...} ...} WebRtcOpusEncInst *
  first_timestamp_in_buffer_ 3840 unsigned int
  num_channels_to_encode_ 1 unsigned __int64
  next_frame_length_ms_ 20 int
  complexity_ 9 int
  ▶ packet_loss_fraction_smoother_ unique_ptr {last_sample_time_ms_=175498943 smoother_={alpha_=0.999899983 filtered_=-1.00000000 max_=-1.00000000 } } std::unique_ptr<webrtc::AudioEncoderOpusImpl::PacketLossFractionSmoother,std::default_delete<webrtc::AudioEncoderOpusImpl::PacketLossFractionSmoother> >
  ▶ audio_network_adaptor_creator_ std::unique_ptr<webrtc::AudioNetworkAdaptor,std::default_delete<webrtc::AudioNetworkAdaptor> > <lambda>(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & config_string, webrtc::RtcEventLog * event_log){...} const std::function<std::unique_ptr<webrtc::AudioNetworkAdaptor,std::default_delete<webrtc::AudioNetworkAdaptor> > __cdecl(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,webrtc::RtcEventLog *)>
  ▶ audio_network_adaptor_ empty std::unique_ptr<webrtc::AudioNetworkAdaptor,std::default_delete<webrtc::AudioNetworkAdaptor> >
  ▶ overhead_bytes_per_packet_ {...} absl::optional<unsigned __int64>
  ▶ bitrate_smoother_ unique_ptr {init_time_ms_=5000 init_factor_=0.998297989 init_const_=8.50878906 ...} const std::unique_ptr<webrtc::SmoothingFilter,std::default_delete<webrtc::SmoothingFilter> >
  ▶ bitrate_smoother_last_update_time_ {...} absl::optional<__int64>
  ▶ link_capacity_allocation_bps_ {...} absl::optional<__int64>
  consecutive_dtx_frames_ 0 int

 

 

  Name Value Type
st 0x000000000c2a8070 {celt_enc_offset=38288 silk_enc_offset=18040 silk_mode={nChannelsAPI=1 nChannelsInternal=...} ...} OpusEncoder *
  celt_enc_offset 38288 int
  silk_enc_offset 18040 int
  ◢ silk_mode {nChannelsAPI=1 nChannelsInternal=1 API_sampleRate=48000 ...} silk_EncControlStruct
  nChannelsAPI 1 int
  nChannelsInternal 1 int
  API_sampleRate 48000 int
  maxInternalSampleRate 16000 int
  minInternalSampleRate 16000 int
  desiredInternalSampleRate 16000 int
  payloadSize_ms 20 int
  bitRate 22100 int
  packetLossPercentage 0 int
  complexity 9 int
  useInBandFEC 1 int
  LBRR_coded 0 int
  useDTX 0 int
  useCBR 0 int
  maxBits 922 int
  toMono 0 int
  opusCanSwitch 0 int
  reducedDependency 0 int
  internalSampleRate 16000 int
  allowBandwidthSwitch 1 int
  inWBmodeWithoutVariableLP 1 int
  stereoWidth_Q14 15360 int
  switchReady 0 int
  signalType 0 int
  offset 240 int
  application 2048 int
  channels 1 int
  delay_compensation 192 int
  force_channels -1000 int
  signal_type -1000 int
  user_bandwidth -1000 int
  max_bandwidth 1105 int
  user_forced_mode -1000 int
  voice_ratio 82 int
  Fs 48000 int
  use_vbr 1 int
  vbr_constraint 1 int
  variable_duration 5000 int
  bitrate_bps 32000 int
  user_bitrate_bps 32000 int
  lsb_depth 24 int
  encoder_buffer 480 int
  lfe 0 int
  arch 4 int
  use_dtx 0 int
  ◢ analysis {arch=4 application=2048 Fs=48000 ...} TonalityAnalysisState
  arch 4 int
  application 2048 int
  Fs 48000 int
  ▶ angle 0x000000000c2a8138 {0.000000000, 0.371065110, -0.178583264, 0.169607878, -0.336950421, -0.0553655699, ...} float[240]
  ▶ d_angle 0x000000000c2a84f8 {0.000000000, 0.211459041, 0.108894110, -0.0403590798, -0.0484426916, -0.0585320257, ...} float[240]
  ▶ d2_angle 0x000000000c2a88b8 {0.000000000, 0.00185681810, 0.000212006868, 0.000139717609, 0.000239213259, 0.000370358146, ...} float[240]
  ▶ inmem 0x000000000c2a8c78 {-0.00359834707, -0.00321650039, -0.00343828206, -0.00407011248, -0.00430583814, ...} float[720]
  mem_fill 240 int
  ▶ prev_band_tonality 0x000000000c2a97bc {0.0707340315, 0.256839573, 0.0646021217, 0.0535893366, 4.82304631e-06, 0.00638849102, ...} float[18]
  prev_tonality 0.0744439214 float
  prev_bandwidth 16 int
  ▶ E 0x000000000c2a980c {0x000000000c2a980c {2.55750088e-08, 9.36143074e-09, 2.76515277e-09, 1.35677691e-09, ...}, ...} float[8][18]
  ▶ logE 0x000000000c2a9a4c {0x000000000c2a9a4c {-17.4777470, -18.4760418, -19.6706448, -20.3470402, -21.3746700, ...}, ...} float[8][18]
  ▶ lowE 0x000000000c2a9c8c {-17.4777470, -18.4760418, -19.6706448, -20.3470402, -21.3746700, -20.4640789, -20.0291424, ...} float[18]
  ▶ highE 0x000000000c2a9cd4 {-10.1126461, -13.4705744, -15.9786558, -17.1679306, -17.9192219, -16.4453983, -14.3947802, ...} float[18]
  ▶ meanE 0x000000000c2a9d1c {1.69691320e-05, 1.21011362e-06, 3.28179901e-08, 9.97130112e-09, 4.68893901e-09, ...} float[19]
  ▶ mem 0x000000000c2a9d68 {-75.0991974, 4.48027182, 1.93349600, 4.91965246, 1.66545582, 4.41493130, -0.158232212, ...} float[32]
  ▶ cmean 0x000000000c2a9de8 {-73.6217041, 5.10436296, 1.28940845, 4.50601101, 0.000000000, 0.000000000, 0.000000000, ...} float[8]
  ▶ std 0x000000000c2a9e08 {0.282320261, 0.187619641, 0.852573156, 0.488151670, 1.46251786, 0.275115967, 0.825375319, ...} float[9]
  music_prob 0.102564953 float
  vad_prob 0.0822941810 float
  Etracker -0.0210000016 float
  lowECount 1.00000000 float
  E_count 7 int
  last_music 0 int
  count 7 int
  analysis_offset 0 int
  ▶ pspeech 0x000000000c2a9e4c {0.896234274, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, ...} float[100]
  ▶ pmusic 0x000000000c2a9fdc {0.103052884, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, ...} float[100]
  speech_confidence 0.100000001 float
  music_confidence 0.899999976 float
  speech_confidence_count 0 int
  music_confidence_count 0 int
  write_pos 7 int
  read_pos 7 int
  read_subframe 0 int
  hp_ener_accum 0.000000000 float
  ▶ downmix_state 0x000000000c2aa18c {-0.00205630972, -0.00201843097, 0.00201843097} float[3]
  ▶ info 0x000000000c2aa198 {{valid=1 tonality=0.0630559996 tonality_slope=0.0293915570 ...}, {valid=1 tonality=...}, ...} AnalysisInfo[100]
  stream_channels 1 int
  hybrid_stereo_width_Q14 16384 short
  variable_HP_smth2_Q15 193536 int
  prev_HB_gain 0.998388469 float
  ▶ hp_mem 0x000000000c2ab788 {0.000429835636, -0.000430019340, 0.000000000, 0.000000000} float[4]
  mode 1001 int
  prev_mode 1001 int
  prev_channels 1 int
  prev_framesize 960 int
  bandwidth 1104 int
  auto_bandwidth 1105 int
  silk_bw_switch 0 int
  first 0 int
  ▶ energy_masking 0x0000000000000000 {???} float *
  ▶ width_mem {XX=0.000000000 XY=0.000000000 YY=0.000000000 ...} StereoWidthState
  ▶ delay_buffer 0x000000000c2ab7d4 {-0.00312746083, -0.00290988642, -0.00281588663, -0.00290483702, -0.00314440276, ...} float[960]
  detected_bandwidth 1104 int
  nb_no_activity_frames 0 int
  peak_signal_energy 0.000117333788 float
  nonfinal_frame 0 int
  rangeFinal 0 unsigned int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webrtc opus 设置与编码 的相关文章

  • 网络RTC。不显示视频

    我决定研究WebRTC 但不展示视频 请帮助 我究竟做错了什么 使用 Chrome 我的代码
  • Html5视频录制和上传?

    我需要创建一个可以使用网络摄像头或移动摄像头录制视频的应用程序 它需要跨平台 到目前为止 我已经使用 webrtc getusermedia 编写了一个小型概念证明 它可以录制视频和播放 但我不确定如何将文件上传回服务器 这是此示例的链接h
  • 无法编译适用于 Android 的 WebRTC 库

    我正在尝试编译 WebRTC Native Stack 来构建libwebrtc aar但不幸的是无法理解出了什么问题 系统信息 Distributor ID Ubuntu Description Ubuntu 18 04 4 LTS Re
  • 将 PCM 波形数据转换为 numpy 数组,反之亦然

    情况 我正在使用 WebRTC 中的 VAD 语音活动检测 WebRTC VAD https github com wiseman py webrtcvad Python 适配器 这示例实现 https github com wiseman
  • 如何在 Safari 浏览器上获取 WebRTC 日志

    我一直在尝试获取在 safari 浏览器上运行的 Web 应用程序的 webrtc 日志 类似于我们通过转到页面在 Firefox 中获取的日志about webrtc并在 chrome 上使用chrome webrtc internals
  • 如何与本机桌面 (win) 应用程序建立对等连接

    我需要与本机桌面 win 应用程序和网络浏览器建立对等连接 只是为了传输原始数据 从理论上讲 WebRTC 似乎是实现这一目标的唯一方法 如果您想使用 WebRTC 在浏览器和桌面之间交换数据 您可以使用此库将桌面部分编码为 C 语言 ht
  • WebRTC - 禁用所有音频处理

    我目前正在尝试通过 webrtc 获得尽可能干净的音频通道 通过 getUserMedia mediaconstraints 对象 我设置了以下选项 constraints audio mandatory echoCancellation
  • 直接从冷启动弹出状态

    我建造了一个科尔多瓦app https play google com store apps details id com everycrave livewire使用离子框架 它是使用构建的Peer JS http peerjs com 每
  • 使用 django 通道将 webRTC 视频流发送到服务器

    我正在尝试创建一个用 django 编写的人脸检测 Web 应用程序 该应用程序是这样工作的 用户导航到该 url 相机在客户端计算机上启动 然后将每一帧发送到服务器进行人脸检测 然后将处理后的帧显示在网页上 我知道我无法使用 opencv
  • webrtc如何选择输入视频设备?

    我正在研究webRTC应用程序 我参考的是这个软件 apprtc https code google com p webrtc source browse trunk samples js apprtc https code google
  • 在 iOS 上读取实时摄像头流的 getUserMedia() 替代方案?

    我们正在使用 QuaggaJS 构建一个移动条形码扫描仪 它可以直接从设备的摄像头流中读取条形码 在桌面 Android 上运行良好 但在 iOS 上根本不起作用 从最初的研究来看 我发现 iOS 根本不支持 WebRTC getUserM
  • 为Windows应用程序实现webrtc数据通道[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有谁知道如何向用 C 构建的 Windows 应用程序实现 WebRTC DataChannel API 以便在 NAT 后面的客户端
  • 使用 Docker 的 mediasoup v3

    我正在尝试运行一个2docker 中的 WebRTC 示例 使用 mediasoup 当我在一组实例上进行视频通话时 我想运行两台服务器 我的错误 你有没有看到这个错误 createProducerTransport null 错误 由于地
  • 在 Objective C 中使用 static init 有什么好处?

    最近我发现来自 Github 的 webrtc ios 示例 https github com gandg webrtc ios 当我浏览该项目时 我注意到 VideoView 类使用静态方法 但我不确定这是否必要 VideoView 是
  • WebRTC 局域网内是否需要 STUN 服务器?

    我使用Webrtc开发了一个p2p视频聊天 我知道需要 STUN 或 TURN 服务器来识别 NAT 后面的公共 IP 目前正在使用 Google 的 STUN 服务器 我的应用程序安装在连接到 LAN 的服务器上 但无法访问互联网 我是否
  • 结束两个对等方之间的 WebRTC 视频通话

    我已经使用以下命令在两个同伴之间建立了视频聊天WebRTC 我想让一个对等方结束聊天 并让另一个对等方知道聊天已结束 聊天结束后 需要为双方执行一些代码 这PeerConnection对象有一个removeStream 应该触发的方法onr
  • React Native - 在 Android 中显示传入视频通话屏幕(VOIP 应用程序)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试实施视频通话React Native 应用程序中的功能 我用过React 原生 twilio 视频 webrtc https
  • 如何在 iOS 和 macOS 上的 Safari 中使用网络摄像头录制视频?

    我已经发布了几条路径 1 录制视频https caniuse com feat html media capture https caniuse com feat html media capture但它仅适用于 iOS 并且无法自定义 我
  • MediaStream 未处理的承诺拒绝:[object DOMError](在 Safari 11 中)

    在下面初始化 WebRTC 的方法中 我在 Safari Tech Preview 11 中遇到了未处理的承诺拒绝 具体来说 当我分配MediaStream像这样的视频元素 video srcObject event stream 堆栈跟踪
  • webrtc - 获取网络摄像头的宽高比

    我正在尝试学习如何开发 webRTC 应用程序 我想知道是否可以获得相机的宽高比 我不知道它是否有帮助 但我正在使用 webrtc io 但是 if更好 我可以停止使用它 From MDN https developer mozilla o

随机推荐

  • C++中私有变量的值想怎么改就怎么改

    这应该算是C 的一个不足吧 C 是优秀的编程语言 但不是完美的 include
  • Mybatis-plus中,如何提前获取实体类用雪花算法生成的ID?

    Mybatis plus中 通过设置 TableId可以让Mybatis plus自动为我们生成雪花算法的ID号 该ID号是一个长整型数据 非常方便 但是雪花算法的ID号是在Insert执行的时候生成的 我们在Insert执行前是不知道En
  • 论文期刊分类学习记录

    SCI主要偏重理论性研究 EI偏工程应用 SCI源刊 gt SCI会议 gt EI源刊 影响因子较好 gt 既是中文核心又是EI源刊的期刊 gt EI源刊 影响因子一般 gt EI会议 权威会议 gt 中文核心期刊 南大核心 CSCS gt
  • SQL开窗函数(窗口函数)详解

    一 什么是开窗函数 开窗函数 分析函数 over 开窗函数也叫分析函数 有两类 一类是聚合开窗函数 一类是排序开窗函数 开窗函数的调用格式为 函数名 列名 OVER partition by 列名 order by列名 如果你没听说过开窗函
  • java8 list根据实体单字段、多字段分组。去重

    Map
  • boost静态链接库和c++/clr不兼容问题:未能加载文件或程序集,不是有效的Win32应用程序。

    项目上遇到的问题 c 编写的类使用托管c 包装成dll提供给c 项目使用 c 需要使用boost clr 项目目标平台都是win32 x86 开发环境win10 x64系统 vs2013 Net Framework 4 0 boost 1
  • Node之加密与解密处理

    crypto模块概述 在Node js中 使用OpenSSL类库作为其内部实现加密与解密处理的基础手段 这是因为目前OpenSSL已经成为了一个经过严格测试的可靠的加密与解密算法的实现工具 在Node js中 OpenSSL类库被封装在cr
  • 以太坊智能合约编程入门(一)

    原文地址 https medium com ConsenSys a 101 noob intro to programming smart contracts on ethereum 695d15c1dab4 1 ABBewYWJfdIFh
  • SMBMS项目

    一 准备工作 1 基本架构 2 在数据库中创建对应的表 对应数据库代码如下 CREATE DATABASE smbms USE smbms DROP TABLE IF EXISTS smbms address CREATE TABLE sm
  • 网络通信,UDP通信,TCP通信

    网络通信3要素 要素1 IP地址 IP地址操作类 InetAddress package com heima test import java net InetAddress import java net UnknownHostExcep
  • Python入门到机器学习再到深入学习及应用整个学习系统

    就在昨天我们收到了一位刚拿到Google offer的九章学员发来的截图 作为一名同是转专业到cs的程序猿 对此猿我定要表示万分真心的理解和祝贺 其中滋味 唯吾猿类方懂 此外这位细心的猿还找到了老师当时告诉她的6个妙招分享给大家 如上 在祝
  • MFC基本控件使用——列表控件(ListCtrl)

    咳咳 花了2天的时间 好好的把列表控件ListCtrl的基本使用研究了下 ListCtrl一共有4种样式 小图标 大图标 列表和报告 其实呢 列表控件我们再熟悉不过了 因为当你随便打开一个文件夹的时候 显示的就是一个列表控件 不相信 那可以
  • DVWA之CSP Bypass

    CSP Content Security Policy 即内容安全策略 点击这里有详细的介绍 不过简单了解下就是指 开发者在开发过程中设置了一个类似于白名单的策略 要信任某个页面 哪些外部资源可以执行 哪些不可以 这可以从根本上防御XSS
  • Wireshark零基础使用教程(超详细)

    作者主页 士别三日wyx 作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 专栏简介 此文章已录入专栏 网络安全快速入门 Wireshark零基础使用教程 一 Wireshark是什么 二 Wiresh
  • Linux时间戳timestamp导致端口不通

    1 故障描述 一台Linux服务器作为服务端C 搭建服务的端口号为9527 一台Linux服务器作为客户端A 访问调用服务端C的业务 一台Linux服务器作为客户端B 访问调用服务端C的业务 客户端A能够正常访问服务端C的业务 telnet
  • 云服务器中挖矿病毒watchdog记录

    晚上收到阿里云服务器被攻击的紧急邮件 登录控制台就发现遭到了恶意植入挖矿病毒 直接把我cpu资源吃完了 可恨 主要是挖矿程序和恶意脚本代码执行 我把这六个问题分别截图 挨个来解决 一 挖矿程序 看这两个挖矿程序的PID相同 直接追踪目标吧
  • ZigBee节点——ZigBee协议栈Z-Stack开发指南

    ZigBee节点 ZigBee协议栈Z Stack开发指南 分类 ZigBee 2011 08 18 14 06 749人阅读 评论 0 收藏 举报 网络 路由器 终端 network types 通讯 1 1设备类型 Device Typ
  • STM32实战项目—楼宇人员计数系统

    本文项目比较简单 目的是介绍一下红外对管的使用 程序设计也比较简单 因此 博主并没有将程序工程上传资源 如果有需要的话可以私信 文章目录 一 任务要求 二 实现方法 2 1 红外对管简介 2 2 进出人员检测 三 程序设计 3 1 红外对管
  • Intellij idea 报错:Error : java 不支持发行版本5

    推荐解决方式 感谢评论区另一位博友 Fumoon 提供的方案 https blog csdn net qq 42583206 article details 108375173 如按上述方式解决了问题 下文可以忽略
  • webrtc opus 设置与编码

    webrtc opus bg57iv3 扩展头 格式 audio encoder Received session description sdp v 0 o 7489544636758395528 2 IN IP4 127 0 0 1 s