Genymobile / scrcpy

Display and control your Android device
Apache License 2.0
110.44k stars 10.58k forks source link

Record at Native Resolution #4047

Open excal69 opened 1 year ago

excal69 commented 1 year ago

My android phone is 1080x2400 natively, but for some reason scrcpy when recording it records on 864x1920 resolution. How can i make it record a video on native resolution

rom1v commented 1 year ago

Probably because your device encoder could not encode at the native screen resolution. Look at the output in the console on start (and see --no-downsize-on-error).

excal69 commented 1 year ago

it's probably an encoder, my phone is redmi note 11, what encoder should i make it use instead? idk what it is using currently

rom1v commented 1 year ago

You can list your "encoders" with --list-encoders (see https://github.com/Genymobile/scrcpy/blob/master/doc/video.md#codec).

But if your hardware encoder could not encode above 1920, you will not be able to capture your screen at 1080x2400.

excal69 commented 1 year ago

thank you will try

excal69 commented 1 year ago

image

excal69 commented 1 year ago

Thank you very much! it is now recording on native resolution, the OMX.qcom.video.encoder.avc was bugging out

excal69 commented 1 year ago

is this something of concern? WARN: [FFmpeg] track 1: codec frame size is not set

excal69 commented 1 year ago

Also, is there a way to make recording performance as fast as possible? what if i do --no-display will that even do anything

rom1v commented 1 year ago

is this something of concern? WARN: [FFmpeg] track 1: codec frame size is not set

Nope, it is a known warning related to muxing opus without knowing the frame size in advance (but Android does not give it explicitly).

Also, is there a way to make recording performance as fast as possible?

Do you experience any performance issue? It should record every frame produced by the device. If it is not the case, then your hardware encoder is not efficient enough.

excal69 commented 1 year ago

Just wanted to limit FPS to 30 and somehow make frames very smooth. Without smoothing 30fps looks stuttery sometimes

excal69 commented 1 year ago

but my phone can record at 60fps without problem

rom1v commented 1 year ago

Just wanted to limit FPS to 30 and somehow make frames very smooth

https://github.com/Genymobile/scrcpy/blob/master/doc/video.md#frame-rate

Without smoothing 30fps looks stuttery sometimes

In the scrcpy window, or when you play the recorded file (or both)? Over USB or Wifi?

excal69 commented 1 year ago

When i play recorded file, USB

excal69 commented 1 year ago

Do i really have to record at 60fps for 30fps in video editing software to look smooth? Maybe it's possible while recording with scrcpy no?

excal69 commented 1 year ago

My issue is that, Vegas Pro 20 doesn't like Opus and OMX encoders, Is there a way to install more encoders on my android device, or does scrcpy have a ffmpeg integrated so i can re-encode my recordings?

rom1v commented 1 year ago

My issue is that, Vegas Pro 20 doesn't like Opus and OMX encoders, Is there a way to install more encoders on my android device

The video encoders use an hardware encoder. You can't change it (if it is not efficient enough), it depends on the device (typically high-end devices have better encoders).

does scrcpy have a ffmpeg integrated so i can re-encode my recordings?

You can reencode with ffmpeg on your computer what you recorded with scrcpy.