7 ms·
LosslessCut: The Swiss army knife of lossless video/audio editing
- IshKebab 2y agoHow does it work if you want to cut at a B frame?
- kmeisthax 2y agoPresumably it re-encodes a single GOP and inserts it into the video stream.
- adzm 2y agoYes this is the smart cut feature
- LeoPanthera 2y agoGenerally it does not work, and snaps to the nearest I-frame. There are ugly hacks to cut on P (and maybe B) frames, but they don't work as well.
- deleted 2y ago[deleted]
- pixelmonkey 2y agoLooks like an open source competitor to this absolutely magical app I used to use back in my Windows media PC days, way back when, which was called VideoReDo. (Unfortunately, VideoReDo was proprietary, produced by an indie developer, and that indie developer recently passed away.) For those who don't really get what "lossless" video editing is all about, consider that most video editing software always involves these stages: importing video/audio "clips", storing the video/audio timelines in some sort of "app native" format (e.g. Pitivi, Premiere, Final Cut), and then exporting the completed video in one or more output formats (e.g. MP4, MOV), re-encoding the entire thing from scratch. This means that if your only goal is to, say, cut 30-90 seconds out of a 1-hour video, you're still going to have to re-encode the entire 1-hour video. That also means if your re-encoding system isn't a match for however the original video was encoded, you'll make some changes you didn't intend via the re-encoding (e.g. video or audio quality changes). With this "lossless" style of editor, however, it'll figure out a way to "snip out" the 30-90 seconds (you can think about this being "at the byte level") without re-encoding the entire thing.
- teddyh 2y agoI also recall AviDemux being able to do lossless cuts.
- skelpmargyar 2y agoAvidemux is also great, but I've had some issues with running it under Wayland. LosslessCut works excellent on every platform I've tried with no issues. It also has a much better UI for cutting multiple segments, IMO.
- rob74 2y agoWell yeah, LosslessCut is an Electron app, so it's actually Chrome pretending to be a video editor, and Chrome is well tested on many platforms. And the main downside of an Electron app (memory usage) is less painful as in other cases (like the Slack "standalone" client that's supposed to be permanently running in the background ), so why not...
- deleted 2y ago[deleted]
- chriscjcj 2y agoAvidemux can indeed perform lossless cuts as long as you select "copy" as the video and audio output codecs. White it has a few odd UI characteristice, it's free, it's actively developed, and I like it a lot. Not throwing shade at LosslessCut; it's fine. But I do prefer Avidemux. https://www.avidemux.org/ https://www.avidemux.org/
- kmeisthax 2y agoFor those wondering how it works: compressed video streams can be arbitrarily interrupted in between frames by any compatible start point from another video frame. Decoding and reencoding is only necessary to change the contents of those frames or restructure the videostream to make it compatible. Most video formats are a stream of delta-encoded frames that must be decoded and displayed in-order. If you want to go back even a single frame, you have to restart decoding from the beginning, and if one frame is damaged, you lose picture. So encoders have to regularly restart the video stream by inserting keyframes. And it's valid to insert keyframes basically anywhere into a foreign video stream, at least for the same codec and resolution. Proper NLEs don't do this AFAIK - most of the cuts you do with them aren't approximatable with simple GOP[0] cutting tricks, and most people aren't editing video clips that are encoded to their final delivery format. Hell, at the professional level a lot of people record in ProRes, which is deliberately not delta-encoded[1], because delta encoding is actually really bad for nonlinear video editing. [0] Group of Pictures - a keyframe plus all the delta-encoded frames up to the next keyframe. [1] And has enormous size because of it
- jpnguyen 2y agoUsed this a bit. Great free tool. Not always precise on cuts depending on the available keyframing, and takes some trial and error iteration, but definite a quick way to not have to re-encode the whole file.
- WarOnPrivacy 2y agoI appreciate this review. Son #5 is always looking for video editing tools. I left a copy on the house drive for him to try.
- throw101010 2y agoYou should try the "Smart cuts" feature (which is labelled experimental). On common formats/containers (like videos from YouTube) it works really well. Basically it will attempt a precise cut and if it doesn't coincide with a keyframe it will reencode both ends on each side of the cut and the nearest keyframes. It is generally very small segments to reencode so it is pretty quick and the quality of these is nearly lossless too so the cut feels invisible. The only issue is if your segments are really short (under a second) it will generally fail... but chances are keyframe cuts in this case don't work well either.
- Scotrix 2y agoLooks great. what do you usually use to put some simple animations/text (not subs) into a recorded video?
- simple10 2y agoI'm a big fan of lossless cut and use it almost every day. Typical use case for me is to trim or edit screen recordings. Since it's lossless, the saving of the edited videos is almost instantaneous. It's basically just a GUI for ffmpeg. I then use Permute if I need to recompress, or Davinci Resolve if I need to add effects or lossy edits.
- radicality 2y agoHaven’t heard of Permute, but similarly I use LosslessCut and Davinci. Is it this one? https://software.charliemonroe.net/permute/ https://software.charliemonroe.net/permute/ What does it give you that something like Handbrake doesn’t (or even just directly calling ffmpeg)? Seems like a paid app. I don’t mind paying for software if it’s really better than other existing free options.
- nox101 2y agoI use handbreak all the time to re-encode to be smaller. A screen-capture video is usually like 1/10th the size after re-encoding so I can upload it to a bug report system. I also find that lots of tools artists are using generate multi-gig files that compress with the default settings in handbreak to 1/10th the size, and at least personally, I can't tell the difference at a glance. I sometimes think the size is being used as a proxy for "quality" so the artist and some of their patrons think larger file size = better
- kccqzy 2y agoI use Handbrake to encode piano practice sessions to be sent to the piano teacher. Since the teacher cares more about audio quality I configure Handbrake to use the original audio stream. I dial down the video quality from the default 24 or so to 28 for lower quality. Artifacts are somewhat visible but acceptable. The multi-gig files from the camera become small enough to be emailed directly. However while Handbrake supports this use case perfectly I don't think there's a way to re-encode the audio but keeping the video. I guess that's when this submission comes handy.
- 2y ago
- MitPitt 2y agoI wonder how it compares to Handbrake
- simple10 2y agoI used to use Handbrake but now only use LosslessCut. I find lossless to be easier to use if I just need quick trims or edits.
- LeoPanthera 2y agoIt does not compare, because they do not do the same thing. Handbrake is a video transcoder. LosslessCut cuts up videos specifically without transcoding.
- MitPitt 2y agoThey are both GUIs for ffmpeg, I think you're mistaken and they do a lot of similar things
- okamiueru 2y agoDoes handbrake supports slicing and moving around segments as well?
- LeoPanthera 2y agoIt has start and stop times, but that's all.
- okamiueru 2y agoI see. Thanks. So, not in reply to you, but the parent. It then seems entirely accurate to say they are not comparable. Ffmpeg as workhorse is common. But what handbrake and losslesscut are in terms of (mostly) UI, they solve different problems, of which there isn't much to compare.
- aargh_aargh 2y ago
- TacticalCoder 2y agoThat's an Electron wrapper on top off ffmpeg right?
- relwin 2y agoAlso useful for archiving large video files to DVD-R, just cut into 4Gbyte chunks and write to a few discs.
- nathancahill 2y agoI use and love Shutter Encoder, I wonder how it compares? https://www.shutterencoder.com https://www.shutterencoder.com
- CharlesW 2y agoIt claims to do a bunch of operations without conversion/re-encoding: https://www.shutterencoder.com/documentation/#Functions-Without-conversion https://www.shutterencoder.com/documentation/#Functions-With... I don't see anything like LosslessCut's "smart cut" feature, which re-encodes just the part between the cut point and next keyframe. Unfortunately, smart cut doesn't appear to work reliably. https://github.com/mifi/lossless-cut/issues/126 https://github.com/mifi/lossless-cut/issues/126
- dsp_person 2y agoI wish there was a way to crop lossless and with deleting the unused data (not just metadata/bitstream filter). I feel like it must be technically possible with some kind of partial re-encode.
- slimscsi 2y agoCodec standards are defined for decoder compatibility. So no matter what encoder produces a stream, a “standard” decoder can display it. But encoders are free to do whatever they want within those bounds. Each encoder may choose to make trade offs that are incompatible with each other. So stitching often requires using the same encoder. Getting everyone to agree on a common sequence header is just not going to happen. It would need to be built into the codec specification. And no modern codec has cross implementation stitching as a design goal. It would be possible to make an implementation that parsed an existing stream and created a stitchable output, but there is no financial incentive to create that encoder. EDIT. Some decoders can be reinitialized by adding parameters in band. But this is technically illegal in some formats (like mp4) but it may "just work" in some playback environments
- htthbjk 2y ago[dead]
- pjc50 2y agoIn general, this is only going to be possible if you crop a whole number of macroblocks. Worse, codecs do intra-prediction so you can't delete macroblocks which are used for other blocks you want to keep. https://courses.cs.washington.edu/courses/csep590a/07au/lectures/rahullarge.pdf https://courses.cs.washington.edu/courses/csep590a/07au/lect...
- capitainenemo 2y agoFWIW, below is a bash script I've used for generating ffmpeg cuts, based off of a pretty useful stackoverflow suggestion. Input to the script is a file consisting of start/end times in seconds, one set per line. If the video has no sound, it looks pretty much the same, just without the atrim/outa parts. C=0;echo -n "-filter_complex '"; while read f;do A=($f);echo -n "[0:v]trim=start=${A[0]}:end=${A[1]},setpts=PTS-STARTPTS[${C}v];[0:a]atrim=start=${A[0]}:end=${A[1]},asetpts=PTS-STARTPTS[${C}a];";C=$((C+1)); done <$1 for i in `seq 0 $((C-1))`;do echo -n "[${i}v][${i}a]";done echo -n "concat=n=$((C)):v=1:a=1[outv][outa]'" echo ' -map "[outv]" -map "[outa]"'
- mjevans 2y agoWhere's the -c copy or -c:v copy -c:a copy ?
- capitainenemo 2y agoBelated reply. You can't use copy with filter complex which does a decode, however, like the people in the stackoverflow thread I got the suggestion from, I was getting inconsistent audio/video clipping/syncing without a full decode. Personally I don't see a significant quality hit if you're careful with the encode
- manca 2y agoWhen I read lossless, I immediately thought about the editing of the real lossless formats like ProRes, MJPEG2000, HuffYUV, etc. But what this ultimately does it remuxes the original container in a new one without touching the elementary stream (no reencoding). It's no wonder that it uses FFMpeg to do the heavy-lifting, but I think it's worthwhile for the community to understand how this process ultimately works. In a nutshell, every single modern video format you know about - mp4, mov, avi, ts, etc - is ultimately the extension of the container that could contain multiple video and audio tracks. The tracks are called Elementary Streams (ES) and they are separately encoded using appropriate codecs such as H264/AVC, H265/HEVC, AAC, etc. Then during the process called "muxing" they are put together in a container and each sample/frame is timestamped, so the ESes can be in sync. Now, since the ES is encoded, you don't get frame-level accuracy when seeking for example, because the ES is compressed and the only fully decodable frame is an I-Frame. Then every subsequent frame (P, or B) is decoded based on the information from the IFrame. This sequence of IPPBPPB... is called GOP (Group of Pictures). The cool part is that you could glean the type of the frame, even though it's encoded by looking into NAL units (Network Abstraction Layer), which have specific headers that identify each frame type or picture slice. For example for H264 IFrame the frame-type byte is like 0x07, while the header is 0x000001. Putting all this together, you could look into the ES bitstream and detect GOP boundaries without decoding the stream. The challenge here is of course that you can't just cut in the middle of the GOP, but the solution for that is to either be ok with some <1sec accuracy, or just decode the entire GOP which is usually 30 frames and insert an IFrame (fully decoded frame can be turned into an IFrame) in the resulting output. That way all you do is literally super fast bit manipulation and copy from one container into another. That's why this is such an efficient process if all you care about is cutting the original video into segments.
- NKosmatos 2y agoReminds me of VirtualDub from the good old days :-)
- sbt567 2y agoI wonder if its possible to losslessly download & cut video from remote server. Currently i'm using a bash script with ffmpeg i've got from stackoverflow to download a small portion of video from the likes of YouTube. But currently, it has to re-encode the video on the fly while downloading. For now, I assume it's impossible to losslessly download & cut this kind of video because we don't have the information about the video locally (keyframes, etc). But I like to be proven wrong!
- htthbjk 2y ago[dead]
- brokenmachine 2y agoI've used this before with yt-dlp to extract some video (313 is only the 4k video stream but I assume it would work with videos that have audio streams as well): ffmpeg -ss 5:40 -i $(yt-dlp -f 313 -g https://www.youtube.com/watch?v=3SykjY3GdMs) -acodec copy -vcodec copy -t 20 waterdrop_mountainlake.mkv
- ChrisMarshallNY 2y agoThis looks really well-done! Not sure that I have a use for it, myself (although I could have used it back in my wageslave days). I know exactly how difficult this type of thing is, so hats off to making it easy. Best of luck with it!
- hannasm 2y agoGiven the OS'iness I'm sure the information is available but would anyone be interested in linking the code containing the interesting ffmpeg args or does the project have documentation bridging the gap between ffmpeg and lossless cutting technique?
- hoistbypetard 2y agoI just found this last week, and it was tremendously useful. I had filmed an entire dive competition with a small poolside camera, and wanted to cut it up into clips of individual dives. LosslessCut let me play it back as fast as I wanted (a little over 300% speed was the fastest I could use to listen for the gaps between divers), tap 'B' every time the scores were announced for a dive, then click export after I'd done that for all the dives. It took me less than an hour to split a 3 hour competition into nicely labeled clips I could share with each diver and their coach.
- feverzsj 2y agoNot as stable as avidemux, though avidemux is already quite buggy.
- nanna 2y agoAnyone have tips for removing audio noise from a VHS transfer? Linux and ideally Foss?
- cf100clunk 2y agoFor those who capture cable or antenna broadcast TV programs or use HDMI capture devices like the Hauppauge HD-PVR, MythTV has had frame-exact editing of TS recordings for many years.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- heartag 2y agoI just found out about this app recently and love it. Hard to believe I ever fired up a full blender instance and video project to cut clips, much less regularly.
- dang 2y agoRelated: LosslessCut: lossless video/audio editing - https://news.ycombinator.com/item?id=33969490 https://news.ycombinator.com/item?id=33969490 - Dec 2022 (153 comments) Lossless-cut: The swiss army knife of lossless video/audio editing - https://news.ycombinator.com/item?id=24883030 https://news.ycombinator.com/item?id=24883030 - Oct 2020 (10 comments) LosslessCut – Save space by quickly and losslessly trimming video files - https://news.ycombinator.com/item?id=22026412 https://news.ycombinator.com/item?id=22026412 - Jan 2020 (1 comment) Show HN: LosslessCut – Cross-platform GUI tool for fast, lossless video cutting - https://news.ycombinator.com/item?id=12885585 https://news.ycombinator.com/item?id=12885585 - Nov 2016 (33 comments)
- jsheard 2y agoTo preempt the complaints about this being a 100MB+ Electron app, AVIDemux is a native app which does much the same thing if that works better for you.
- slimscsi 2y agoGPL-2.0 license in GitHub. MIT license on snap store. $19 in Mac OS APP store.
- frizlab 2y agoCan be downloaded for free for all platforms too.