jslpc 6 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

3
drewp 5 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.

wonger_ 5 days ago

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

jazzyjackson 5 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_ 5 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.

numpad0 4 days ago

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

j45 5 days ago

Is it one continuous file at the moment?

drewp 5 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 5 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 5 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 :)

pdyc 5 days ago

u r on right track with llm, just tell it that you will give input file and set of start, end times and that it should generate the command for u. As a bonus ask it to give u the example as well so that it doesn't misunderstands! i think even chatgpt mini should be able to do it.

drewp 5 days ago

I found some existing mpv scripts:

https://github.com/oltodosel/mpv-scripts/blob/master/show_ch... display chapter names as OSD

https://gitlab.com/lvml/mpv-plugin-excerpt press 'i' and 'o' for in/out points, then 'x' to make a new (auto-named) file.

https://github.com/shinchiro/mpv-createchapter press 'shift-c' to mark chapters; export as xml file.

https://github.com/mar04/chapters_for_mpv mark chapter times, input titles, save as txt file

By having an LLM name the chapters, I meant having whisper do speechrec on the chapter and then asking an LM to summarize the content into a name up to k chars.

blooalien 5 days ago

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

pdyc 6 days ago

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