webrtc opus 设置与编码

阅读: 评论:0

webrtc opus 设置与编码

webrtc opus 设置与编码

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:

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 

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

a=extmap:

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

a=extmap:

a=extmap:

a=extmap:

a=extmap:

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: , 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:258): AudioSendStream::ConfigureStream: {rtp: {ssrc: 1708860063, extmap-allow-mixed: false, extensions: [{uri: , 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

 

 NameValueType
this0x000000000c24df60 {config_={frame_size_ms=20 num_channels=1 application=kVoip (0) ...} payload_type_=...}webrtc::AudioEncoderOpusImpl *
 ◢ webrtc::AudioEncoder{...}webrtc::AudioEncoder
 ▶ __vfptr0x0000000142125800 {!void(* webrtc::AudioEncoderOpusImpl::`vftable'[27])()} {0x0000000140a09dd5 {!webrtc::AudioEncoderOpusImpl::`vector deleting destructor'(unsigned int)}, ...}void * *
 ◢ config_{frame_size_ms=20 num_channels=1 application=kVoip (0) ...}webrtc::AudioEncoderOpusConfig
 frame_size_ms20int
 num_channels1unsigned __int64
 applicationkVoip (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_enabledtruebool
 cbr_enabledfalsebool
 max_playback_rate_hz48000int
 complexity9int
 low_rate_complexity9int
 complexity_threshold_bps12500int
 complexity_threshold_window_bps1500int
 dtx_enabledfalsebool
 ▶ supported_frame_lengths_ms{ size=3 }std::vector<int,std::allocator<int> >
 uplink_bandwidth_update_interval_ms200int
 payload_type-1int
 payload_type_111const int
 send_side_bwe_with_overhead_falseconst bool
 use_link_capacity_for_adaptation_falseconst bool
 adjust_bandwidth_falseconst bool
 bitrate_changed_truebool
 packet_loss_rate_0.000000000float
 min_packet_loss_rate_0.000000000const float
 ▶ new_packet_loss_optimizer_emptyconst 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_3840unsigned int
 num_channels_to_encode_1unsigned __int64
 next_frame_length_ms_20int
 complexity_9int
 ▶ 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_emptystd::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_0int

 

 

 NameValueType
st0x000000000c2a8070 {celt_enc_offset=38288 silk_enc_offset=18040 silk_mode={nChannelsAPI=1 nChannelsInternal=...} ...}OpusEncoder *
 celt_enc_offset38288int
 silk_enc_offset18040int
 ◢ silk_mode{nChannelsAPI=1 nChannelsInternal=1 API_sampleRate=48000 ...}silk_EncControlStruct
 nChannelsAPI1int
 nChannelsInternal1int
 API_sampleRate48000int
 maxInternalSampleRate16000int
 minInternalSampleRate16000int
 desiredInternalSampleRate16000int
 payloadSize_ms20int
 bitRate22100int
 packetLossPercentage0int
 complexity9int
 useInBandFEC1int
 LBRR_coded0int
 useDTX0int
 useCBR0int
 maxBits922int
 toMono0int
 opusCanSwitch0int
 reducedDependency0int
 internalSampleRate16000int
 allowBandwidthSwitch1int
 inWBmodeWithoutVariableLP1int
 stereoWidth_Q1415360int
 switchReady0int
 signalType0int
 offset240int
 application2048int
 channels1int
 delay_compensation192int
 force_channels-1000int
 signal_type-1000int
 user_bandwidth-1000int
 max_bandwidth1105int
 user_forced_mode-1000int
 voice_ratio82int
 Fs48000int
 use_vbr1int
 vbr_constraint1int
 variable_duration5000int
 bitrate_bps32000int
 user_bitrate_bps32000int
 lsb_depth24int
 encoder_buffer480int
 lfe0int
 arch4int
 use_dtx0int
 ◢ analysis{arch=4 application=2048 Fs=48000 ...}TonalityAnalysisState
 arch4int
 application2048int
 Fs48000int
 ▶ angle0x000000000c2a8138 {0.000000000, 0.371065110, -0.178583264, 0.169607878, -0.336950421, -0.0553655699, ...}float[240]
 ▶ d_angle0x000000000c2a84f8 {0.000000000, 0.211459041, 0.108894110, -0.0403590798, -0.0484426916, -0.0585320257, ...}float[240]
 ▶ d2_angle0x000000000c2a88b8 {0.000000000, 0.00185681810, 0.000212006868, 0.000139717609, 0.000239213259, 0.000370358146, ...}float[240]
 ▶ inmem0x000000000c2a8c78 {-0.00359834707, -0.00321650039, -0.00343828206, -0.00407011248, -0.00430583814, ...}float[720]
 mem_fill240int
 ▶ prev_band_tonality0x000000000c2a97bc {0.0707340315, 0.256839573, 0.0646021217, 0.0535893366, 4.82304631e-06, 0.00638849102, ...}float[18]
 prev_tonality0.0744439214float
 prev_bandwidth16int
 ▶ E0x000000000c2a980c {0x000000000c2a980c {2.55750088e-08, 9.36143074e-09, 2.76515277e-09, 1.35677691e-09, ...}, ...}float[8][18]
 ▶ logE0x000000000c2a9a4c {0x000000000c2a9a4c {-17.4777470, -18.4760418, -19.6706448, -20.3470402, -21.3746700, ...}, ...}float[8][18]
 ▶ lowE0x000000000c2a9c8c {-17.4777470, -18.4760418, -19.6706448, -20.3470402, -21.3746700, -20.4640789, -20.0291424, ...}float[18]
 ▶ highE0x000000000c2a9cd4 {-10.1126461, -13.4705744, -15.9786558, -17.1679306, -17.9192219, -16.4453983, -14.3947802, ...}float[18]
 ▶ meanE0x000000000c2a9d1c {1.69691320e-05, 1.21011362e-06, 3.28179901e-08, 9.97130112e-09, 4.68893901e-09, ...}float[19]
 ▶ mem0x000000000c2a9d68 {-75.0991974, 4.48027182, 1.93349600, 4.91965246, 1.66545582, 4.41493130, -0.158232212, ...}float[32]
 ▶ cmean0x000000000c2a9de8 {-73.6217041, 5.10436296, 1.28940845, 4.50601101, 0.000000000, 0.000000000, 0.000000000, ...}float[8]
 ▶ std0x000000000c2a9e08 {0.282320261, 0.187619641, 0.852573156, 0.488151670, 1.46251786, 0.275115967, 0.825375319, ...}float[9]
 music_prob0.102564953float
 vad_prob0.0822941810float
 Etracker-0.0210000016float
 lowECount1.00000000float
 E_count7int
 last_music0int
 count7int
 analysis_offset0int
 ▶ pspeech0x000000000c2a9e4c {0.896234274, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, ...}float[100]
 ▶ pmusic0x000000000c2a9fdc {0.103052884, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, ...}float[100]
 speech_confidence0.100000001float
 music_confidence0.899999976float
 speech_confidence_count0int
 music_confidence_count0int
 write_pos7int
 read_pos7int
 read_subframe0int
 hp_ener_accum0.000000000float
 ▶ downmix_state0x000000000c2aa18c {-0.00205630972, -0.00201843097, 0.00201843097}float[3]
 ▶ info0x000000000c2aa198 {{valid=1 tonality=0.0630559996 tonality_slope=0.0293915570 ...}, {valid=1 tonality=...}, ...}AnalysisInfo[100]
 stream_channels1int
 hybrid_stereo_width_Q1416384short
 variable_HP_smth2_Q15193536int
 prev_HB_gain0.998388469float
 ▶ hp_mem0x000000000c2ab788 {0.000429835636, -0.000430019340, 0.000000000, 0.000000000}float[4]
 mode1001int
 prev_mode1001int
 prev_channels1int
 prev_framesize960int
 bandwidth1104int
 auto_bandwidth1105int
 silk_bw_switch0int
 first0int
 ▶ energy_masking0x0000000000000000 {???}float *
 ▶ width_mem{XX=0.000000000 XY=0.000000000 YY=0.000000000 ...}StereoWidthState
 ▶ delay_buffer0x000000000c2ab7d4 {-0.00312746083, -0.00290988642, -0.00281588663, -0.00290483702, -0.00314440276, ...}float[960]
 detected_bandwidth1104int
 nb_no_activity_frames0int
 peak_signal_energy0.000117333788float
 nonfinal_frame0int
 rangeFinal0unsigned int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

本文发布于:2024-01-27 22:14:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063649132952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:webrtc   opus
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23