Really glad to see 'new life' around VRD - more many years, and still, TVSuite has been my preferred video editor
Unfortunately, where I get stuck are files with subtitles (saw a few posts saying VRD can handle them if in an mp4 container, but I've not found a way to make that work), and have started using LossLessCut - it too is a nice program, but I've not had much luck with it's 'Smart cut' feature (black video at both ends of the file, and subtitles are out of sync). But for keyframe cuts it works quite well!
Has anyone here been able to properly edit files (mine are mostly mkv AVC or hevc) with subtitles using VRD?
+ Reply to Thread
Results 181 to 207 of 207
-
-
Subtitles is a problematic area with VRD, but it was originally designed for editing broadcast TV recordings, where there were either no subtitles or subtitles were hard burnt.
The surviving developer of VRD is in the process of creating a VRD inspired video editor, so you may want to head over to the reddit forum to post your feature requests there (he frequents that forum, but not here): https://www.reddit.com/r/Streamfab/ -
Thanks Marayong (thought I responded but don't see the post)!
The link you sent was to a Streabfab thread (video downloader) - did you mean this one (found by searching)?
https://www.reddit.com/r/videoredo/comments/1kisksl/thinking_about_bringing_videoredo_back/Last edited by bigfan5; 1st Jun 2025 at 18:21. Reason: Spelling
-
Yes, that's the one. My bad ... I had the streamfab one open for something else and copied that link by mistake.
Dan203, the author of that thread, was one of the developers for VRD. He was an employee not the owner so the product he is working on will do a lot of what VRD does and will be heavily inspired by VRD, but it won't be VRD 7.0, not unless he can obtain the licence rights to the VRD code, which he is trying to do. -
Been fairly quiet of late, glad to see more postings in here.
I have just finished putting a Video file together to upload to my Youtube channel, some may be interested in this as it involves VRD and LosslessCut.
https://youtu.be/9LeNoiGeYUs
I wanted to see how VRD and LosslessCut deal with Joining or Merging 2 videos files recorded at the same time using my Samsung S23 Phone, the recording mode was set to 4k/60p hevc (61.0Mbps)
File 1 recorded the video in 4k hevc @ 59.940fps.
File 2 recorded the video in 4k @ 60.0fps.
I don't know why it recorded at different frame rates because the 2 videos were recorded within 2 minutes of each other, so after i did my basic cuts using LosslessCut i decided to join both files using VRD and LosslessCut just to see how both Apps dealt with these 4k hevc files with the 2 different fps rates.
LosslessCut Merged both files perfectly at 60.0fps, took about 30 seconds.
VRD was not happy to Join the 2 files without Recoding them to either 59.960fps or to 60.0fps, but after i did complete the Recode the joined file was 60.0fps.
I don't know why this happens, i know and understand the difference between 59.940fps and 60.0fps, but why does Lossless Merge them with no Recode yet VRD will not. -
No idea for sure ... I don't do much joining ... but it could be that VRD is years since the last update whilst lossless is regularly updated, so any issues which would have been flagged have a chance of having being fixed.
Also, keep in mind that VRD was designed as software to edit recordings of FTA broadcast TV. Over the years additional features have been stuck on, sometimes in an ad hoc manner and of course users have found things to use VRD for other than editing recorded FTA tv. However, whenever you use VRD for anything other than it's primary function, you are in the ad hoc 'stick the feature on somehow' region, so VRD's performance will vary. -
I don't believe this issue is due to VRD being designed for TV Broadcast, and not for any other kind of editing as per the way i use VRD to cut and join camera files, this may well be normal common practice for VRD to do this regardless of where the files came from.
I think that this may well be a case where the developer of LosslessCut has created a way of doing this, a feature that is unique to LosslessCut, in which case it gives a good indication of just how clever the developer might be.
I just wonder if LosslessCut was able to do this because i used LosslessCut to cut the start and end off each file and exported both to the original formats before i tried to join them, and VRD just couldn't deal with them without Recoding.
I would be keen to try joining the same 2 files using another App that has smart rendering to see how it will handle joining the 2 files.
Maybe i should try to cut the 2 files with VRD (a painfully slow process with these 4k/60p hevc files) and then try to join them using VRD and LosslessCut to see if i get the same result.
Unfortunately i have already deleted the 2 single uncut camera files and i cannot recover them because my Files drive in my laptop is Encrypted, so any deleted files are not recoverable.
I might go out and record 2 more single videos and see if i can get one to record at 59.940fps and the other at 60.0pfs so i can test them again. -
The forum just ate my reply re VRD & progressive obsolescence with non-core functions etc .. and I couldn't be bothered typing it all up again.
> I just wonder if LosslessCut was able to do this because i used LosslessCut to cut the start and end
> off each file and exported both to the original formats before i tried to join them, and VRD just couldn't
> deal with them without Recoding.
I will rewrite what I wrote about this .. more or less since I'm going from memory.
If you'd previously edited the files with LC, it goes without saying that opening them up again in LC and joining them that LC would do it seamlessly. If you had edited the original videos using VRD instead of LC I suspect you would have had the opposite result: VRD would join the files w/o needing to recode whilst LC would have to recode them. Using any software to trim bits off a video and then saving the trimmed video will result in a video that is optimised for subsequent editing by that specific video editing software. -
I disagree with this analogy, but that is another story for another day, as i have a very different opinion about editing files with one tool and using a different tool to try to do the same, but after playing around with these files a bit more, i am now certain that VRD is doing something unusual, or LosslessCut is capable of joining 59.940 and 60.0 files together because it is able to manipulate the 59.940 file to blend with the 60.0 files, this is proven when i cut the joined file back into the 2 original parts and both come back as 59.960 and 60.0 whereas VRD cuts both parts as being 60.0fps.
As of now, i am not able to record 2 more files with my phone at those 2 frame rates, just does them at 60.0fps, so i did some more testing as follows, and the results are really crazy.
1. I grabbed the original full length joined video that was initially 2 segments (59.940 and 60.0) and was joined by LosslessCut showing as 60.0fps in MediaInfo.
2. I cut the 2 parts from the file (5 frames either side of the join) using LosslessCut and part 1 shows up again as 59.940fps, and part 2 shows up as 60.0fps in MediaInfo, which i guess should be right given that LosslessCut did NOT recode the original joined file.
3. I then replicated the exact same 2 cuts using VRD (it was a slow process to seek to the join point in the timeline) and after the 2 exports part 1 came out as 60.0fps and part 2 was also 60.0fps, so i don't know what is going on, if the 2 files were not initially recoded with LosslessCut then why is MediaInfo reading segment 1 and 2 as 60.0fps with the VRD cuts ??? it doesn't make sense.
4. Ok so i set aside the part 1 file (59.940fps) and the part 2 file (60.0fps) into a different folder, but this time i used VRD to cut 5 frames from the start and end of each of those files, and smart rendered each file, and part 1 still came out as 59.940 and part 2 still came out as 60.0, which is logical because they are just being smart rendered.
5. I imported both files back into the VRD joiner list and tried to join them using smart rendering, but the file recoded completely, and came out as 60.0fps.
6. this is where things get really wierd, I decided to take the original Joined file that was cut and joined using LosslessCut and which showed up in MediaInfo as 60.0fps, this time i cut 5 frames from both sides of the join in the timeline and then exported the file back to a single file, and VRD smart rendered it in about 30 seconds and the file came out as 60.0fps.
Why will VRD take a joined file that has 2 distinct frame rates, allow me to cut a few frames at the join mark, and smart render it without recoding, yet it will not join 2 separate files, each one with a slightly different framerate, without recoding it, just doesn't make sense.Last edited by Bridgy; 2nd Jun 2025 at 04:56.
-
IIRC, most phones record with VFR (variable framerate) so of course those 2 will appear different (probably an average reported since you only show the one number) with the VFR rates based on perhaps motion and/or lighting etc etc. Lots of things do not handle VFR properly, and IIRC that may include VRD.
mediainfo over the raw input files should show either CFR (constant framerate, eg TV broadcasts and recordings by most things except mobile phones) or VFR (variable framerate).
Cheers -
Great analogy, i totally forgot about phones recording in Variable frame rate, and now that i read your post, i think this same thing was raised either here, or maybe in the other Thread dedicated to VRD Alternatives.
VRD is definitely reading both files as having slightly different framerates, hence why it will recode the file when joining these files, and as far as i know all software will recode any file if it has 2 or more parts at different framerates, but for some odd reason LosslessCut has managed to find a way to join 59.940fps and 60.0fps files without recoding, so is this a good thing or not, because on my laptop the LosslessCut merged file plays back perfectly.
I am not suggesting that LosslessCut should join multiple 4k files with a combination of say 30fps and 60fps, but i did this test just now with the following results.
Recorded 2x 20 second 4k files, 30fps and 60fps.
Source File 1 - 30.0fps @ 41.0Mbps
Source File 2 - 60.0fps @ 61.0Mbps
Files 1 & 2 Merged with LosslessCut = No Recode done = MediaInfo shows 45.073fps @ 51.0Mbps = 250MB
The 40 Second file took approx 10 seconds to export on my Laptop.
Files 1 & 2 Joined with VRD = Full Recode done = MediaInfo shows 30.0fps @ 33.0Mbps = 162MB
The 40 Second file took 240 seconds (4 minutes) to export on my Laptop.
If i was stumped before, i am totally baffled after this, both joined files play perfectly.
However, it is now time to finally get my new Dell 24 core All in One desktop.Last edited by Bridgy; 2nd Jun 2025 at 09:40.
-
Umm, not as far as I know. It is non-trivial. VFR means every frame may have a different interval between it and the prior frame, hence reporting one framerate can be misleading ... to turn into CFR (eg for joining) then typically the choices are
(a) duplicate/drop frames to achieve close enough to a specified "constant" framerate (jerkiness may result)
(b) interpolate new frames between longer frame intervals and use those whilst dropping frames with shorter intervals, fuzziness and/or jerkiness may result
(c) treat frames as if they have a constant specified time interval and try your luck to see how jerky the video is and/or how much out of sync audio becomes depending on whether the variations in frame intervals are significant enough
(d) leave it as VFR provided the software handles VFR correctly in all cases (including QSF in VRD's case)
Similarly, even for 2 CFR videos converting one framerate to another requires similar options for at least one of the videos or even both if both are changing from one CFR to another CFR framerate ... choose your poison
None of that is trivial nor "automatic" and choices usually have to be specified to the software including the desired CFR output framerate ... provided the software can actually handle one or more of those choices.
I currently don't believe VRD handled any VFR options, and vaguely recall questions and answers about that on the now-defunct VRD forums.
I do recall seeing a bunch of tests on Samsung phone videos and the VFR frame intervals were reasonably different in the beginning frames and less so after that with the rest, albeit with variations - ymmv depending on the phone and lighting/movement conditions etc etc.
I do not know what the other software does, perhaps it may not do what you think it does, it may even leave it as VFR with an average framerate reported so best run mediainfo over it and look for VFR/CFR or a variation of that (a full mediainfo, not the abbreviated output).
CheersLast edited by hydra3333; 3rd Jun 2025 at 00:28.
-
So why or how can LosslessCut join 2 or more different files with different frame rates (30fps and 60fps) but VRD and probably others wants to recode them.
Taking those 30fps and 60fps files last night and joining them with LosslessCut read in MediaInfo as being 45.007fps which is about half way between 30 and 60, and this is why i am a bit stumped.
The same 2 files were recoded by VRD at 30fps, why not 60 ?
I really wish that phones would record in constant. -
With the very greatest of respect, if one or both files are VFR (eg from a phone) then the notion of "different framerates" is inapplicable to the file(s) ... being VFR, there is no fixed framerate. If they're CFR then the notion of a fixed framerate does apply.
I have no knowledge of what those programs are doing or say they are doing; if indeed VFR files then it seems possible the average or median overall framerate of a file could be used as a notional CFR framerate for internal processing (in which case one could reasonably expect some audio drift back and forth depending on the nature of the individual VFR variations). So, I do not knowI wonder what the documentation says, also viewed in conjunction with the "full" mediainfo info output from each of the input files and the output file. You may well be correct ... but I used to be in software and whatnot and know from long experience (read: "Rapid Unscheduled Disassemblies" when some programs were run) that programmers and people make various unguessable and sometimes polar opposite assumptions
Could you please consider posting the full mediainfo output for each input file and the output file ? I'm interested only because of some code I wrote a few years ago to parse mediainfo outputs for such things and use them in constructing various ffmpeg commandlines to convert and join various videos and photos (turned into videos) into a large video ... I have seen mediainfo can report multiple various types of framerates from a single input file depending on what a VFR file contains. If all is CFR then this discussion is moot.
Depends entirely on the input files and what internal assumptions VRD is making (or not making if it's treating VFR as CFR and using an average) and what it's code is capable of in terms of conversion options. Remember the aforementioned various (non-exhaustive) list of approaches for converting VFR to CFR.
So do I !
And a lot more than once
I wonder if joining 2 VFR files into a larger VFR file is all that hard. It could even be what is happening
I'm sure I am going to regret mentioning this ... also please be aware that if files are from various phone/camera sources or even recorded with different settings on the same device then the files may have different underpinning characteristics including WxH, aspect ratio, bit depth, colour space, etc, which all make joining them "problematic". Cheers.Last edited by hydra3333; 3rd Jun 2025 at 18:08.
-
I've only tried to join files a few times and with mixed success. Even files recorded on the same day using the same device can be reluctant to join. If you can get files to join without major recoding, you are probably bucking the odds. You could try comparing VRD and LC with ffmpeg for joining files.
The stuff I record on my pc is all CFR, whether I use the hdmi capture card or the tv-tuner dongle. My phone does VFR, as is pretty standard with phones, but the few times I've joined those videos I've just recoded them. The capture card will record as either VFR or CFR, but I've always opted for the later. The dongle only records as CFR.
I'll echo hydra's comments about VFR videos. When software gives a framerate for a VFR video it is, at best, an *average* figure and the actual frame rate will vary wildly throughout the video.
Clearly LC has some proficiency at handling VFR videos, whilst VRD is much less capable ... and since VRD was originally designed for editing FTA tv recordings, which are typically CFR, that's no surprise.
A quick search online finds several sites stating that joining videos with slightly different VFRs is hit & miss and the success depends on both the hardware & software - one site I found even talked about 60 vs 59.94, the same as you were having trouble with. Another post on stackoverflow was about creating a VFR video by joining files with slightly different framerates using ffmpeg - it is possible but it always requires a full recoding. Perhaps VRD uses ffmpeg to join videos, hence needing to recode, whilst LC has come up with a different module to join videos? Might be worth asking about this on a LC forum?
Hope that makes sense .. I'm on prescription painkillers ATM, so not entirely coherent. -
Anyway, for Hydra3333, here are the MediaInfo grabs of the 2 Files that i am dealing with, both S23 using identical settings, recorded within 1 minute of each other.
Part 1 60.0fps = https://postimg.cc/MMYnDHNN
Part 2 59.94fps = https://postimg.cc/JH4GdmWn
I have had the same issues as this before from all of my Samsung phones where a few times they might record at 59.94fps.
Also, just to let you know, i took the 4k HEVC file that was 59.94fps and cut 10 frames from both ends with VRD, and smart rendered it, and MediaInfo shows it at 60.0fps, not 59.94fps.
I cut the same file the same way in LosslessCut and MediaInfo shows it at 59.94fps, the way it came from the Phone, so clearly one is dealing with this file differently for MediaInfo to be showing 2 different framerates.Last edited by Bridgy; 3rd Jun 2025 at 09:57.
-
-
OK, you use the gui mediainfo. I use the commandline mediainfo with options to get really full info, however I see it still shows at least some vfr info.
Not sure what your output file(s) say they are.
Interestingly, for these files it shows definitely VFR (which we knew) min and max framerates from 30 fps to about 61 and a bit fps ... so anything in between is valid (and certainly min and max were found) as a time interval between individual frames, you won't know what unless you look at the timing data for every individual frame.
The reported "frame rate" and "real frame rate" fps are fairly fictional for VFR so do not be fooled and do not rely on them, and you need to know what your output actually is.
Having said that, for Samsung phones recording video as h.264 (at least up to where I saw testing 2 to 3 years ago) VFR "frame rate" and "real frame rate" and sometimes other data with similar names (which mediainfo sometimes showed and sometimes not) can be reasonably close to an average fps or similar and the fps tended to drift around more at the start and then hover-ish around some odd fractional fps number the phone thought was good enough for the prevailing conditions. (more accurately, or perhaps not, the display time for each frame was set to something the phone considered good enough and the "fps for just that bit" was derived) I have seen samsung phone VFR files like a settled-down-hovering-around-a-fps-number treated as CFR just for ease of processing and have done so myself when they were reasonably stable VFR-wise and I wasn't worried about audio de-sync (perhaps also called loss of lip-sync); I have also used the dup/drop method more than anything else to convert to something approximating CFR when I wasn't too fussed about jerkiness et al.
good luck.
PS if an editor handles VFR files properly and joins VFR files to output a joined VFR file then Bob's your uncleLast edited by hydra3333; 3rd Jun 2025 at 20:12.
-
Yes, i never had any issues joining any of my Phone files together with VRD, either Smart Render if they have the same attributes, or recoding if they have slightly different attributes, as per the 59'94fps and 60.0fps files.
The same applies to LosslessCut with Smart Rendering, it does not do recoding.
BUT unlike LosslessCut, which somehow seems to manage joining a 59.94 and a 60fps and join a 30fps and a 60fps file together without recoding, VRD will not do it, it will always recode files with even just a minute fps variation.
So i guess while ever i have no issues with editing or joining VFR files using VRD or LosslessCut then i really have nothing to worry about, i am just baffled by the way in which these 2 tools treat these files, but i do take my hat off to LosslessCut, i don't know what is in that software that makes it do what it does, but right now it has been my savior when cutting and joining my 4k/60p HEVC files, and it does it in a flash, VRD has a slight delay when i try to join files together, regardless if they were cut in VRD or LosslessCut first.
As far as my phones go, when i had my S24 Ultra for 6 weeks i liked the video quality, many people never believed it came from a phone, but it has to be a nice clear blue sky day with the sun behind you to get the best video, in overcast days it is still ok, but as the light dims, the quality falls apart completely, but every Samsung phone from the S20 up to the S25 records the exact same modes, except the S25 base model (unsure of the Plus and Ultra) they dropped the Normal 4k/60p HEVC bitrate from 61.0Mbps to 41.0Mbps, but all phones retained the stupidly insane 140Mbps High bitrate, which is crazy because the video quality was no better, but the file sizes were 3 times higher or more, and nobody in their right mind would ever record 140Mbps HEVC video on a phone.
I wish they would drop the 140Mbps rate and use the money to give us CFR instead, or would this be impossible to do in these phone cameras.Last edited by Bridgy; 3rd Jun 2025 at 21:50.
-
I'd be interested to see a full mediainfo of the output from LosslessCut with the 2 input VFR files.
30 and 60 with no recoding ? My money is on output being vfr otherwise (assuming the 60 clip is the 2nd being joined) the 60 clip would appear to be playing at half-speed ... unless it is dropping every 2nd frame -
Ok so i have done 2 tests, the details are written below, if anyone wants to download my 2 Tests you can grab them here and examine the files to see what is going on.
Test 1 (440mb) https://icedrive.net/s/bi1zv38i5CBZW2ZBvkgPtQZxQV7Y
Test 2 (387mb) https://icedrive.net/s/jPtgA163P9zQ4XjTzTaDuauvFSAh
Test 1: File 1 is 4k @ 59.94fps and File 2 is 4k @ 60.0fps (each file is 10 seconds long)
Joined both files with VRD, this did a partial Recode and partial Fast Frame Copy, it took 28 seconds to complete the 20 second export.
- MediaInfo for this File shows 60fps.
Joined both files with LosslessCut, no Recode done, process took 3 seconds.
- LosslessCut did not give me a warning about the different Frame Rates, i hit the Merge button and the files merged perfectly.
- MediaInfo for this Files shows 60fps.
Test 2: File 1 is 4k @ 30fps and File 2 is 4k @ 60fps (each file is 10 seconds long)
Joined both files with VRD, this did a full Recode, it took 100 seconds to complete the 20 second export.
- MediaInfo for this File shows 30fps.
Joined both files with LosslessCut, no Recode done, process took 3 seconds.
- However in this Merge job, LosslessCut gave me a warning that it recognized the frame rate difference and said that it may not work, but the file joined perfectly and plays back perfectly.
- MediaInfo for this File show 44.444fps (almost half way between 30 and 60)Last edited by Bridgy; 4th Jun 2025 at 02:01.
-
OK now for 2 posts which you are very welcome to ignore completely.
This post (#1) contains some analysis of the VFR input files in terms of FPS buckets, and of the output files (VRD's being CFR).
The next post (#2) contains info extracted from a full mediainfo over each of the files, indicating anomalies in reported framerates (expected when seeing VFR).
The histograms of "buckets of framerates" are interesting and show which FPS(s) a VFR file is generally hovering around and can given a sense of how it would fare if "nonsensically" assumed to be CFR.
The final one for LosslessCut joining of the 2 VFR files with very different notional framerates is interesting.
Both input files 3 and 4 are fairly well behaved in their FPS hovering fairly closely around the notional framerate.
The LosslessCut output file from merging 3 and 4 has two bands where the frames hover, aligning generally with the input files, seemingly suggesting Losslesscut handles VFR files OK by merging them as VFR and leaving the frame display durations alone-ish, but who really knows.
That's it, no more from me.
Cheers.
PS ChatGPT wrote the code for the histograms, no responsibility accepted by me
Code:File analyzed : pts_Source File 1 10sec 4k 59.94fps_times.txt Total frames : 601 Total duration : 10.014535 seconds Calculated average FPS : 60.012771 Average frame duration : 16.663120 ms Min instantaneous duration : 16.656000 ms Max instantaneous duration : 16.667000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.656000 - 16.657100 60.036442 212 16.657100 - 16.658200 60.032478 0 16.658200 - 16.659300 60.028514 0 16.659300 - 16.660400 60.024550 0 16.660400 - 16.661500 60.020587 0 16.661500 - 16.662600 60.016625 0 16.662600 - 16.663700 60.012663 0 16.663700 - 16.664800 60.008701 0 16.664800 - 16.665900 60.004740 0 16.665900 - 16.667000 60.000780 389 File analyzed : pts_Source File 2 10sec 4k 60fps_times.txt Total frames : 600 Total duration : 9.996931 seconds Calculated average FPS : 60.018420 Average frame duration : 16.661552 ms Min instantaneous duration : 16.578000 ms Max instantaneous duration : 16.789000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.578000 - 16.599100 60.282544 8 16.599100 - 16.620200 60.205965 12 16.620200 - 16.641300 60.129579 6 16.641300 - 16.662400 60.053387 196 16.662400 - 16.683500 59.977389 370 16.683500 - 16.704600 59.901582 3 16.704600 - 16.725700 59.825966 0 16.725700 - 16.746800 59.750541 3 16.746800 - 16.767900 59.675307 1 16.767900 - 16.789000 59.600261 1 File analyzed : pts_Source Files 1 2 Joined with VRD Partial Recode Fast Frame Copy done in 28 seconds_times.txt Total frames : 1201 Total duration : 20.017067 seconds Calculated average FPS : 59.998800 Average frame duration : 16.667000 ms Min instantaneous duration : 16.667000 ms Max instantaneous duration : 16.667000 ms All frames have identical duration (CFR or near-CFR). Single bin histogram: Frame Duration (ms) Estimated FPS Frame Count ----------------------------------------------------- 16.667000 59.998800 1201 File analyzed : pts_Source Files 1 2 Merged with LosslessCut No Recode done in 3 seconds_times.txt Total frames : 1201 Total duration : 20.011466 seconds Calculated average FPS : 60.015593 Average frame duration : 16.662336 ms Min instantaneous duration : 16.578000 ms Max instantaneous duration : 16.789000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.578000 - 16.599100 60.282544 8 16.599100 - 16.620200 60.205965 12 16.620200 - 16.641300 60.129579 6 16.641300 - 16.662400 60.053387 408 16.662400 - 16.683500 59.977389 759 16.683500 - 16.704600 59.901582 3 16.704600 - 16.725700 59.825966 0 16.725700 - 16.746800 59.750541 3 16.746800 - 16.767900 59.675307 1 16.767900 - 16.789000 59.600261 1 ************* File analyzed : pts_Source File 3 (10sec 4k-30fps)_times.txt Total frames : 344 Total duration : 11.465162 seconds Calculated average FPS : 30.003937 Average frame duration : 33.328959 ms Min instantaneous duration : 33.322000 ms Max instantaneous duration : 33.500000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 33.322000 - 33.339800 30.002190 329 33.339800 - 33.357600 29.986176 1 33.357600 - 33.375400 29.970180 5 33.375400 - 33.393200 29.954200 0 33.393200 - 33.411000 29.938237 1 33.411000 - 33.428800 29.922292 2 33.428800 - 33.446600 29.906363 3 33.446600 - 33.464400 29.890451 0 33.464400 - 33.482200 29.874557 2 33.482200 - 33.500000 29.858679 1 File analyzed : pts_Source File 4 (10sec 4k-60fps)_times.txt Total frames : 641 Total duration : 10.699207 seconds Calculated average FPS : 59.910982 Average frame duration : 16.691431 ms Min instantaneous duration : 16.656000 ms Max instantaneous duration : 33.333000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.656000 - 18.323700 57.176019 640 18.323700 - 19.991400 52.198741 0 19.991400 - 21.659100 48.018631 0 21.659100 - 23.326800 44.458375 0 23.326800 - 24.994500 41.389615 0 24.994500 - 26.662200 38.717146 0 26.662200 - 28.329900 36.368860 0 28.329900 - 29.997600 34.289143 0 29.997600 - 31.665300 32.434414 0 31.665300 - 33.333000 30.770036 1 File analyzed : pts_Source Files 3 @ 4 Joined with VRD (full Recode @ 30fps) took 2 minutes_times.txt Total frames : 665 Total duration : 22.166445 seconds Calculated average FPS : 30.000300 Average frame duration : 33.333000 ms Min instantaneous duration : 33.333000 ms Max instantaneous duration : 33.333000 ms All frames have identical duration (CFR or near-CFR). Single bin histogram: Frame Duration (ms) Estimated FPS Frame Count ----------------------------------------------------- 33.333000 30.000300 665 File analyzed : pts_Source Files 3 @ 4 Merged with LosslessCut (no Recode) took 3 seconds_times.txt Total frames : 985 Total duration : 22.164369 seconds Calculated average FPS : 44.440697 Average frame duration : 22.501897 ms Min instantaneous duration : 16.656000 ms Max instantaneous duration : 33.500000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.656000 - 18.340400 57.148735 640 18.340400 - 20.024800 52.130577 0 20.024800 - 21.709200 47.922557 0 21.709200 - 23.393600 44.343145 0 23.393600 - 25.078000 41.261275 0 25.078000 - 26.762400 38.579949 0 26.762400 - 28.446800 36.225846 0 28.446800 - 30.131200 34.142511 0 30.131200 - 31.815600 32.285768 0 31.815600 - 33.500000 30.620556 345
Last edited by hydra3333; 5th Jun 2025 at 00:09.
-
Post #2 showing some mediainfo metadata.
Code:Interesting metadata for Source File 1 (10sec 4k @ 59.94fps).mp4 ---------------------------------------------------------------- Container says: Frame rate : 60.000 FPS Frame count : 601 Duration : 10 s 15 ms Duration : 00:00:10.015 Video Stream says: Duration : 10 s 15 ms Duration : 00:00:10.015 Frame rate mode : VFR Frame rate mode : Variable Frame count : 601 Minimum frame rate : 60.000 Minimum frame rate : 60.000 FPS Maximum frame rate : 60.040 Maximum frame rate : 60.040 FPS "Real" frame rate : 60.000000 "Real" frame rate : 60.000000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
Frames will have individual display times wobbling between the min and max (i.e. variable frame rates).
It is likely close enough to a stable 60 fps to treat it as CFR 60 fps but that'd be real fuzzy.
Code:Interesting metadata for Source File 2 (10sec 4k @ 60fps).mp4 ------------------------------------------------------------- Container says: Frame rate : 60.000 FPS Frame count : 600 Duration : 10 s 7 ms Duration : 00:00:10.007 <<----- Video Stream says: Duration : 9 s 997 ms Duration : 00:00:09.997 <<----- Frame rate mode : VFR Frame rate mode : Variable Frame count : 600 Minimum frame rate : 59.563 Minimum frame rate : 59.563 FPS Maximum frame rate : 60.322 Maximum frame rate : 60.322 FPS "Real" frame rate : 60.000000 "Real" frame rate : 60.000000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
Frames will have individual display times wobbling between the min and max (i.e. variable frame rates).
It is likely close enough to a stable 60 fps to treat it as CFR 60 fps or even 59.97 but that'd be real fuzzy.
Code:Interesting metadata for Source Files 1 @ 2 Joined with VRD (Partial Recode & Fast Frame Copy) done in 28 seconds.mp4 --------------------------------------------------------------------------------------------------------------------- Container says: Frame rate : 60.000 FPS Frame count : 1201 Duration : 20 s 17 ms Duration : 00:00:20.017 Video Stream says: Duration : 20 s 17 ms Duration : 00:00:20.017 Frame rate mode : CFR <<----- CONSTANT *************************************** Frame rate mode : Constant Frame rate : 60.000 Frame rate : 60.000 FPS Frame count : 1201 Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
Code:Interesting metadata for Source Files 1 @ 2 Merged with LosslessCut (No Recode) done in 3 seconds.mp4 ----------------------------------------------------------------------------------------------------- Container says: Frame rate : 60.000 FPS Frame count : 1201 Duration : 20 s 28 ms Duration : 00:00:20.028 Video Stream says: Duration : 20 s 19 ms Duration : 00:00:20.019 Source duration : 20 s 11 ms Source duration : 00:00:20.011 Frame rate mode : VFR <<----- VARIABLE *************************************** Frame rate mode : Variable Frame count : 1201 Source frame count : 1201 Frame rate : 60.000 Frame rate : 60.000 FPS Minimum frame rate : 59.563 Minimum frame rate : 59.563 FPS Maximum frame rate : 60.322 Maximum frame rate : 60.322 FPS "Real" frame rate : 60.000000 "Real" frame rate : 60.000000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
1 is output as CFR by VRD, perhaps likely assuming one of the container FPS numbers is useful as a CFR number (not always a safe guess) and assuming the frames are CFR with that number.
2 is output as VFR with the correct min and max fps values, who knows what processing LosslessCut did in the middle (eg same as VRD but saving as VFR, or even something good like processing as VFR in the chain and outputting VFR, separately: if one was VFR and the other was CFR then who knows) but there's perhaps a chance LosslessCut did the right thing.
Bottom line:
Good luck. I don't know what either program did to get those outputs, but there's an chance LosslessCut did it right (what does it's documentation say about VFR)
************************************************** *********
************************************************** *********
Code:Interesting metadata for Source File 3 (10sec 4k-30fps).mp4 ----------------------------------------------------------- Container says: Frame rate : 30.000 FPS Frame count : 344 Duration : 11 s 465 ms Duration : 00:00:11.465 Video Stream says: Duration : 11 s 465 ms Duration : 00:00:11.465 Frame rate mode : VFR Frame rate mode : Variable Frame count : 344 Frame rate : 30.000 Frame rate : 30.000 FPS Minimum frame rate : 29.851 Minimum frame rate : 29.851 FPS Maximum frame rate : 30.010 Maximum frame rate : 30.010 FPS "Real" frame rate : 30.000 "Real" frame rate : 30.000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.70
Code:Interesting metadata for Source File 4 (10sec 4k-60fps).mp4 ----------------------------------------------------------- Container says: Frame rate : 59.940 FPS Frame count : 641 Duration : 10 s 699 ms Duration : 00:00:10.699 Video Stream says: Duration : 10 s 699 ms Duration : 00:00:10.699 Frame rate mode : VFR Frame rate mode : Variable Frame count : 641 Frame rate : 59.940 Frame rate : 59.940 (59940/1000) FPS Minimum frame rate : 30.000 Minimum frame rate : 30.000 FPS <<<----- note diff between min and max, who knows where average hovers Maximum frame rate : 60.040 Maximum frame rate : 60.040 FPS <<<----- note diff between min and max, who knows where average hovers "Real" frame rate : 60.000 "Real" frame rate : 60.000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
Code:Interesting metadata for Source Files 3 @ 4 Joined with VRD (full Recode @ 30fps) took 2 minutes.mp4 ----------------------------------------------------------- Container says: Frame rate : 30.000 Frame rate : 30.000 FPS Frame count : 665 Duration : 22 s 167 ms Duration : 00:00:22.167 Video Stream says: Duration : 22 s 167 ms Duration : 00:00:22.167 Frame rate mode : CFR <<<----- CFR Frame rate mode : Constant Frame rate : 30.000 Frame rate : 30.000 FPS Frame count : 665 Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits no colorspace metadata
Code:Interesting metadata for Source Files 3 @ 4 Merged with LosslessCut (no Recode) took 3 seconds.mp4 ----------------------------------------------------------- Container says: Duration : 22 s 165 ms Duration : 00:00:22.165 Frame rate : 44.441 <<<----- ?? close enough to midpoint of reported min and max Frame rate : 44.441 FPS <<<----- ?? close enough to midpoint of reported min and max Frame count : 985 Video Stream says: Duration : 22 s 165 ms Duration : 00:00:22.165 Frame rate mode : VFR <<<----- VFR Frame rate mode : Variable Frame rate : 44.441 <<<----- possibly just a calculated midpoint ? Frame rate : 44.441 FPS Frame count : 985 Minimum frame rate : 29.851 Minimum frame rate : 29.851 FPS <<<----- ?? Maximum frame rate : 60.040 Maximum frame rate : 60.040 FPS <<<----- ?? "Real" frame rate : 30.000000 "Real" frame rate : 30.000000 FPS <<<----- Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
MediaInfo for this File show 44.444fps (almost half way between 30 and 60)
the only file with CFR (and where a single FPS number can be "safely" quoted as valid) is "Source Files 3 @ 4 Joined with VRD (full Recode @ 30fps) took 2 minutes.mp4" and all other files quoting a specific number as FPS is invalid unless stated as a midpoint/average or something.
Who knows what VRD did to arrive at a correct-ish final duration. -
Most of that went over my head, but i thank you for taking the time to do all this.
I have never had any issues editing, smart rendering, encoding VFR or CFR files with VRD so while ever i can use it, i will be, but i just can't do my 4k/60p hevc file Cuts properly with VRD as the preview screen and timeline is just way too slow and laggy, and gives me Seeking errors, so i use LosslessCut to do those because it works flawlessly and instantly.
If i have any 4k/60p hevc phone camera files that have different framerates i will use LosslessCut to join them because it can do it perfecly, VRD recodes them.
I just think that LosslessCut is an amazing bit of Kit for what it does, some claim that it can't do this or that, i just think some people who use it just don't know or understand how to use it properly, but it did take me a while to get my head around it.
Thank you. -
For posterity, attached is the roughie python code which ChatGPT created to examine a VFR .mp4 file and show some stats about it's framerates as well as a small text graph showing about where the framerates bubble around.
Note: nothing in the output is exact, there are 10 of fps range "buckets" (i.e. each is 10% of the full fps range in the file) and 100 of timeframe range "buckets" (i.e. each is 1% of the full duration of the file) and real data is popped into those buckets and averaged within each bucket. Good enough for a quick squiz to get a feel for what's happening at a macro level.
Example output:
Code:File analyzed : pts_Source File 2 10sec 4k 60fps_times.txt Total frames : 600 Total duration : 9.996931 seconds Calculated average FPS : 60.018420 Average frame duration : 16.661552 ms Min instantaneous duration : 16.578000 ms Max instantaneous duration : 16.789000 ms Histogram of per-frame durations: Frame Duration Range (ms) Estimated Frame From To FPS Count ---------------------------------------------------- 16.578000 - 16.599100 60.282544 8 16.599100 - 16.620200 60.205965 12 16.620200 - 16.641300 60.129579 6 16.641300 - 16.662400 60.053387 196 16.662400 - 16.683500 59.977389 370 16.683500 - 16.704600 59.901582 3 16.704600 - 16.725700 59.825966 0 16.725700 - 16.746800 59.750541 3 16.746800 - 16.767900 59.675307 1 16.767900 - 16.789000 59.600261 1 FPS Timeline Graph (Y: FPS from low to high, X: Time HH:MM:SS.hhh ->) 60.283002 | 60.207192 | 60.131383 | * 60.055573 | ** *** *** 59.979763 | ******* ** ***************************** ************************************************** 59.903953 | * * 59.828143 | * 59.752334 | 59.676524 | 59.600714 | H 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 H 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: M 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 M 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: S 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 S 0000000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999 .................................................................................................... h 0012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 h 0999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 h 0999999999999999999999999999999998888888888888888888888888888888887777777777777777777777777777777766
Last edited by hydra3333; 5th Jun 2025 at 05:45.
Similar Threads
-
VideoReDo alternatives ?
By hydra3333 in forum EditingReplies: 423Last Post: 30th Apr 2025, 15:27 -
Can you automate VideoRedo
By cgott42 in forum EditingReplies: 5Last Post: 17th Dec 2024, 20:31 -
VideoRedo - one last thing
By jwillis84 in forum EditingReplies: 7Last Post: 15th Jun 2024, 17:25 -
Replacement for Videoredo
By nicksteel in forum EditingReplies: 19Last Post: 5th Jun 2024, 11:13 -
Alternative to VideoReDo TvSuite V5?
By The_Sociopath in forum Newbie / General discussionsReplies: 7Last Post: 19th Apr 2020, 02:23