\

Show HN: Video editor app that generates FFmpeg commands

147 points - 11/21/2024


Hello Friends, I have built a new video editor app that generates ffmpeg commands to get the edited video. This gives you flexibility to use it in scripts etc. for your video editing workflows and makes editing tasks smooth by letting you visually adjust video elements that are difficult to adjust in commandline.

Demo is here

- https://www.youtube.com/watch?v=KSvazNBEfTc

Link is here

- https://newbeelearn.com/tools/videoeditor/

Features are

- video, image, text editing

- adjustable timeline and layers

- adjust position, size , alignment, font size color, borders etc.

- quick info of image, video files

- preview player to get the idea of edited video with play, pause, seek.

Limitations are

- Audio files(mp3) are currently not supported though audio inside mp4 will work

- player is not frame accurate it just gives u close enough approximation.

- file paths are not supported due to browser's security limitations.

- I have only tested happy path so there would be many bugs but it should work for simple tasks

Others

- Completely free

- No registration/login etc.

- Works online does not requires any installation

- Works offline after first load

- Works locally does not requires server

Background is i generally have one off video tasks and i don't mind using ffmpeg for it but recently i had to create a bunch of product videos and it was difficult to get text etc. right on commandline, i tried kdenlive and openshot as well but couldn't figure out how to something simple like adding a logo and text to it(i guess i am dumb) so i created this new app to suit my workflow

