Giter Site home page Giter Site logo

Comments (18)

KyleKun avatar KyleKun commented on August 25, 2024 4

Sorry guys for it not being exactly before 2024, but I tested the PR thoroughly and am making some changes, so probably tomorrow I'll be releasing the apk here (thanks a lot @phileastv !). Just keep on recording vertical videos and you will be able to add them through the calendar after Playstore update is available. Happy 2024!!

from one_second_diary.

phileastv avatar phileastv commented on August 25, 2024 2

Hi !

Thanks a lot for your message.

I think were going somewhere with this ! Having the option to create Vertical profies, separated from horizontal ones is a perfect idea to keep things organised.

I started cloning the project and tried to create the vertical profiles page, but I had a bit of trouble figuring out how to organize it so that it would persist in the application's memory. Unfortunately I think this is a bit beyond my development skills, (although it probably shouldn't be that complicated!).

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024 2

Hey @Hkllopp , thanks!
I gave it some more thought and agree it's better to store both versions of the videos by default after all. Will very likely implement this until the end of the year, as it's been requested by many people.

from one_second_diary.

phileastv avatar phileastv commented on August 25, 2024 2

Hi @KyleKun !

Have you had the time to work on this issue ? Because I really want to enter my 2023 vertical snippets for 2024, I gave a second shot at trying to develop this feature by myself and made some progress.

For the moment, I added the option to create "Vertical Profiles" in the "Profiles" pages. When you create a profile, there is a toggle to enable "Vertical Mode" on this profile. If you do so, the folder will save as yourprofilename_vertical on the storage. Every profile retrieved with this name will have the an isVertical value applied to it.

I am now trying to put this logic on the snippet page and save the snippets as 1080x1920 files when you have a Vertical Profile selected.

Would you be interrested in me making a pull request with thoses changes ? I'm not a professional developer so my code must not be perfect, but if it can save you time implementing this feature that would be great !

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024 2

Hi @KyleKun !

Have you had the time to work on this issue ? Because I really want to enter my 2023 vertical snippets for 2024, I gave a second shot at trying to develop this feature by myself and made some progress.

For the moment, I added the option to create "Vertical Profiles" in the "Profiles" pages. When you create a profile, there is a toggle to enable "Vertical Mode" on this profile. If you do so, the folder will save as yourprofilename_vertical on the storage. Every profile retrieved with this name will have the an isVertical value applied to it.

I am now trying to put this logic on the snippet page and save the snippets as 1080x1920 files when you have a Vertical Profile selected.

Would you be interrested in me making a pull request with thoses changes ? I'm not a professional developer so my code must not be perfect, but if it can save you time implementing this feature that would be great !

Hey, that's nice to hear! You can open the PR and I'll expand on it this weekend, or at least use it as a reference. And no worries, the feature will be ready before 2024 :)

from one_second_diary.

phileastv avatar phileastv commented on August 25, 2024 2

Great ! I just added my pull request here. Maybe I will have the time to work more on it next week #113

from one_second_diary.

Hkllopp avatar Hkllopp commented on August 25, 2024 1

Hey !
I also come from 1SE app and found this amazing project that i want to use and support !
Unfortunately, I also take all of my snippets vertically so I won't be able to use this app until this feature is included.
I also won't be able to help coding it because I don't know android at all but I had an implementation idea in order to avoid the "vertical configuration checkbox".

Isn't it possible to store every video in horizontal format (exactly the same as now), but when you're creating your daily snippet, you can choose to rotate the horizontal snippet to make it vertical (or the other way around) ? It would be stored exactly the same as a "native" horizontal one.
Unfortunately, it adds two more (light) functions : being able to render the date and subtitles vertically when rotating a vertical (maybe ask the user beforehand) and then being able to rotate the full movie during the rendering.
I know this is not an optimal way of implementing it, but it seems to be a nice (and light) workaround. It also let the user take both vertical and horizontal snippets (even if I think nobody does that).
What do you think ?

from one_second_diary.

Hkllopp avatar Hkllopp commented on August 25, 2024 1

So cool, thanks !

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024

Hey, thanks for your kind words 😊

It surely is possible, but there are some drawbacks and I wonder if it's really worth the implementation effort because of the following reasons:

  1. No backward compatibility. All the videos recorded/uploaded in portrait are transformed into landscape videos at the moment you save them. That means we don't have a way to restore the original video unless there is some cropping/zooming processing to create a vertical video out of the horizontal one, but I wonder what the quality will look like.

  2. The reason videos are processed at the moment they are saved is to make exporting super fast: is uses ffmpeg concat filter, which requires all videos to have the same parameters (orientation, codec, streams, etc). Since all videos are already processed before the moment of exporting, the Create Movie functionality simply generates a txt file declaring all the selected videos and executes the concatenation command. Not processing vertical videos beforehand means we wouldn't be able to keep this approach, making the movie creation significantly slower. I am against this because the app is intended for long-term: compiling 1000 videos should be done in 2-3min maximum imo, so that's what I strived for with this implementation decision.

So, in order to keep both the "all orientation" export fast and make a new "vertical only" export, we would need to save both the vertical and horizontal version of the video, and add a checkbox Vertical only in the export screen, so we know we should use only the vertical videos. But is it really worth the extra storage usage since it would only benefit mobile visualization? (After all, it would essentially look the same watching on PC).

