Phương thức getParameters() của RTCRtpSender
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
* Some parts of this feature may have varying levels of support.
Phương thức getParameters() của giao diện RTCRtpSender trả về một đối tượng mô tả cấu hình hiện tại cho cách track của sender sẽ được mã hóa và truyền tải đến một RTCRtpReceiver từ xa.
Cú pháp
getParameters()
Tham số
Không có.
Giá trị trả về
Một đối tượng cho biết cấu hình hiện tại của sender.
encodings-
Một mảng các đối tượng, mỗi đối tượng chỉ định các tham số và cài đặt cho một codec duy nhất có thể được sử dụng để mã hóa media của track. Các thuộc tính của các đối tượng bao gồm:
active-
true(mặc định) nếu encoding đang được gửi,falsenếu nó không được gửi hoặc sử dụng. codecOptional-
Chọn codec media được sử dụng cho luồng RTP của encoding này. Nếu không được đặt, user agent có thể chọn bất kỳ codec nào được đàm phán để gửi.
channelsOptional-
Một số nguyên dương cho biết số kênh được hỗ trợ bởi codec. Ví dụ, đối với codec âm thanh, giá trị 1 chỉ định âm thanh đơn âm, trong khi 2 chỉ định âm thanh nổi.
clockRate-
Một số nguyên dương chỉ định tốc độ xung nhịp của codec tính bằng Hertz (Hz). Tốc độ xung nhịp là tốc độ mà timestamp RTP của codec tăng lên. Hầu hết các codec có các giá trị cụ thể hoặc dải giá trị cho phép. IANA duy trì một danh sách các codec và tham số của chúng, bao gồm cả tốc độ xung nhịp.
mimeType-
Một chuỗi cho biết kiểu và kiểu phụ MIME media của codec, được chỉ định dưới dạng chuỗi
"type/subtype". Các chuỗi kiểu MIME được sử dụng bởi RTP khác với những chuỗi được sử dụng ở nơi khác. IANA duy trì một registry các kiểu MIME hợp lệ. Ngoài ra, xem Các codec được sử dụng bởi WebRTC để biết chi tiết về các codec tiềm năng có thể được tham chiếu ở đây. sdpFmtpLineOptional-
Một chuỗi cung cấp các tham số cụ thể định dạng được cung cấp bởi mô tả cục bộ.
dtxĐã lỗi thời Không chuẩn-
Chỉ được sử dụng cho một
RTCRtpSendercókindlàaudio, thuộc tính này cho biết liệu truyền dẫn gián đoạn có đang được sử dụng hay không (một tính năng mà điện thoại được tắt hoặc micro được tự động tắt khi không có hoạt động giọng nói). Giá trị làenabledhoặcdisabled. maxBitrate-
Một số nguyên dương cho biết số bit tối đa mỗi giây mà user agent được phép cấp cho các track được mã hóa với encoding này. Các tham số khác có thể hạn chế thêm tốc độ bit, chẳng hạn như giá trị của
maxFramerate, hoặc băng thông khả dụng cho transport hoặc mạng vật lý.Giá trị được tính toán sử dụng băng thông TIAS (Transport Independent Application Specific Maximum) tiêu chuẩn như được định nghĩa bởi RFC 3890, section 6.2.2; đây là băng thông tối đa cần thiết mà không cần xem xét các chi phí giao thức từ IP, TCP hoặc UDP, v.v.
Lưu ý rằng tốc độ bit có thể đạt được theo một số cách, tùy thuộc vào media và encoding. Ví dụ, đối với video, tốc độ bit thấp có thể đạt được bằng cách loại bỏ các khung (tốc độ bit bằng 0 có thể chỉ cho phép gửi một khung), trong khi đối với âm thanh, track có thể phải dừng phát nếu tốc độ bit quá thấp để gửi.
maxFramerate-
Một giá trị chỉ định số khung tối đa mỗi giây cho phép cho encoding này.
priority-
Một chuỗi cho biết mức độ ưu tiên của
RTCRtpSender, có thể xác định cách user agent phân bổ băng thông giữa các sender. Các giá trị được phép làvery-low,low(mặc định),medium,high. rid-
Một chuỗi, nếu được đặt, chỉ định một RTP stream ID (RID) được gửi bằng phần mở rộng header RID. Tham số này không thể được sửa đổi bằng
setParameters(). Giá trị của nó chỉ có thể được đặt khi transceiver được tạo lần đầu. scaleResolutionDownBy-
Chỉ được sử dụng cho các sender có track với
kindlàvideo, đây là một giá trị dấu phẩy động chỉ định hệ số thu nhỏ video trong khi mã hóa. Giá trị mặc định, 1.0, có nghĩa là video sẽ được mã hóa ở kích thước ban đầu. Giá trị 2.0 thu nhỏ các khung video xuống hệ số 2 theo mỗi chiều, dẫn đến video có kích thước bằng 1/4 so với bản gốc. Giá trị không được nhỏ hơn 1.0 (cố gắng thu phóng video lên kích thước lớn hơn sẽ ném raRangeError).
transactionId-
Một chuỗi chứa một ID duy nhất. Giá trị này được sử dụng để đảm bảo rằng
setParameters()chỉ có thể được gọi để sửa đổi các tham số được trả về bởi một lời gọigetParameters()cụ thể trước đó. Tham số này không thể được thay đổi bởi người gọi. codecs-
Một mảng các đối tượng mô tả các codec media mà sender đã đặt là đã bật và sẵn sàng sử dụng. Tham số này không thể được thay đổi sau khi đã đặt ban đầu.
Mỗi đối tượng codec trong mảng có thể có các thuộc tính sau:
channelsOptional-
Một số nguyên dương cho biết số kênh được hỗ trợ bởi codec. Ví dụ, đối với codec âm thanh, giá trị 1 chỉ định âm thanh đơn âm, trong khi 2 chỉ định âm thanh nổi.
clockRate-
Một số nguyên dương chỉ định tốc độ xung nhịp của codec tính bằng Hertz (Hz). Tốc độ xung nhịp là tốc độ mà timestamp RTP của codec tăng lên. Hầu hết các codec có các giá trị cụ thể hoặc dải giá trị cho phép. IANA duy trì một danh sách các codec và tham số của chúng, bao gồm cả tốc độ xung nhịp.
mimeType-
Một chuỗi cho biết kiểu và kiểu phụ MIME media của codec, được chỉ định dưới dạng chuỗi
"type/subtype". Các chuỗi kiểu MIME được sử dụng bởi RTP khác với những chuỗi được sử dụng ở nơi khác. IANA duy trì một registry các kiểu MIME hợp lệ. Ngoài ra, xem Các codec được sử dụng bởi WebRTC để biết chi tiết về các codec tiềm năng có thể được tham chiếu ở đây. payloadType-
Loại payload RTP được sử dụng để xác định codec này.
sdpFmtpLineOptional-
Một chuỗi cung cấp các tham số cụ thể định dạng được cung cấp bởi mô tả cục bộ.
headerExtensions-
Một mảng gồm không hoặc nhiều phần mở rộng header RTP, mỗi phần mở rộng xác định một phần mở rộng được hỗ trợ bởi sender hoặc receiver. Các phần mở rộng header được mô tả trong RFC 3550, section 5.3.1. Tham số này không thể được thay đổi sau khi đã đặt ban đầu.
rtcp-
Một đối tượng cung cấp các tham số cấu hình được sử dụng cho RTCP trên sender. Tham số này không thể được thay đổi.
Đối tượng có thể có các thuộc tính sau:
cname-
Một chuỗi chỉ đọc cho biết tên chuẩn (CNAME) được sử dụng bởi RTCP (ví dụ: trong các thông báo SDES).
reducedSize-
Một boolean chỉ đọc là
Truenếu RTCP kích thước thu nhỏ được cấu hình (RFC 5506), vàFalsenếu RTCP phức hợp được chỉ định (RFC 3550).
degradationPreference-
Chỉ định cách ưu tiên mà lớp WebRTC nên xử lý việc tối ưu hóa hiệu suất trong các tình huống băng thông bị hạn chế. Các giá trị có thể là:
balanced-
Giá trị mặc định. Trình duyệt sẽ cân bằng giữa giảm framerate và độ phân giải.
maintain-framerate-
Trình duyệt sẽ giảm độ phân giải để duy trì framerate.
maintain-resolution-
Trình duyệt sẽ giảm framerate để duy trì độ phân giải.
maintain-framerate-and-resolution-
Trình duyệt sẽ duy trì framerate và độ phân giải bất kể chất lượng video, có thể dẫn đến việc loại bỏ các khung trước khi mã hóa nếu cần thiết để không sử dụng quá mức tài nguyên mạng và bộ mã hóa. Cài đặt này hữu ích cho các ứng dụng triển khai cơ chế tối ưu hóa chất lượng và hiệu suất mã hóa video riêng và không muốn cơ chế nội bộ của trình duyệt can thiệp vào nó.
Ví dụ
Ví dụ này lấy transaction ID hiện tại của sender; transaction ID xác định duy nhất tập hợp tham số hiện tại, để đảm bảo rằng các lời gọi tới setParameters() luôn được xử lý theo đúng thứ tự, tránh ghi đè tham số một cách vô ý bằng các tham số cũ hơn.
function getSenderTransactionID(sender) {
let parameters = sender.getParameters();
return parameters.transactionId;
}
Tương tự, mã này lấy tên chuẩn (CNAME) đang được sử dụng cho RTCP trên một RTCRtpSender.
function getRtpCNAME(sender) {
let parameters = sender.getParameters();
return parameters.rtcp.cname;
}
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcrtpsender-getparameters> |
| MediaStreamTrack Content Hints> # dom-rtcdegradationpreference> |