Skip to content

Releases: pion/webrtc

v3.2.9

02 Jun 15:56
Compare
Choose a tag to compare

Changelog

  • a0e9824 DTLS: Add Client/RootCAs, ClientAuth, Secret Opts
  • 2ffab96 Update module github.com/stretchr/testify to v1.8.4
  • 83ae83b Run go mod tidy

v3.2.8

24 May 04:10
Compare
Choose a tag to compare

Changelog

  • 73276d1 Update module github.com/pion/ice/v2 to v2.3.6

v3.2.7

24 May 04:09
Compare
Choose a tag to compare

Changelog

  • 1df634e Remove golint from godoc and move no next line

v3.2.6

22 May 06:52
Compare
Choose a tag to compare

Changelog

  • 323469d Update module github.com/pion/stun to v0.6.0
  • 6df9089 Update module github.com/pion/ice/v2 to v2.3.5

v3.2.5

19 May 19:21
Compare
Choose a tag to compare

Changelog

  • 7a100b9 Enable SRTP_AEAD_AES_256_GCM
  • f9e0934 Update module github.com/pion/interceptor to v0.1.17
  • 55b1ac0 Update module github.com/pion/dtls/v2 to v2.2.7
  • ab11eed Improve SetEphemeralUDPPortRange documentation
  • d1985e0 Bring back LICENSE file
  • a8aa8cc Update AUTHORS.txt
  • b07c7b2 Update CI configs to v0.10.9

v3.2.4

19 May 03:43
Compare
Choose a tag to compare

Changelog

  • f83bd73 Remove SRTP_AEAD_AES_256_GCM from default
  • 505f54c Update module github.com/stretchr/testify to v1.8.3
  • 4d3c4b1 Add SetDTLSConnectContextMaker to SettingEngine
  • c1bec49 Update CI configs to v0.10.8
  • c719ccd Bring back LICENSE file

v3.2.3

18 May 14:11
Compare
Choose a tag to compare

Changelog

  • fc0c4e7 Update module github.com/pion/ice/v2 to v2.3.4

v3.2.2

18 May 12:49
Compare
Choose a tag to compare

Changelog

  • bb022d5 Implemented SRTP_AEAD_AES_256_GCM
  • 0199c58 Update AUTHORS.txt
  • 1210046 Upgrading pion/ice dependency
  • 683fc83 Make repo REUSE compliant
  • efffef2 Update CI configs to v0.10.7
  • 9f74821 Update module golang.org/x/net to v0.9.0
  • f906bd2 Update module github.com/pion/srtp/v2 to v2.0.13

v3.2.1

30 Apr 04:37
Compare
Choose a tag to compare

Changelog

  • 5bdbaca Update module github.com/pion/sctp to v1.8.7

v3.2.0

26 Apr 17:46
Compare
Choose a tag to compare

Pion WebRTC v3.2.0 is now available. Pion WebRTC is a Go implementation of WebRTC. If you haven't used it before check out awesome-pion or example-webrtc-applications for what people are doing. We maintain a feature list and other helpful resources in our README.md

This release includes 260 commits from 55 authors. This release was primarily focused on providing more tools around understanding and handling network conditions. Pion wouldn't be possible without everyone involved.

New Features

Media Bandwidth Estimator

Pion now provides a Bandwidth Estimator in-tree for serving media. You now get signals about how much bandwidth is available so you can either send more or less data, giving your users the best experience possible. We currently have a implementation of Google Congestion Control. This was implemented using a generic interface so we can provide more implementations in the future.

To use this you create a cc.BandwidthEstimator provided by pion/interceptor. This estimator then can be queried via estimator.GetTargetBitrate(). This returned value tells you if you should raise, lower or sustain the bitrate you are currently sending.

See bandwidth-estimation-from-disk for a full example of how it can be used.

This was implemented by @mengelbart. Work on Pion's congestion control and bandwidth estimation was funded through the User-Operated Internet fund, a fund established by NLnet made possible by financial support from the PKT Community/The Network Steward and stichting Technology Commons Trust.

webrtc-stats implementation

You can now query and process metadata about your media connections. This data is presented in the standardized webrtc-stats format. These statistics give insight into the why of a WebRTC session.

You can use this to monitor how your Pion WebRTC PeerConnections are operating. Users are also finding this useful to monitor, debug and analyze other WebRTC media servers. You can quickly start up a Pion WebRTC PeerConnection and write canaries and tests against other WebRTC software.

To use this you create a stats.Interceptor provided by pion/interceptor. This allows you to query on a per SSRC basis the status of a stream. The following is an example of query it in a loop in the OnTrack for each stream.

peerConnection.OnTrack(func(track *webrtc.TrackRemote, receiver *webrtc.RTPReceiver) {
    fmt.Printf("New incoming track with codec: %s\n", track.Codec().MimeType)
    for {
        // Pull the stats for the stream that caused OnTrack to be fired
        stats := statsGetter.Get(uint32(track.SSRC()))
                 
         // Print InboundRTPStreamStats. Other stats are available as well
         fmt.Println(stats.InboundRTPStreamStats)

         time.Sleep(time.Second * 5)     
    }
})

See stats for a full example of how it can be used.

This was implemented by @mengelbart

Simulcast Sender

You are now able to send Simulcast traffic with Pion WebRTC. Before this commit we were only able to receive Simulcast traffic.

Developer are using this to move Simulcast traffic between their servers as they scale out. It has also been useful for testing WebRTC servers. Using a small Pion process you can assert that your servers are properly handling Simulcast traffic.

This was implemented in 37e16a3 by @boks1971

AV1 Support

Pion WebRTC now has AV1 support. You can send AV1 with the same APIs you send and receive H264, H265, VP8, VP9, Opus and PCM with.

A example of saving AV1 to disk is available at save-to-disk-av1

Extensive Tooling Improvements

@stv0g and @at-wat made extensive improvements to the .goassets repo. Tools and processes had fallen out of date and were slowing the project down. They took on a lot of frustrating work so Pion can be stable and defect free.