Remix.run Logo
Lazycut: A simple terminal video trimmer using FFmpeg(github.com)
104 points by masterpos 8 hours ago | 27 comments
sorenjan 3 hours ago | parent | next [-]

I don't find trimming videos with ffmpeg particularly difficult, is just-ss xx -to xx -c copy basically. Sure, you need to get those time stamps using a media player, but you probably already have one so that isn't really an issue.

What I've found to be trickier is dividing a video into multiple clips, where one clip can start at the end of another, but not necessarily.

ramon156 3 hours ago | parent | next [-]

I don't find Sharing files with people very difficult, just login to your FTP and give an account to another user. - Person commenting on OneDrive

sorenjan 3 hours ago | parent [-]

Missed opportunity to reference the famous Dropbox hn comment.

I just think there are other closely related use cases where a separate program can add more value, especially in the terminal. I wouldn't suggest most people should use ffmpeg instead of a gui, those are too dissimilar. Another example is cutting out a part of a video, with ffmpeg you need to make two temporary videos and then concatenate them, that process would greatly benefit from a better ux.

tptacek 2 hours ago | parent | next [-]

Point of order: the Dropbox HN comment is famously misconstrued. People think it was about Dropbox; it was about the Dropbox YC application, and was both well-intentioned and constructive.

gyan an hour ago | parent | prev [-]

> with ffmpeg you need to make two temporary videos and then concatenate them

It can be done in a single command, no temp files needed.

bolangi 29 minutes ago | parent | prev | next [-]

FWIW, here's a simple command line utility for joining and trimming the multiple video files produced by a video camera.

https://metacpan.org/dist/App-fftrim/view/script/fftrim

hiccuphippo 2 hours ago | parent | prev [-]

I used a plugin in mpv to do it but I can't find it anymore. You just pressed a key to mark the start and end. And with . and , you could do it at keyframe resolution not just seconds.

kawsper an hour ago | parent | prev | next [-]

I asked about this tool 3 days ago, HN is a magical place! https://news.ycombinator.com/item?id=47363432

tptacek 4 hours ago | parent | prev | next [-]

This is very cool. I built one of these myself around Christmas; Claude Code can put one together in just a couple prompts (this is also how I worked out how to have Claude test TUIs with tmux). What was striking about my finished product --- which is much less slick than this --- was how much of the heavy lifting was just working out which arguments to pass to ffmpeg.

It's surprisingly handy to have something like this hanging around; I just use mine to fix up screen caps.

Commenting mostly because when I did this I thought I was doing something very silly, and I'm glad I'm not completely crazy.

booi 28 minutes ago | parent [-]

You can use AI to figure out the arguments to ffmpeg. But indeed it seems like there's just a single call to FFmpeg CLI to power the whole thing which is amazing.

  ffmpegCmd := exec.Command("ffmpeg",
    "-ss", fmt.Sprintf("%.3f", position.Seconds()),
    "-i", p.path,
    "-vf", strings.Join(filters, ","),
    "-vframes", "1",
    "-f", "image2pipe",
    "-vcodec", "bmp",
    "-loglevel", "error",
    "-",
  )
chris_va an hour ago | parent | prev | next [-]

Invoking ffmpeg, gzip and tar commands is a sort of reverse Turing test for LLMs

ariym 6 hours ago | parent | prev | next [-]

I think this is the first instance I've seen of an actual terminal video player. Very fun to play with.

mikkupikku 4 hours ago | parent [-]

mplayer, mpv and I think VLC can do it, with the right output driver settings (libcaca or a few other choices.)

tptacek 4 hours ago | parent | next [-]

You can just use ffmpeg to extract frames, and then just render the raw images with unicode blocks.

(There's Kitty Graphics too, but I couldn't figure out how to make terminal UI layout work with it.)

chadrs 4 hours ago | parent | prev [-]

yeah I remember learning this trick in like 2007 with libaa and later caca for color.

It looks like this app is shelling out to ffmpeg to get the bitmap of a frame and then shelling to something called chafa to covert to nice terminal-friendly video.

https://github.com/hpjansson/chafa/

mhuffman 3 hours ago | parent | prev | next [-]

I have been using this one[0] and it is small, fast, and seems to work pretty great for me so far.

[0]https://github.com/wong-justin/vic

wonger_ 8 minutes ago | parent [-]

Happy to hear! Some of my thoughts when building it:

- I haven't implemented audio support yet, but it would be nice

- I like --dry-run

- I didn't use a TUI widget library, but now it's at the point where it's tedious to refactor the UI / make it prettier

- I like OP's timeline widget

- Wanted to focus on static binaries. I got chafa static linking working for Linux, but haven't bundled ffmpeg yet

- which reminds me of licenses -- chafa and ffmpeg are LGPL iirc

- a couple other notes from early on: https://wonger.dev/posts/chafa-ffmpeg-progress

noiv an hour ago | parent | prev | next [-]

On MacOs I just press space and trim with finder. Even avoids re-compressing.

Acrobatic_Road an hour ago | parent | prev | next [-]

Could have really used this a couple days ago. I had to record a video an assignment, but due to lack of global hotkeys on OBS with wayland, I had to start and stop the video on the OBS GUI. I tried to figure out ffmpeg but I was too tired and it was getting close to the deadline so I spent some time learning how to to do it with kdenlive.

bfrjjrhfbf 3 hours ago | parent | prev | next [-]

Having to separately download ffmpeg in the windows distribution does not really make sense

Just bundle it

sorenjan 3 hours ago | parent | next [-]

I disagree, I don't want another ffmpeg binary, I already have one. Winget works well, especially since this is already a terminal program.

ftchd 2 hours ago | parent | prev | next [-]

People that use GUIs/tools for things like ffmpeg, rclone etc really want the developer to autodetect if they have it already, and use that instead of installing a separate version/binary.

How do I know? I built one (https://github.com/rclone-ui/rclone-ui)

karlosvomacka 3 hours ago | parent | prev [-]

afaik winget can automatically manage package dependencies.

faangguyindia 5 hours ago | parent | prev | next [-]

I've been using ffmpeg with claude as video editor for long time.

hsuduebc2 3 hours ago | parent [-]

You mean you let create claude command or it itself runs ffmpeg on your local machine and returns you finished cut?

mandeepj 5 hours ago | parent | prev [-]

I guess I can find another implementation to combine trimmed parts after taking out certain scenes?

hiccuphippo 4 hours ago | parent [-]

Write a text file with all the parts like this:

    file 'file1.mp4'
    file 'file2.mp4'
    file 'file3.mp4'
Then call ffmpeg like this:

    ffmpeg -f concat -i files.txt -c copy output.mp4
And I guess you could make an LLM write a {G,T}UI for this if you really want.