Source
  • pdyc

    11/22/2024

    Added support for audio as well both for adding audio files and playback of audio within video in preview. Now the app size is whooping 350KB.

    • stuaxo

      11/22/2024

      Wonderful. Finally an ffpeg wrapped I can get behind.

      I wonder what a gstreamer equivalent would be like.

    • nadermx

      11/22/2024

      This is marvelous. Any thoughts on open sourcing it?

        • pdyc

          11/22/2024

          no thoughts but seems like a headache cleaning up code and maintaining it. i will think about it this weekend.

            • j45

              11/22/2024

              It’s a neat project, something I might use if it was something I could host myself.. I think some ppl would help clean it up.

              • santa_boy

                11/23/2024

                this is clean ... would love to integrate into my side project if you open source this

                • hmcq6

                  11/23/2024

                  Am I tripping or is this Ember?

                  would love to see the code either way, seems like an awesome NLE

          • factormeta

            11/22/2024

            Wow!! This is like the pgadmin4 of postgres!!!

            It is much much needed to make ffmepg on par with a video editor!

              • pdyc

                11/22/2024

                pgadmin is GOAT, i hope this tool lives upto expectation, i have some time today will probably add some more features like export setting and audio support to it.

            • Narciss

              11/21/2024

              I really love this. I find ffmpeg to be a bit of a pain to work with, but it's so very powerful. This tool might help me craft some cool flows in my app.

                • pdyc

                  11/22/2024

                  glad you liked it

              • alexliu518

                11/22/2024

                Very good application, but it seems that the video cannot be played after uploading

                  • pdyc

                    11/22/2024

                    you mean in preview player or after encoding using ffmpeg video is unplayable? Can you give some more details about your browser, browser version, os, os version and pc/mobile, file, if its publically available that i can replicate. Any other info to debug would be helpful as well. Last but not the least i hope you have pressed play button and waited for some time like 2-3 seconds.

                • tehwebguy

                  11/22/2024

                  Have wanted this exact thing in the past!

                  • jslpc

                    11/22/2024

                    This is neat.

                    While only tangentially related, I dove into a rabbit hole not long ago trying to find the best ffmpeg GUI (that doesn't require Wine or a VM to run on macOS) and found some good stuff. Handbrake [1] is great and uses ffmpeg as part of its backend, but it gets somewhat limited when you start requiring more advanced things like vf chains, scripting/automation, obscure/legacy codec support, or specific hardware acceleration needs. I wanted to find something that gets (close to) as densely packed with features as ffmpeg from the command line, and here's what I found. I'm not going to list all their features and pros/cons, but just let others know about some of these as a starting point.

                    I'm not affiliated with any of these programs (Handbrake and ffmpeg included) in any way, I just want to point others in the right direction if they come across this comment.

                    StaxRip [2] - One of the most popular and complete options. Seems like one of the the go-tos on the VideoHelp [3] forums for video editing GUIs. Supports AviSynth+ and VapourSynth scripts among other advanced features.

                    clever FFmpeg-GUI [4] - Another VideoHelp go-to. I'm not 100% sure if this supports AviSynth/VapourSynth, but it's pretty damn feature-complete as far as ffmpeg goes.

                    Shutter Encoder [5] - Probably has the most intuitive UI of the bunch, it feels much closer to a Premiere Pro/Davinci Resolve type program rather than an ffmpeg wrapper, albeit those applications are much more robust for different tasks.

                    Hybrid [6] - My favorite out of these, purely because it was easy enough to get running on macOS and didn't sacrifice many ffmpeg features. Also supports AviSynth/VapourSynth.

                    Honestly, probably didn't even need to comment this; I wish I had more knowledge about these to share in-depth. If you're serious about video encoding, your best bet is to start learning how to use ffmpeg from the command line anyways, then maybe add AviSynth+/VapourSynth into the mix as you see fit, though those are a good deal more advanced than even ffmpeg. Just my two cents.

                    [1] https://handbrake.fr/

                    [2] https://github.com/staxrip/staxrip

                    [3] https://www.videohelp.com/software/sections/video-encoders-h...

                    [4] https://www.videohelp.com/software/clever-FFmpeg-GUI

                    [5] https://www.shutterencoder.com/

                    [6] https://www.videohelp.com/software/Hybrid

                      • drewp

                        11/22/2024

                        Can you recommend a tool for dicing up 2h digitizations of VHS tapes? I want to play the 2h video, seek around easily, mark 'chapters' and give them filenames, then do a no-transcode rough cut extraction of each chapter into its own video.

                          • wonger_

                            11/23/2024

                            I've been working on a video editor for this use case: https://github.com/wong-justin/vic

                              • jazzyjackson

                                11/23/2024

                                Interesting approach, i like the aesthetic. When you say 'add audio' is a big task , does this mean the videos after cutting up don't have audio, or just that the preview doesn't have audio? the latter wouldn't be a problem for the use case of slicing up home videos. I have the same task as parent, might have to make a weekend project out of it.

                                  • wonger_

                                    11/23/2024

                                    Thanks :) The preview doesn't play audio. But the sliced output has audio.

                                    The UX should be a lot smoother once I get around to non-blocking inputs and the audio player. For now, futzing around with mpv or a fully-featured video editor might be the way to go.

                            • numpad0

                              11/24/2024

                              Sounds like a task "easily" done with one massive painful line of `gst-launch-1.0 filesrc ... ! ... ! splitmuxsink`

                              • j45

                                11/22/2024

                                Is it one continuous file at the moment?

                                  • drewp

                                    11/22/2024

                                    Yeah, I play a VHS tape and capture the whole thing. Maybe I should be using a scene detector to split files on camera cuts, which would be roughly correct for home movies (but not for TV shows).

                                • pdyc

                                  11/22/2024

                                  u can do it with this command, it will just copy audio and video

                                  ffmpeg -i input.mp4 -ss 00:00:00 -to 0:30:00 -c:v copy -c:a copy chapter1.mkv

                                  u can just copy paste it 10 times in your text editor, than adjust ss, to times using any video player that can play vhs file.

                                    • drewp

                                      11/22/2024

                                      That's where I am now. I'd like to optimize out the retyping and duplication of time strings.

                                      I want the player ui (I'm using mpv) to have a command that:

                                      1. Remembers the last end time to use as this chapter's start time

                                      2. Gets the current time to use as chapter-end.

                                      3. Accepts the name (e.g. 'chapter1').

                                      4. Runs the ffmpeg copy command.

                                      Perhaps mpv+lua can already handle this. I see commands for setting a loop range and for calling a subprocess. Not sure how I'd input the chapter name. Maybe I'll have an LLM name the chapters for me :)

                            • blooalien

                              11/23/2024

                              I've had great luck with HandbrakeCLI for scripted encoding tasks.

                              • pdyc

                                11/22/2024

                                i needed this before starting the project but than i might not have started it at all :-)

                                  • 11/22/2024

                            • prvt

                              11/22/2024

                              based

                              • yodon

                                11/22/2024

                                Professional video UIs pretty much all use dark mode, so light mode UI reads as "non-professional" or "toy" in this space.

                                I suspect flipping the UI from light to dark will significantly increase adoption.