21 ms·
On the Road to WebRTC 1.0, Including VP8
- aclatuts 8y agoThis isn't as useful if webviews in iOS don't have the same apis enabled. It is very annoying that other browsers on iOS probably wont have access to these features and updates.
- JimDabell 8y agoIf it's not enabled in web views, there's nothing stopping browsers from polyfilling it with native code.
- sametmax 8y agoYes there is because you can't implement your own browser engine on iOS. Browsers are just shells for the safari engine on iPhones.
- JimDabell 8y agoWhere did you get the impression I was suggesting implementing your own browser engine? The whole point of the discussion surrounds what is possible in web views, not implementing your own browser engine.
- dwaite 8y agoI've heard mixed reports on this - the big issue is technical in that you can't implement your own JIT Javascript engine, because only JavaScriptCore (running out-of-process) can write executable pages.
- kalleboo 8y agoThe big issue is that the app store rules forbid it. > 2.5.6 Apps that browse the web must use the appropriate WebKit framework and WebKit Javascript.
- untog 8y agoThere is everything stopping you. WKWebView runs in its own process and has very limited options for integrating native code.
- JimDabell 8y agoThe model I was thinking of was native code in the native app, injected polyfill that talks to the native code over a message bus. The native code can draw over the top of the web view and pass messages in. Is there anything in particular stopping that?
- Klathmon 8y agoI believe the problem is the "message bus" is pretty slow, and has pretty limited throughput, especially for something like audio and video.
- SahAssar 8y agoIIRC that is exactly what ericsson did, they made a iOS browser that allowed webrtc years before apple by adding functionality to webviews.
- alvatech 8y agoYes. I still don't know why Apple is not supporting getUserMedia() in WkWebView which is required for the WebRTC
- alvatech 8y agoThis radar is active for almost two years now http://www.openradar.me/33571214 http://www.openradar.me/33571214
- ihuman 8y agoI wish you could follow duplicates of radars like in github.. That issue was "resolved" by saying its a duplicate of issue 29281220, which isn't helpful at all. That issue could be even older than the one you linked.
- dwaite 8y agoIf this is something you care about, you should file an enhancement request, even if you write that it is a duplicate of that issue yourself. Right now, WKWebView and SFSafariViewController (and the authentication service variant, and Web.app which is used for shortcuts on the home screen) do not have WebRTC support - only MobileSafari.app does.
- floatingatoll 8y agoApple historically considers dupes as upvotes, so be sure to indicate to which bug you suggest they dupe it if you know of one.
- ihuman 8y agoHave they said why they don't just use an upvoting system? Even github kind of has that with the emoji reactions.
- 8y ago
- citrusui 8y agoI know it'll probably never happen, but I hope this somehow leads to Apple supporting .webm in Safari.
- ihuman 8y agoVP8 can only be contained in MKVs and WebMs files, so I do see this happening. Apple is also part of the consortium working on AV1, the successor to VP8 and VP9; it also uses the MKV and WEBM containers.
- deleted 8y ago[deleted]
- morganw 8y ago"uses the MKV and WEBM containers" Maybe, but not exclusively VP9: https://www.webmproject.org/vp9/mp4/ https://www.webmproject.org/vp9/mp4/ (uses 'vp09' & 'vpcC' in the stsd) AV1: https://aomedia.org/wp-content/uploads/2018/09/AV1-ISO-Base-Media-File-Format-Binding-Specification.pdf https://aomedia.org/wp-content/uploads/2018/09/AV1-ISO-Base-... (uses 'av01' & 'av1C' in the stsd) YouTube's AV1 playlist https://www.youtube.com/watch?v=2nXYbGmF3_Q&list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS https://www.youtube.com/watch?v=2nXYbGmF3_Q&list=PLyqf6gJt7K... uses mp4 as the container for the av1 (av01.0.05M.08), webm for the VP9 (vp9) ./youtube-dl --list-formats https://www.youtube.com/watch?v=2nXYbGmF3_Q [youtube] 2nXYbGmF3_Q: Downloading webpage [youtube] 2nXYbGmF3_Q: Downloading video info webpage [info] Available formats for 2nXYbGmF3_Q: format code extension resolution note 249 webm audio only DASH audio 55k , opus @ 50k, 1.43MiB 250 webm audio only DASH audio 70k , opus @ 70k, 1.81MiB 171 webm audio only DASH audio 118k , vorbis@128k, 2.99MiB 140 m4a audio only DASH audio 128k , m4a_dash container, mp4a.40.2@128k, 3.65MiB 251 webm audio only DASH audio 133k , opus @160k, 3.38MiB 278 webm 256x144 144p 101k , webm container, vp9, 30fps, video only, 2.57MiB 160 mp4 256x144 144p 109k , avc1.4d400c, 30fps, video only, 1.02MiB 242 webm 426x240 240p 205k , vp9, 30fps, video only, 2.81MiB 133 mp4 426x240 240p 241k , avc1.4d4015, 30fps, video only, 2.27MiB 243 webm 640x360 360p 377k , vp9, 30fps, video only, 5.08MiB 395 mp4 426x240 240p 426k , av01.0.05M.08, 30fps, video only, 3.33MiB 134 mp4 640x360 360p 514k , avc1.4d401e, 30fps, video only, 4.66MiB 244 webm 854x480 480p 696k , vp9, 30fps, video only, 8.29MiB 396 mp4 640x360 360p 751k , av01.0.05M.08, 30fps, video only, 6.04MiB 135 mp4 854x480 480p 989k , avc1.4d401f, 30fps, video only, 8.54MiB 397 mp4 854x480 480p 1175k , av01.0.05M.08, 30fps, video only, 9.86MiB 247 webm 1280x720 720p 1282k , vp9, 30fps, video only, 12.27MiB 136 mp4 1280x720 720p 1675k , avc1.4d401f, 30fps, video only, 14.43MiB 398 mp4 1280x720 720p 2075k , av01.0.05M.08, 30fps, video only, 18.99MiB 248 webm 1920x1080 1080p 2349k , vp9, 30fps, video only, 20.93MiB 137 mp4 1920x1080 1080p 2768k , avc1.640028, 30fps, video only, 23.33MiB 399 mp4 1920x1080 1080p 3759k , av01.0.05M.08, 30fps, video only, 39.32MiB 18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k, 11.11MiB 43 webm 640x360 medium , vp8.0, vorbis@128k, 16.66MiB 22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
- ksec 8y agoUnder what situation is H.264 not available in WebRTC and require the use of VP8?
- rhn_mk1 8y agoFree software. The Cisco H.264 codec supplied with Firefox cannot be distributed with other software, despite being "open". From https://www.openh264.org/ https://www.openh264.org/ , there seem to be licensing costs involved with the usage of this code, which have been waived for some uses, implying they were not waived for others: > We will not pass on our MPEG-LA licensing costs for this module, and based on the current licensing environment, this will effectively make H.264 free for use on supported platforms. EDIT: To clarify, such licensing requirements on H.264 may make codecs fall outside of the guidelines of software distributions allowing only free software, making them supply their browser without one.
- detaro 8y agoIf I remember correctly, only decoding for online video streaming doesn't require licensing fees. Cisco hits the fee cap with the products they sell already, so letting everyone use their binaries doesn't cost them anything.
- TingPing 8y agoRight the core problem is you have to use their binaries so Mozilla can't build it and ship their own.
- kodablah 8y agoAlso includes lots of people w/ custom Chromium-based browsers that don't ship with these codecs (and libs like CEF don't compile with them enabled by default).
- deleted 8y ago[deleted]
- derf_ 8y ago
- bobowzki 8y agoI like WebRTC but it's a complicated mess of protocols... I'm currently trying to implement a WebRTC peer client in pure Erlang. One of the most difficult things I've done because WebRTC relies on several hundred pages of RFCs.
- kodablah 8y agoYup, lots of telephony-inspired RFCs in there. If you're not already, I suggest referencing [0] as you develop, it's a great project that is also really easy to read what's happening underneath. 0 - https://github.com/pions/webrtc https://github.com/pions/webrtc
- bobowzki 8y agoYes, pions WebRTC was my inspiration!
- Sean-Der 8y ago@bobowzki we would love to have you on Slack https://pion.ly/slack/ https://pion.ly/slack/ If there is anything I can do I would like to support your Erlang implementation! I can answer any questions you have, and would be happy to help get more eyes on your version as well. It would be fantastic to see Go, Python, Erlang, C++ and Browsers all communicating directly without any software in the middle :)
- bobowzki 8y agoThanks I will do that!
- stcredzero 8y agoThank goodness for pions webrtc! I changed my MMO's dev version over to it a couple months ago. This is going to be tons better than the node-electron webrtc proxies running under tmux I was using. Between this, nanomsg, and BadgerDB, I'm going to be removing all of my non-golang dependencies, which is going to enable some very cool stuff. For one thing, I now have edge servers in my architecture. This means that I can now use my ability to serialize the state of a game instance server process, then inject it into another process without any participation from the client. This will make hot code updates really slick.
- kodablah 8y ago> Safari also comes with additional improvements, including better support of capture device selection, experimental support of the screen capture API, and deprecation of the WebRTC legacy API. Looking very much forward to this. Currently my plugin-free in-browser screen-sharing tool [0] only works in FF and Chrome. The real question is will mobile browsers offer it. In general though, I am impressed with how well screen capturing over WebRTC works and so far haven't seen that many people needing a TURN server. 0 - https://github.com/cretz/myscreen.live https://github.com/cretz/myscreen.live
- nottorp 8y agoAll I know about WebRTC is Chrome preventing sleep on my systems with "WebRTC has active peer connections". Made me ditch Chrome before it was fashionable to de-google. So the only new feature i want from this WebRTC thingy is... an OFF button.
- sempron64 8y agoIn addition to being annoying, WebRTC is a privacy hazard and I believe it should be off by default. I install this to make it so https://addons.mozilla.org/en-US/firefox/addon/happy-bonobo-disable-webrtc/ https://addons.mozilla.org/en-US/firefox/addon/happy-bonobo-...
- kmlx 8y agoisn’t webrtc by default off on all browsers? aren’t websites asking for permssion before the js is allowed access? and won’t it stay off when you deny the request?
- kmlx 8y agoexcellent news. the webkit team are really improving their webrtc offering. i feel the next great leap for webrtc is wasm + webrtc: https://www.google.co.uk/amp/s/bloggeek.me/webassembly-in-webrtc/amp/ https://www.google.co.uk/amp/s/bloggeek.me/webassembly-in-we...
- Sean-Der 8y agoThis is super exciting, so many cool things happening here. I haven't had a chance to grok it fully yet but someone added WASM support to pion recently [0] you will able to just write your code once in Go and should work in both places! https://github.com/pions/webrtc/blob/master/examples/README.md#webassembly https://github.com/pions/webrtc/blob/master/examples/README....
- kmlx 8y agowow, that's brilliant.
- therealmarv 8y agoVP8 and VP9 hardware decoder acceleration is common on new products nowadays?! Or is this only the case on non Apple Smartphones? btw: Looking forward to AV1 HW decoder accelerated CPUs.
- derf_ 8y agoAs someone who harassed you about VP8 support in the past [0], this is really great news. Thank you for all of your hard work. I am also really happy to see the transition to Unified Plan. [0] https://news.ycombinator.com/item?id=14510045 https://news.ycombinator.com/item?id=14510045
- qwerty456127 8y ago> The VP8 video codec is widely used in existing WebRTC solutions. It is now supported as a WebRTC-only video codec in Safari 12.1 on both iOS and macOS betas. For Steve's sake! Why not add VP8 and OPUS system-wide already when they already even are built in different parts of the system?
- awill 8y agoprobably because Apple doesn't have hardware acceleration for vp8. They don't want developers to use it. It'll be an inferior UX. Less battery, hotter device. It's a bit arrogant for them to compare battery life of h264 to vp8, as they've chosen not to support hardware accelerated vp8. All Android devices have had this for years. I'm hoping this all settles out with av1. Netflix and Amazon will support av1, so that doesn't leave Apple with much choice.
- vetinari 8y agoThe Intel chips that Apple uses support VP8 decoding since Broadwell and encoding since Cherryview/Braswell. On the mobile side, it was their conscious decision not to support it, just like they newer supported the free audio codecs or container formats either.
- qalmakka 8y agoBecause Apple had significant stakes in MPEG-LA and VP8 and its descendants were a significant threat to its licensing revenues. Thankfully the HEVC fiasco and AV1 have forced them to accept that MPEG is heading towards irrelevance, but I don't expect them to implement support for VPx codecs any time soon. The only thing left is to wait for AV1 to mature and begin being implemented in hardware.
- qwerty456127 8y agoHonestly I don't care much about AV1, I am hardly going to own AV1-capable hardware in less than 5-10 years anyway. What I really want is OPUS to work everywhere (HTML audio tag in web browsers, message-attached audio files in messengers (Telegram), iTunes) and possibly VP8(webm)-encoded "gifs". I have converted my whole lifetime collection of MP3s (some hundreds gibs) to OPUS to save space (and put a big collection of audio books on my Android phone) and now I have to convert them back every time I want to let my wife listen to something on her iPhone, iPad or MacBook (there is VLC for this on Mac yet lack of web browser support is still a pain). I've seen many mentions OPUS is going to be everywhere, Apple included, years passed and it still is not, not even in the fresh models that were meant to have it in hardware.
- shmerl 8y agoWhen will Safari support Opus audio codec in Ogg container?
- EGreg 8y agoIs there a way to do WebRTC without revealing your IP to some signaling server?