phoboslab / jsmpeg

MPEG1 Video Decoder in JavaScript
MIT License
6.38k stars 1.43k forks source link

Safari VS Chrome #66

Closed naaanarax closed 7 years ago

naaanarax commented 8 years ago

I have tested ffmpeg live streams (web cam) on iPhone (6), iPad, Samsung Galaxy. Safari always normal live stream but Chrome,Firefox,other browser got browser stuck or 0.1-2 frame/sec significantly slow. If I test it in desktop (mac or windows), all working normal live speed. I did try minified (google closure), but result was same. Also I downgraded resoultion 160x120 fps and 480x320, and results were same. Also I tried downgraded bitrate even 30kbps, but the result was same. It seems very very strange to me. Do you have any idea of your so nice jsmpg.js ? Best.

phoboslab commented 8 years ago

I believe Chrome and Firefox for iOS still render in a UIWebView and can't use the JavaScript JIT.

Do you have the problem on Android as well?

naaanarax commented 8 years ago

Yes, I did test Android too (Samsung Galaxy S2 and newest Samsung mobile model 2015 Android 4.4 I think). Through emulator (iOS emulator in Windows or MAC Intel XDK and Microsoft Visual Studio 2015 Cordova), works great for Android, iPhone, iPad,.... But once I deploy jsmpg.js to the real devices, then frame rate goes down 0.1-0.3 frame/sec and frequently stuck except Safari. Safari works always great.

phoboslab commented 8 years ago

So you're saying it's slow in a Cordova or Intel XDK App? Those frameworks can't use the JavaScript JIT either.

naaanarax commented 8 years ago

My primary test is not XDK Cordova. I tested pure Web without XDK or Cordova. XDK or Cordova crossplatform converter I believed some more acceleration, but it was never for pure javascript.

naaanarax commented 8 years ago

I just set up demo site for you => admin/12345 userid/password Please try http://96.57.25.202:8082 from Safari (any Wifi mobile phone or tablet) => works great from Chrome => works terrible (0.1-0.3 fps , and frequently stuck browser) You know desktop works great for any browser (Wireless connection as same as my testing mobile phone)

phoboslab commented 8 years ago

I don't have an Android device available right now. Will have a look later today.

naaanarax commented 8 years ago

OK, I appreciate.

naaanarax commented 8 years ago

I tested iPad (iOS 8, and 9) and iPhone too, and the result was exactly same. Also my Mac (iOS 9.x) shows same result. I tested more than 10 different devices, but same result. Is it possible to use different Javascript compiling or Jitting for same Chrome but different device ? In other words, My Mac Mini iOS 9.2 Chrome with same wireless connection => Works Great My iPhone 6 iOS 9.2 Chrome with same wireless connection Browser => Works Terrible It is very strange to me becaue the result was same even I down resolution 160x120 30kbps.

phoboslab commented 8 years ago

Again, Chrome for iOS is extremely slow because it's not using the JavaScript JIT. There's nothing you can do about that. See this bug: https://code.google.com/p/chromium/issues/detail?id=423444

That said, I have no idea why your demo so slow on Android. Maybe it's just the "high" resolution and my old Device (original Galaxy Nexus). Can you try this static demo video and check if it's slow as well?: http://phoboslab.org/files/jsmpeg/

naaanarax commented 8 years ago

"http://phoboslab.org/files/jsmpeg/" works very smooth and no lag and no delay for my MAC, iPhone, Android Samsung. Also I tested resolution 160x120 and 480x320 too, and same issue. It seems totally not the bit rate or load balance issue.

naaanarax commented 8 years ago

Hello I need correction. I tested Android Chrome again, and confirmed works great. So Only problem is when Chrone on iOS specially iPhone and iPad (iOS 9,8,7 tsted) , not MAC. On the MAC (mac mini), it works perfect. I am sorry make you confused. I appreciate your direct support. Have great Christmas and Holidays. I will research more why.