-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Which breaking changes should be made for Remotion v5? #3310
Comments
Been messing with remotion for a short time so far (loving it! thank you!) I may not have worked with it or react long enough, so take these ideas with a grain of salt.
|
It would be cool to have something like camera movement so that the entire composition can be zoomed in and out, moved, rotate, etc. So for example you have a scene with a graph and a map next to it - show the whole composition first then zoom in on the graph, zoom out, move the camera slightly and zoom in on the map. Or another example - you have a map covering the entire composition - you can move around / zoom in and out or just rotate the entire composition slightly to create a cool effect. I often see it on youtube. @JonnyBurger |
@dillingham Thanks for all the input!
I think
I like this because indeed this hook returns just the data from the parent sequence, not from the video. Not sure about the name
Those components have different props (like for example Series.Sequence has
We choose the names explicitly. TransitionSeries is for transitioning between scenes, it is not just a "Transition" (actually the Transition is a child of a TransitionSeries), so the rename would be confusing.
You can colocate the calculateMetadata() function next to your component! Right now we don't offer this to eliminate as much magic as possible, but I like making a file-system based composition register in the future as opt-in.
If you then end up deciding to add props or refs, you will ned to refactor it back to
For React developers, it's unintuitive if props get automatically added to a component. TypeScript would also not pick that up automatically, and you would have to give it a special type annotation for it to recognize that it has additional props, which takes more typing not much easier than just using the useCurrentFrame() hook. Also, it will make the component re-render on every frame, but not all components need the frame! It is wasteful to make it mandatory for every component
Discussed here: https://www.remotion.dev/docs/miscellaneous/automatic-duration Sorry to smash most of these feature requests. The time saved with "magic" often gets lost again because a special behavior was unintentionally introduced, which then leads to increased support from our side. For syntactic sugar that is not contrary to these priciples, I am always open though! |
In the Remotion Studio, you can already zoom and pan the canvas. Or do you mean to add these effects into the video? |
What I mean is to be able to add animations such as in this video - https://www.youtube.com/watch?v=8pbz2H7UTwQ from around 1:12 - rotation, zooming of the entire canvas. I'll check out if this can be done with transformations, as suggested. Finally - I think one ground breaking feature would be to be able to render locally. I know youve been looking into that and currently it cant be done using Web workers - although there have been some updates to support native languages recently. Wouldnt it be possible to render locally using something like html2canvas and then stitching the images together ? (https://www.npmjs.com/package/html2canvas) ? I'm using this library to create thumbnails of the composition and it works fine. @JonnyBurger |
@reactone You can make these animations for sure using transforms! |
That makes sense - I didnt realise that html2canvas has its limitations. Im quite surprised there is no robust way of converting an html element to an image. I was thinking about coding my own, but then it would take ages probably as every css property would have to be mapped. Anyway, one feature Im looking for is also to be able to animate (move) elements along a path. There is now a css motion path module ( https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_motion_path) . Whats the best way to achieve this in remotion - is there a package that helps with that or it would have to be custom coded? I know there is remotion/paths but it doesnt seem to be related to animations. Maybe worth to include in v5 @JonnyBurger |
@reactone The best way is indeed to use our paths package, this API specifically: https://www.remotion.dev/docs/paths/get-point-at-length Subtract the initial point to get the offset to apply to your element. |
Please add ability to fit Speed up / slow down if needed Its essential for creating dynamic screencasts from desktop capture |
@brianconnoly No breaking change for this is needed Plus |
It is a chance for us to fix bad API decisions (and fix flaws in our licensing + raise awareness of our license)
visualizeAudio()
should switch tooptimizeFor: "speed"
by defaultselectComposition()
andgetCompositions()
should requireinputProps
(footgun)getTangentLength()
andgetPointAtLength()
should return null if length is bigger than the path lengthuseVideoConfig()
touseSequence()
validateFontIsLoaded
by default totrue
for layout utilsbundle()
signature - return type maybe should not just be a string?openBrowser()
should just acceptlogLevel
instead ofdumpIo
<Series>
should be made a<Sequence>
itself--disable-headless
build
folder-> Doesn't make sense because templates start with erroriReadTheLicenseOnRemotionDevLicense
prop for the Playerfrom
andto
valuesoverwrite
option should be true -> Allows to skip the checktsconfig.json
default - "moduleResolution: 'bundler' " (From CodeHike)Use util.parseArgs instead of minimist -> Minimum version Node 18.3-> No because that breaks Bun supportnpm run dev
as defaultpauseWhenBuffering
totrue
by default<Experimental.Null>
and<Experimental.Clipper>
skipLambdaInvocation
the defaultgetRenderProgress()
andrenderMediaOnLambda()
from@remotion/lambda
The text was updated successfully, but these errors were encountered: