oyvindln / vhs-decode

Software defined VHS decoder - Fork (maybe temporary) of the ld-decode Laserdisc rf decoder
GNU General Public License v3.0
1.13k stars 46 forks source link

GPU-accelerated compression of 16-bit captures #116

Open davidvankemenade opened 1 year ago

davidvankemenade commented 1 year ago

Is your proposal related to a problem?

No

Describe the solution you'd like

I'm looking for the fastest way to compress 16-bit capture files in Windows.

Additional context

FlaLDF doesn't accept my s16 capture files as they don't have WAV RIFF headers.

I've tried two methods to get the headers in place: 1: ffmpeg.exe -f s16le -ar 40k -ac 1 -i capture.s16 -f wav - | CUETools.FLACCL.cmd.exe -11 -o compressed.flac --lax --ignore-chunk-sizes --task-size 16 --fast-gpu - 2: ld-lds-converter.exe -i capture.s16 -p | ld-lds-converter.exe -u -r | CUETools.FLACCL.cmd.exe -11 -o compressed.flac --lax --ignore-chunk-sizes --task-size 16 --fast-gpu -

On my machine, both workarounds already halve the time needed to compress s16 to flac compared to doing it all in ffmpeg using CPU. Could this be optimised further by either 1: Add a mode to ld-lds-converter to allow 16-bit in and 16-bit out, effectively just adding the RIFF headers FlaLDF requires 2: Modify FlaLDF so that it adds RIFF headers itself based on additional parameters, e.g. 1 channel using a given sample rate?

Contribution

N/A

harrypm commented 11 months ago

I'm wondering why don't you use FFmpeg directly with hardware acceleration?

If it's raw in and compressed out then it's possible to do that pretty much any tool.

ld-lds-converter needs to have a rf-file-converter tool really that covers all the users needs that would also simplify docs on the matter there might be some works on this in the new years.

davidvankemenade commented 11 months ago

Hi Harry, it would be ideal to use FFmpeg directly with hardware acceleration. However, as far as I can see, only three video codecs (av1, h264 and hevc) are accelerated through AMD AMF: ffmpeg-encoders.txt