(2020-08-30, 04:57 AM)Kreeep Wrote: Alrighty. I'll use eac3to. Thanks. I tried using XRECODE and it did the job but for whatever reason, DTS Suite didn't support it.
(2020-08-27, 12:36 PM)pipefan413 Wrote: For the auto-blanking dither I use RX set to "auto-blanking when quantized". Personally, I avoid noise-shaping and generally use TPDF set to Normal but with the auto-blanking on so that it uses a straightforward non-shaped dither and only when it's needed to avoid quantisation errors.
I won't lie. I didn't understand the majority of that I'm very new to all of this but would like to get my head around it. I'm not expecting you to go into lengthy detail explaining though. I'll try and do some research myself too
Another question. If I was to simply cut a few frames-worth of audio from the middle of a track, I could do that without need for conversion somehow?
"Didn't support" what and in what sense? The Suite reads the DTS-HD global header, but if you took an authored .dtshd stream and tried to load it into some part of the Suite for some reason or another, it won't take it because it's looking for the header but it isn't attached. All the metadata stuff (including the global header and a navigation table "footer" on the end) is stripped off when a disc is authored.
You can edit encoded streams in situ using delays. The free software delaycut works on this principle. It can be done by a lot of software but it is kind of an involved and manual process. You basically need to work out the exact point you want to edit but in terms of audio frames (DTS is usually 512 samples per frame for the most part) and time duration (in milliseconds) then apply positive and/or negative delays to chop the file into separate chunks, then you want to join them together (concatenation).
So if you want to trim a few video frames' worth from somewhere in the middle of a file, you have to know the exact point in time that the start of the first frame to trim is, and the end of the last frame to trim. If you know the exact numbers of those video frames (e.g. from QuickTime Player or something like AviSynth, both of which count frames starting at 0 rather than 1) then you can convert that to either time or audio samples by using the frame rate. If your frame rate is the most commonly used Blu-ray frame rate, sometimes called 23.976 fps (but more accurately 24000/1001 fps), then your calculations might look something like this...
To trim the audio to the start of the 500th video frame (which is functionally the same as the end of the 499th, since you're cutting off the first 499):
time duration = video frames / frame rate x conversion factor for time units if needed to get from seconds to something else e.g. milliseconds
(since fps is making seconds the unit of time)
= 499 / (24000/1001) x 1000
= 20812.4583333 milliseconds
You can't instruct software explicitly to cut by applying a negative delay of "-20812.4583333ms", but you *can* tell it to aim for the nearest whole number and it will automatically round to the nearest whole audio "frame". DTS on Blu-ray is usually 48 kHz with 512 samples to a frame, which we can use to check which frame at which we ideally want to cut, and use that to inform the number in ms that we give to the software:
audio samples = video frames / frame rate x sample rate
= 499 / (24000/1001) x 48000
(if sample rate is 48 kHz, which is 48000 samples per second)
= 998998 samples
998998 samples / 512 = 1951.16796875 DTS frames
So you need to decide whether it is better for the particular edit you want to make to round up or down, then convert back to milliseconds and feed that figure to the software's delay command. Let's say you decide to cut slightly less by rounding it down:
1951 DTS frames x 512 samples = 998912 samples
998912 samples / 48000 samples per second = 20.8106666666 seconds
20.8106666666 x 1000 = 20810.6666666 milliseconds
If you instruct eac3to to apply a delay of -20811ms it should round down to 20810.6666666 ms and cut at the 1951st DTS frame.
That obviously works for endpoints but not starts because it cuts off everything before the edit point, so an alternative method is needed for endpoints. You can do it in delaycut or something like MKVToolNix, just be conscious of the accuracy of the edit points. In my experience, MKVToolNix can sometimes be a tad unpredictable, but delaycut is pretty consistent as long as you get your timestamp exactly right. Again, similar principle, so you can use the above calculation method to figure out times in ms then feed those to delaycut.
EDIT: Forgot to say. The final concatenation can be done either in eac3to or just by standard OS file concatenation. In Linux it's "concat"; in Windows it's "copy /b". In eac3to you just use + to join the separate files.