English | 简体中文
Windows batch transcoder for camera archives. It preserves Sony and DJI metadata, repairs multi-channel audio timing, supports hardware scaling, and can verify or repair existing deliverables.
- Windows 10/11 x64.
- Python 3.11+.
numpy/scipyfor channel sync and audio analysis.- NVIDIA NVENC, Intel QSV, or software x265 / SVT-AV1.
- A self-contained package includes FFmpeg, NVEncC, QSVEncC and GPAC.
python 1kt.py --input D:\footage --output D:\archive --preset hq
python 1kt.py --input D:\footage --output D:\archive --encoder nvenc
python 1kt.py --input D:\footage --output D:\archive --encoder qsv --preset uhqWithout --encoder, the backend is selected in order: NVENC -> QSV -> x265.
Hardware backends never fall back to software encoding.
| Input | Handling |
|---|---|
Sony XAVC (rtmd) |
Preserves rtmd, nrtm and vendor uuid boxes |
DJI Action (djmd/dbgi/tmcd) |
Preserves motion and timing metadata |
| DJI Pocket / drones | Metadata off by default; use --preserve-metadata |
| Other camera files | Standard transcode |
| Backend | Codec |
|---|---|
nvenc, nvenc-av1 |
HEVC / AV1 via NVEncC |
qsv, qsv-av1 |
HEVC / AV1 via QSVEncC |
x265, svtav1 |
Software HEVC / AV1 |
Presets: uhq, hq, small, fast.
--resize WxH: exact output resolution (even dimensions); does not preserve the source aspect ratio.--scale FACTOR: multiplies the long edge and preserves the source aspect ratio (0.5,0.25,2, ...); output dimensions are rounded to even values.--resize-algo:bilinear,bicubic,lanczos; default lanczos.--resizeand--scaleare mutually exclusive. Without either option the output resolution is unchanged.- NVENC:
--vpp-resizewith--output-res. - QSV: same plus
--vpp-resize-mode quality. - x265 / SVT-AV1 default to hardware decode and scale in that path through
scale_cudaorvpp_qsv; FFmpeg CPU scaling is the fallback when hardware decode is unavailable. --repairand--channel-sync-transparentreject both options.
python 1kt.py ... --encoder nvenc --scale 0.5 # 4K -> 1080p
python 1kt.py ... --encoder qsv --scale 2 # 1080p -> 4K
python 1kt.py ... --encoder x265 --resize 1920x1080- 3–8 independent PCM channels are aligned automatically (48/96 kHz).
- Long takes use time-varying alignment when the delay is not constant.
--audio-plan JSONselects, maps, orders, aligns and encodes audio.- Compressed audio and mixed PCM/compressed files require an explicit plan.
python 1kt.py ... --check basic
python 1kt.py ... --check advanced
python 1kt.py ... --check full
python 1kt.py --input D:\deliverables --output D:\fixed --repairbasic checks core metadata and stream facts; advanced adds full structural
and Gyroflow checks; full adds detailed self-checks and a PSNR/SSIM sample.
Batches are resumable. Failed files are written to logs/failed_files.json for
retry with --retry-list.
python tests\full_autotest.py --level unit
python tests\full_autotest.py --level toolchain
python tests\full_autotest.py --level fullReal-feature tests require testsets/ and F:\Pictures\2026; without them,
environment-only checks report FAIL.