Maybe there's a better way to handle this that I am not seeing. What are your thoughts on it?

from one_second_diary.

phileastv avatar phileastv commented on August 25, 2024

Hey @KyleKun 👋

Thanks for your quick and detailed answer about this issue.

I understand now better how the app works. I agree that your approach is the best in the long term use.

It is sure that having the option to create a movie with both vertical and horizontal snippets would require a larger architecture. And I'm not even talking of the lost of quality in a final movie containing both 16:9 and 9:16 snippets in one movie (black bars, lost in quality because of the zooming ...).

But in the end, most of people will only record in vertical, or horizontal. Not both.

So I think having the option to configure the app so it creates vertical snippets & movies only would already be a huge game changer.

Here's how that could work :

1 - When first launching the app, the user would have a "Vertical Mode" checkbook. When ticked, the app would prevent the user that if they let this checkbook on, they could only import and export vertical videos.

2 - When saving snippets, if the "Vertical Mode" is activated, create 9:16 files.

3 - Before executing the concat command, add a verification that all the snippets are in the same format. Just in case.

4 - In the setting, there would be a greyed out "Vertical Mode" checkbox, which let the user know that this format is active. When clicking it, we could add a Alert Dialog which explains that it is not possible to create both vertical and horizontal movies, and suggesting the user to reset the app if they want to change it.

In the future, we could even add the option to switch from vertical mode to horizontal by re-encoding all 9:16 files into 16:9 ones.

I think that would be a good start and would benefit a lot of users who capture all their snippets in this format.

Because I've already been interested in development on fluttter, I'll try to see if I can free up some time in the next few weeks to propose a pull request, if you agree of course.

What would you think of this ? I look forward to hearing your feedback on this principle or if you have better ideas.

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024

Hey @phileastv, thanks for the suggestions! It gave me some insights in how to approach it better.

1 - I think this won't be needed in app first launch, just a checkbox in the settings should suffice.
2 - Agreed.
3 - Won't be needed in this approach I thought.
4 - Agreed.

Basically, I think we can create an "admin profile" called something like default_portrait in the same routines we create the app folders, so this will be taken care automatically.

The Portrait Mode checkbox in the settings, if enabled, will store the videos inside that dedicated folder. We can do the check for orientation on the save function, preventing landscape uploads and informing that if wanted, it should be done outside Portrait Mode (using default folder for storing the videos). This way we ensure only portrait videos in this mode, and keep the default method (mixed orientation) working as it is now. Movie creation will still be fast since we know all videos are in portrait.

The implementation effort will be:

  • Create the specific editing for portrait videos (all the ffmpeg stuff, like position of date and locale that will change, no resizing is needed, etc);
  • Also allow Profiles inside the Portrait Mode (separated from the Profiles we have now);
  • Perform the extra checks before saving to ensure it's a portrait video;
  • Adapt the movie creation routine to use that folder if Portrait Mode is enabled.

What do you think of it?

Because I've already been interested in development on fluttter, I'll try to see if I can free up some time in the next few weeks to propose a pull request, if you agree of course.

And for sure, it'll be a pleasure to review and help out, feel free to do so 😊

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024

Hi !

Thanks a lot for your message.

I think were going somewhere with this ! Having the option to create Vertical profies, separated from horizontal ones is a perfect idea to keep things organised.

I started cloning the project and tried to create the vertical profiles page, but I had a bit of trouble figuring out how to organize it so that it would persist in the application's memory. Unfortunately I think this is a bit beyond my development skills, (although it probably shouldn't be that complicated!).

Tbh the code is not that much organized so don't worry, even I get lost sometimes 😅
The video is saved "automatically" when we execute the ffmpeg command passing the storage path, you can start understanding by taking a look here.

from one_second_diary.

EmileRolley avatar EmileRolley commented on August 25, 2024

Hi, where are you with this feature @phileastv? I just discovered the project (thanks @KyleKun <3) and I'm really looking into having a way to compile the videos into a vertical mode!

from one_second_diary.

phileastv avatar phileastv commented on August 25, 2024

Hey @EmileRolley,

I've been trying to make progress on this, but it requires creating a separate type of profile only for vertical snippets, and it's a bit beyond my very limited dev skills. So I put it aside as I don't have much time to devote to it.

from one_second_diary.

Hkllopp avatar Hkllopp commented on August 25, 2024

Hey !
It's really cool that contributors are coming to work on the project right now. It gets bigger and bigger !
Do you think you'll be able to implement this feature for the end of the year ? Not wanting to pressure you in any way, I just would like to know if there are any updates on this :)

from one_second_diary.

KyleKun avatar KyleKun commented on August 25, 2024

Hey !
It's really cool that contributors are coming to work on the project right now. It gets bigger and bigger !
Do you think you'll be able to implement this feature for the end of the year ? Not wanting to pressure you in any way, I just would like to know if there are any updates on this :)

Hey, yeah, I'm working on some other projects this month but this feature is my top 1 priority for December.

from one_second_diary.

Hkllopp avatar Hkllopp commented on August 25, 2024

Don't worry :)
Happy new year 🥳

from one_second_diary.

Alarty avatar Alarty commented on August 25, 2024

Hi guys,
I really love this app and was stunned to see that it is open-source.
I'm glad to see this feature is prioritized and tackled.
I'm not a good programmer, but I could be a beta tester if you need !

from one_second_diary.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.