-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quality #2367
Comments
Yes, it can. In practice, it's not often useful, since it does not forward sound though :)
What is the quality if you just record (without streaming)?
If the resulting quality is good, then the streaming quality is the culprit (try to adjust the settings of your streaming software). |
Thanks for this response, very helpful. I did some further tests, I played a Youtube video and that seemed absolutely fine, so I went back to the live app. I tried the other player they have which I don't usually use, let it buffer, and it actually seemed to be fine too. I wasn't streaming anything live this time, so I'll have to test it again when sports are on, but it might be that the key is the player on the phone. One thing I did notice however, is that the recorded playback file is smoother than how it appears when I'm using it in real time. Sorry, I'm not good at explaining it, but in the recorded file there's a smoothness to the action, whereas in the playback, it's slightly jittery. Think of it like an FPS drop, it kind of looks like that. It's very slight, but I do notice it. The recorded file is OK, but when it's being streamed in real time, it isn't Also, I actually had no idea scrcpy could record, that's fantastic! |
You mean when opening scrcpy only (without streaming)? Is it over USB?
Is there any FPS drop? Enable FPS logging by pressing Alt+i in the scrcpy window, it will print framerate every second in the terminal. Are there lines with |
Sorry, I'm a bit unsure what you mean by without streaming? You mean streaming the video?
There are a few, yeah. It seems pretty consistent though.
I tried to take a video to show this but I don't think the screen recording on my laptop is good enough to really show what I mean. |
Sorry, I confused things with other posts (I thought you were streaming the device capture with OBS or something).
If it's not only when a frame is skipped as printed in the logs (I think it is not), then here is the explanation. On the device side, scrcpy captures the frames with their timestamp (the date at which they are captured). In practice, we can assume that the delay between the capture on the device and the display on screen is sufficiently stable for the jitter to be barely noticeable (especially over USB). But there is still a small jitter: the encoding/decoding time may vary depending on frame complexity, the transfer varies depending on encoded frame size (in bytes), etc. But to compensate the jitter (and respect the delay between frames), it would require to delay frames so that they all match the largest (estimated) possible delay, which would make the latency unacceptable. However, when recording, the scrcpy client takes care of writing the timestamps captured on the device (transmitted by the server), so when played with your video player (like VLC), the delay between frames is correct. |
I'm still surprised that it is noticeable. Since there are frames skipped, I suspect that there is another additional cause. Could you test running scrcpy for the same device on Linux? |
Thanks for the detailed response. I think I see what you are saying, it's interesting.
Unfortunately I can't as I don't have a Linux device. |
Any computer is a Linux device You could run a LiveCD/LiveUSB (Ubuntu for example) on your computer. |
Perhaps one day, unfortunately it's not something I want to mess with right now |
OK, so it's currently not an InterestingInterest for you |
Please check #2464. |
Wow, thanks. Will this be available in scrcpy v1.19? |
Yes. But you can try it now by building the |
I added a binary at the end of the post on #2464. I'd appreciate feedbacks if you could test :) |
Hey there, thanks for this! I did a quick test just now, it's not conclusive but I tried |
OK, so that was probably not the cause in your case (which is also suggested by the "skipped frames" you get). You could try with a bigger buffering delay, but I think it will not fix the problem for you:
|
Yeah, thanks a bunch for the help, but unfortunately it still hasn't fixed it. It's just as if it's running in a lower frame rate, it's still watchable, but since some sports are fast paced, it can be noticeable. Regardless this is still an awesome piece of software |
On the recorded file ( Does it happen with another device? Another computer? If in the future you decide to try Linux, please let me know if it's better 😉 Did you try with |
Hey there, sorry to bother you with this. I was just wondering, is scrcpy suited to watching video playback from a mobile device or is it not really for that?
I tried to play a stream through a Live Sports app on my phone, so I can view it on my laptop screen using scrcpy.
The stream is set to HD, though my device resolution is 720x1280. When watching back, it's not as smooth as it should be, but worse than that, the quality is a bit poor. It doesn't really look 720p to me.
I've got a screenshot to help show this.
https://i.postimg.cc/g07DLr9f/720.png
I have tried increasing the bitrate using
scrcpy -b20M
and tried changing the renderer to openGL. Could the issue just be on my end, or is my use case not what scrcpy is for?Thanks!
Environment
The text was updated successfully, but these errors were encountered: