Show HN: AV1 and WebRTC
github.com
github.com
0: https://9to5mac.com/2020/06/24/apple-adds-webp-hdr-support-a...
The whole purpose of the MPEG-LA is to be a single entity to approach about licenses held by a bunch of companies. Avoiding paying licenses means avoiding codecs well supported by mobile hardware.
2. Firefox don't support hevc nor it will be in the future
P.S. https://developer.mozilla.org/en-US/docs/Web/Media/Formats/V... VP9 is supported by all major browsers
So when I started building Pion the target use case was to make it easier to build scalable servers. Instead of interacting with a WebRTC servers REST API to query information/load balance I wanted to have it all in one code base. It also is really useful to have Media+Transport decoupled. Lots of use cases I didn't realize grew out of that.
* Teleoperation/robotics (https://github.com/Ragnar-H/TelloGo)
* Control remote software (https://github.com/m1k1o/neko)
* Cross platform file sharing (https://github.com/saljam/webwormhole)
* Sending pre-recorded media (RTMP/HLS/RTSP -> WebRTC)
* Custom DataChannel servers/bridges (https://snowflake.torproject.org/)
Lots of other cool ones in https://github.com/pion/awesome-pion I need to update it. It has been a bit since I have looked through https://pkg.go.dev/github.com/pion/webrtc/v3?tab=importedby
We also provide https://github.com/pion/interceptor. Interceptor is implementations of common RTCP workflows. Things like Congestion Feedback, NACK generation and Congestion Controllers. The idea is that you can use the ones we provide, or use your own!
For playing media from disk you have https://github.com/pion/webrtc/tree/master/examples/play-fro...
To see how to accept and process RTCP see https://github.com/pion/webrtc/tree/master/examples/rtcp-pro...
The example-webrtc-applications repo also shows how you could get media from GStreamer.
Pion doesn't have a way to exactly implement your business logic. You have two choices (and they both can be implemented with Pion)
* Store everything since the last keyframe and RTX to the user. You have access to PLIs and NACKs so you can do that.
* Request a new keyframe from the encoder.
I would love to ship something that exactly meets your need, but I don't think I can.
I understand that pion is a transport library, I was mostly wondering if you've seen anyone solve this issue. To give you a little background, we built an app that allowed a movie containing a children's story to be read aloud with the participants.The movie streamed from our servers of WebRTC. It worked well, but we found that users in Europe often have DSL and using a keyframe interval of 3 seconds was too much for their connections to handle. Increasing the keyframe interval lead to situations where users saw nothing when they first connected. We eventually switched to synchronized local playback for media, but it's much more difficult to time perfectly and people have noticed it's more out-of-sync than before.
But people are successfully streaming pre-recorded media. You have to do out of band communication, and that will just have to be custom afaik :/
But keep looking! Just make sure to mention that you’re targeting DSL so people know not to recommend things you’ve already ruled out.