Show HN: Video editor app that generates FFmpeg commands

newbeelearn.com

130 points by pdyc 4 days ago

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

pdyc 3 days ago

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.

nadermx 3 days ago

This is marvelous. Any thoughts on open sourcing it?

  • pdyc 3 days ago

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

    • j45 3 days ago

      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.

    • hmcq6 2 days ago

      Am I tripping or is this Ember?

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

    • santa_boy 2 days ago

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

stuaxo 3 days ago

Wonderful. Finally an ffpeg wrapped I can get behind.

I wonder what a gstreamer equivalent would be like.

factormeta 3 days ago

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

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

  • pdyc 3 days ago

    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 3 days ago

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 3 days ago

    glad you liked it

alexliu518 3 days ago

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

  • pdyc 3 days ago

    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 3 days ago

Have wanted this exact thing in the past!

jslpc 3 days ago

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 3 days ago

    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.

    • numpad0 a day ago

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

    • wonger_ 2 days ago

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

      • jazzyjackson 2 days ago

        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_ 2 days ago

          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.

    • j45 3 days ago

      Is it one continuous file at the moment?

      • drewp 3 days ago

        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 3 days ago

      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 3 days ago

        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 2 days ago

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

  • pdyc 3 days ago

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

prvt 3 days ago

based

yodon 3 days ago

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.