Framerate fixes#350
Conversation
Removed unnecessary lines of code
|
Thanks for working on this, will take a look at the PR and the limitations/issues tomorrow. |
|
Hi, it has been almost a year since I worked on this and I was wondering if this was ever looked into. I saw there were a few release candidates through the year and I understand that the focus is elsewhere but I feel like something as "basic" as this should be looked into, because people will import media and expect it to play properly, and lacking this, in my opinion, makes workflows with assets of different origins very difficult. (some media being 30fps, other being 24.99fps, etc.) |
|
Yeah, sorry about that. I never did anything with this PR as there seems to be more issues lurking, and there might be other ways to solve this.
No changes has been made to videobox. I can try to look into this after RC3 (note that I forget easily, always too much stuff happening). A list of everything that's broken related to video is needed before anything is done, as things might be connected (usually is). |
|
I'm really sorry for the delays (I forget stuff very easily and have a major backlog on emails/notifications). I will look at this issue after work today. Do we need to do any changes to the sound handler? |
|
hi, it's been a long while but from what i remember the sound adjusted properly to scene framerate, the problem was only present in videos and image sequences, as outlined in my post |
|
Thanks for the info. Again sorry for the delays, always something in the way (and I forget). I aim to release soon and this issue is a blocker (I have dedicated Saturday to fix any blocker issues left before release). |
|
Sorry again for the delay, I made a new commit based on this PR: 7bb1e7d
The biggest issue is of course breaking every project file before this. Any video will be wrong, so what to do? should we have a special case where we warn if the project is "old" and includes a video ? Now users will need to keep an old version of Friction to read old project? or: Introduce a "backward compatibility" setting that disable Maybe add a new tag in the project format, "legacyVideo"? Any old project or any new project with "legacyVideo" will not run Late night ramlings 😄 @pgilfernandez what do you think ? |
|
Umm, I would bet for max compatibility, I love open source because your projects are always safe (most of...). So in this case, couldn't we open the old project with the new Friction, warn that the project will be updated and saving it with a new filename is recommended in order to not loose the old one? That way users could work with the old projects in the "new" format... and what if they want to go back? Maybe that's not necessary as the new Friction versions can run perfectly in the same hardware... that is, they can easily update their Friction version and they are ready to go 😅 |
|
What I think we do:
This way old projects will work (existing VideoBoxes have the "legacy" framerate) and adding new VideoBoxes will have the new framerate, when we save the project both old and new VideoBoxes works as the user expect, should in theory work and be transparent for the user(?) |
|
Sweet! |
Fixes #322, adds a signal during videobox initialization to adjust video framerate from scene framerate. Gets applied on asset import (drag and drop/ import menu) and on project load so we might want to bump up the project version, since along changing the video framerate to match the scene framerate it also adjusts the video length, which might be a breaking change (then again we were handling it incorrectly before so I don't think it should be allowed if possible, you let me know).
Problems // Limitations
The first and third problems seem easy enough to fix but the second one is kind of major and might need some general tweaking of the way the editor handles scenes and assets, so I'm not entirely sure how to approach it. Maybe it's not a big enough problem to look into it because we realistically don't know how much people would be working on scenes with different framerates in the same project but I still think it's important.
I'd appreciate any help to get this to a better state... (For some reason I'm unable to debug the project, that's why changes on my end take a while).
Here's some example videos I made (on friction) to better test the framerate changes, they sync on this branch but do not on the original.
30fpsanim.mp4
60fpsanim.mp4
600fpsanim.mp4