ammen99 / wf-recorder

MIT License
887 stars 62 forks source link

Screen rotation #3

Closed hedgepigdaniel closed 2 years ago

hedgepigdaniel commented 5 years ago

When recording from a screen which is configured with rotation, the screen recording is not rotated.

ammen99 commented 5 years ago

I think I should just add support for adding arbitrary parameters for ffmpeg, and then the user can rotate as they wish to (for ex. if I rotate my output, I want it to stay rotated in the video)

hedgepigdaniel commented 5 years ago

That seems like a good start.

I think rotation could/should be done automatically, given that the compositor obviously knows what transforms are applied to the outputs (so there shouldn't be a need for the user to work it out).

AndreasBackx commented 5 years ago

It also recorded the wrong part of the screen when passing the geometry via slurp. For my 90 degrees rotated screen when I wanted to record something on the bottom left, it recorded something on the top left instead.

fuzunspm commented 4 years ago

i'm on dual monitor and different rotation. wf-recorder records 90 degree right monitor as it's 0 degree but on video output it's not right

Soundtoxin commented 4 years ago

Recording an area selected with slurp on a portrait monitor records the entire wrong part of the screen. It takes the dimensions of the rectangle, but I ended up with the opposite side of the screen being recorded, missing literally everything I was trying to record. I suspect this is related to the rotation being ignored in the recording.

hedgepigdaniel commented 4 years ago

In case anyone works on this - be aware that the direction of rotation changed recently in wlroots to match the wayland spec: https://github.com/swaywm/wlroots/pull/2023

truesilver92 commented 3 years ago

I am able to reproduce this issue

purxiz commented 3 years ago

I've been looking into fixing this (i.e. having the screen rotate automatically), but it seems that xdg_output doesn't have support for the wl_output::transform type. Before I go down the rabbit hole of adding a new dependency and working out how to do everything, I was wondering if this was a solution you were even intersted in @ammen99 . If not, let me know and I won't persue, but if so I'll have PR in the next few weeks.

I have 3 monitors in differing orientations, so although I think passing custom flags to FFmpeg is valuable, it doesn't really help when I just want to bind a hotkey to recording and be able to slurp any screen without worry.

rj1 commented 2 years ago

I am also reproducing this issue

ammen99 commented 2 years ago

I've been looking into fixing this (i.e. having the screen rotate automatically), but it seems that xdg_output doesn't have support for the wl_output::transform type. Before I go down the rabbit hole of adding a new dependency and working out how to do everything, I was wondering if this was a solution you were even intersted in @ammen99 . If not, let me know and I won't persue, but if so I'll have PR in the next few weeks.

I have 3 monitors in differing orientations, so although I think passing custom flags to FFmpeg is valuable, it doesn't really help when I just want to bind a hotkey to recording and be able to slurp any screen without worry.

You could look into wl_output which has a transform I think. However, I can foresee problems when using the filters option together with an autorotate option, so I think it would be best if you could write a small program which just prints out the rotation of an output, then have a script which computes the appropriate options for wf-recorder.

EDIT: also I don't consider this too much of an issue because you can always rotate the video afterwards.

ammen99 commented 2 years ago

Also looking at some of the earlier comments, seems like the geometry selected with slurp is wrong, if that issue remains with latest wlroots/wf-recorder combos, feel free to open an additional issue, that IS a real problem.

voronind-com commented 2 months ago

Still an issue. Grim does that automatically somehow, can we do the same?