So, as far as i can tell, on an HD dock, the device is outputting a native 1080p signal.
But the highest *resolvable* res is the native 540p of the device.
Is there any way to hack the framebuffer to be 1080p (possibly using a tablet version of ADW or other such launchers?), strictly during HDMI mirroring?
End goal: running 1080p ubuntu while docked + HD netflix and HD photo viewing.
My TV reports a 1920x1080 input resolution but for anything mirrored, it is just 960x540 being upconverted by the phone. Apps like picture and camera video players and youtube appear to be higher res since they can display the media only on the HDMI connected screen and on the phone black space will show.
If someone can figure out a way to get the phone to disable mirroring the displays and instead only use the HDMI connected display then you may be able to get it to output something in native 1080p without upconversion.
I don't know if this answers your question but i find turning my phone sideways puts the phone in full screen. youtube sucks though it looks like its all pixely
Since I got CC mirroring feature on my Nexus 7 2013 LTE running stock 4.4.3 the quality seems very good.
Compared to another Miracast device, I suspect the CC mirroring is *better* resolution.
Does anyone know the actual CC resolution specs of the signal to be displayed?
Or, is there some test I can do with my monitor and figure out for myself?
I've actually been wondering this myself...
Chromecast itself outputs 480p, 720p and 1080p (not sure about 1080i) - that's what the TV receives, because it's an HDMI video device, as opposed to a computer HDMI output.
So whatever resolution file or stream is being displayed needs to get up- or down-scaled to one of the supported resolutions.
The core question, what resolution is the image, before scaling, that is to be sent to Chromecast?
To test this, we need a video file that will show scaling. A frame full of alternative black and white horizontal lines is usually enough. So, to test if it's putting out 1080p, you make a 1920x1080 file with alternating black and white horizontal lines (540 white, 540 black) then display it on Chromecast to a 1080p TV.
Replace 1080p with 720p if you only have a 720p TV. If you have a TV that is not native 480p, 720p or 1080p you can't really do this test unless the TV supports a 1:1 mode that bypasses scaling.
If the image displays as a solid single shade of gray (or if you have sharp eyes, alternating single pixel black and white lines) then there's no scaling and Chromecast is receiving a 1080p resolution signal.
If you see "bands" of gray or fat lines, there is scaling going on, and Chromecast is not receiving a 1080p signal.
I'll try to do a test...
Managed to do a quick test... Basic screen mirroring seems to happen at screen resolution (makes sense).
One thing I'd like to test but couldn't is playback of a video file using the native Video Player app (which displays a screen cast icon during casted playback). I suspect it just sends the video data directly to Chromecast in this (special) case.
Most of the models that support Mirroring already use at least 720 resolution for their screens so it may not need to do any upconverting at all.
Asphyx said:
Most of the models that support Mirroring already use at least 720 resolution for their screens so it may not need to do any upconverting at all.
Click to expand...
Click to collapse
All depends... I don't think (or at least haven't noticed) Chromecast changes resolution once it "decides" so even if the device is sending 720p, if Chromecast it at 1080p, something somewhere needs to upscale.
Okay, did a follow-up test with a Handbrake-converted (native Video Player can't handle TS) version of the Alternating black/white 1 pixel full field 1920x1080 from www.w6rz.net.
I also used Overscan lines at 0, 2.5 and 5.0 percent with 0 to 16 pixel cropping bars 1920x1080 to verify what was happening in different modes since the native Video Player doesn't explain (damn icon-based reality, this is why I don't like toolbars!).
On the TV...
Avia:
Shows proper single-pixel lines on Chromecast
This serves as the control image for full 1080p as Avia just sends the native video over without scaling.
MX Player:
100% shows proper single-pixel lines on Chromecast, and on my phone single-pixel lines using SW decoder, and banded gray on my phone using HW and HW+ decoder (which is odd - points to an anomaly/defect in the decoder, perhaps)
Fit to Screen shows even, fat lines
Stretch shows banded fat lines
Crop shows banded fat lines
Video Player:
Two corners (Fit?) shows even, fat lines (same image as Fit to Screen in MX Player)
Letterbox shows even, fat lines (same image as Fit to Screen in MX Player)
Four corners (Stretch?) and Full (Crop?) show banded fat lines
If the native Video Player did, as I had hoped, output the full native resolution to Chromecast, I should have seen proper single-pixel lines, looking gray from a distance, but alternating black/white up close.
Sadly, Video Player does not seem to do this, sending the device's native resolution, or some derivative. This makes me wonder why Video Player blanks out the screen during screen casting - casting other content works fine with video going to the screen and Chromecast. It might be to ensure the best framerate or something, but seems odd to me.
I don't know what magic they implemented, but my HTC One can be mirrored without any noticeable loss of picture quality. Compare that to the casting of the screen of a powerful i7 PC that lags heavily every time I used it (little bit better with Canary).
Either some frames are dropped to keep up, or the bitrates are lower but whatever they did I like it.
jasenko said:
I don't know what magic they implemented, but my HTC One can be mirrored without any noticeable loss of picture quality. Compare that to the casting of the screen of a powerful i7 PC that lags heavily every time I used it (little bit better with Canary).
Either some frames are dropped to keep up, or the bitrates are lower but whatever they did I like it.
Click to expand...
Click to collapse
Especially head-to-head against Miracast (Samsung AllShare Cast Wireless hub), I prefer the Chromecast implementation - no noticeable picture break-up and framerate feels more consistent.
Some of the articles say Google wrote their own framework for it. Given that it also seems to work quite nicely on my Galaxy S3 which is a lot less horsepower than the Galaxy S4, I'm very impressed. Even for streaming Internet video (Xfinity TV Go) it's working very well. My only problem is my phone overheats on long streaming sessions (over an hour) and the battery stops charging, heh. Not bad considering the S3 isn't officially supported to begin with.
@bhiga
I would think the scaling happens in the loaded APP and not the CCast itself which would explain what you are seeing...
The TV doesn't really change it's res based on what the CCast is being sent the App loaded does the upscaling and thats why it looks as bad as it does,
Kind of like taking a 640X320 video and displaying if full screen on an HD TV!
So it's not a hardware thing just a software thing and doubles pixels as needed.
Asphyx said:
@bhiga
I would think the scaling happens in the loaded APP and not the CCast itself which would explain what you are seeing...
The TV doesn't really change it's res based on what the CCast is being sent the App loaded does the upscaling and thats why it looks as bad as it does,
Kind of like taking a 640X320 video and displaying if full screen on an HD TV!
So it's not a hardware thing just a software thing and doubles pixels as needed.
Click to expand...
Click to collapse
Yes, the Chromecast->TV resolution stays fixed AFAIK.
I'm not sure whether Chromecast reports its negotiated resolution back to the the framework or app using it, which is why I think it just happens in the Chromecast hardware - after all, you can send Chromecast random-sized "raw" video in a supported compression and it'll still scale up/down as necessary. Doesn't really matter where/how it happens, though.
The question here was whether Chromecast screen casting took the image at the device's screen resolution, or if it somehow created a "virtual" screen at whatever resolution Chromecast is sending to the TV and rendered directly to that as well.
I didn't expect it to do so for non-video stuff, and it doesn't. It's essentially just sending the screen buffer to Chromecast as well as to the device's screen.
The native Samsung Video Player*, however, does not show the video on the device while screen casting (so it's not sending the screen's buffer) - it only shows it on Chromecast, which made me hope that perhaps it was sending the full-resolution video, rather than the scaled version for the device's screen. Unfortunately that does not seem to be the case.
So the core story seems to be
Screen cast quality is dependent on the device' screen resolution.
Higher screen resolution = higher quality screen casted image, up to 1080p.
Lower screen resolution = lower quality screen casted image. If your device's screen resolution is less than the resolution Chromecast is outputting to your TV (1080p or 720p), your screen casted Chromecast output will be degraded.
The native Samsung Video Player does not show the video on the device screen while screen casting, but that does not seem to change the image resolution. In other words, on a device with a 720p screen, playing a 1080p video while screen casting yields a 1080p original -> 720p scaled down for screen -> 1080p scaled up for TV, rather than 1080p original -> 1080p for TV
* Note that this is based on AT&T Samsung Galaxy S3, so the "native Video Player" is the Samsung Video app from TouchWiz. Behavior may be different in other ROMs that use a different video player. I just found it curious that the native Samsung Video did not show the video image during playback. Other video apps like MX Player screen cast fine while showing the video on both Chromecast and the device's screen.
VLC shows video controls while casting the video, very convenient.
Great discussion and research. Thanks.
----------
I ran a test with Adobe Reader and FBReader to view a .pdf file via CC mirroring on my HDMI monitor. I reduced the font size until they were unreadable on the Nexus 7 (2013) LTE, but they were still very clear on the HDMI monitor. Generally, I still did not find a solution to read side-by-side pdf documents on my HDMI monitor. LOL
During this test I noticed text display done with a *2* pass screen draw on the HDMI monitor. Makes me think Google CC mirroring implemented some sort of 2 pass resolution: e.g. pseudo algorithm might go:
Pass 1) draw reduced resolution, if static image go to pass 2 else dynamic image (movie) loop to next frame.
Pass 2) draw fill to enhance resolution of static image.
----------
Another test might be comparing same image displayed two ways.
(1) First screen cast via CC compared to
(2) second using an application that's capable of *true* CC
(where *true* - CC fetches its own image and displays full resolution. I'm also assuming full resolution is 1080?)
Hi all. I am looking to draw over videos on my Tab S7 while giving feedback on exercise videos and recording the screen with loom or similar. I have been able to do it with the draw on screen app and the built in screen recorder but I cannot use the touch screen to pause/play the video at the same time.
I want to be able to draw over the screen/video using the S-pen while still being able to scroll and touch as normal with my finger. (just as you would in Samsung notes)
Surely this is possible or am I missing something as cannot seem to find a way.
Even better would be a way to use the tab S7 to draw over my windows PC screen as the videos are mainly on there.
I hope someone can shed some light on this. Thanks.
Hopefully there's a simple answer to this, and hopefully this is a place to find it!
I'd like to be able to switch between the front, back, and a USB-C connected camera for input to streaming apps (notably Facebook Live, and Zoom conferencing, but would like a more general solution). Ideally, video mixing (e.g., picture-in-picture), would be nice.. The primary application is to stream live interviews, site walkarounds, etc., from a gopro or the camera in a pair of AR goggles. E.g., live stream the view from the head-mounted camera, with an inset view of me, from the phone's front camera.
Right now:
- I can almost do it all from a Microsoft Surface - the basic camera app allows selection from front, back, external USB camera. Control of camera selection is through the system settings dialog.
- On a Samsung Galaxy Note 20, I can't seem to find the equivalent of a system-level setting. The basic camera app allows for picture-in-picture still & video from the front/back cameras - but doesn't seem to have a way to select an external camera. Facebook live allows switching front/back, doesn't seem to do picture-in-picture.
Documentation for all this stuff seems hard to find. I've been pouring through the various android developer sites, and device related sites - lots of stuff on low level code interfaces, nothing on what's actually coming across the cables, and mostly out-of-date youtube videos on how to do very specific things with very specific external video switches, and various downloadable apps that don't seem to work very well.
Which leads to the following questions:
- Are there any deeply buried settings - in Android, Samsung Developer Tools, or Facebook, Zoom, Teams - that let one select a usb camera? (Bonus for allowing picture-in-picture.)
- Any recommendations for an Android video switch/mix application that inserts itself between the system video interface, and standard apps?
Hopefully, amongst all the noise, there's a simple solution.
Thanks very much for any assistance anybody can offer.
What is a better way to cast/mirror the Android phone screen to a wear os watch?
Use Case : I want to use my watch as a view finder for taking pictures with my phone's rear camera. And since I am using a Vivo (non-samsung phone) with galaxy watch 5 the camera controller app doesn't work.
I have tried app called Camera One but the quality is sub-par mostly because it doesn't do any post processing magic like the stock camera.
Also, I tried an app called Screen stream which can mirror phone screen over HTTP and can be accessed via browser on watch. The issue with this method is, the output is very laggy (might be due to crappy browser and/or insufficient cpu power) and requires WiFi.
Please let me know of any other ways for my use case.