Posts by iAvoe

    Thanks for your detailed reply


    OBS works fine

    NVIDIA Driver should be recent enough (has auto update)

    Resizable bar is not enabled

    It looks like would be VEGAS Pro, Voukoder or Connector's fault then, try replace them.

    I don't think the file system or operating system could cause this kind of error, but you can try CHKDSK, SFC and DISM commands in CMD (they have built-in help file to check for usage)

    Quote

    [18:10:02] FFmpeg: Failed unlocking input buffer!: generic error (20): (Ú8

    The card was an RTX 3080 with 32GB RAM, and the error looks like came from the software

    Try:

    Record with OBS, select NVENC encoder and see if recording fails

    Disable audio output (not likely to be the case)

    Or just use HEVC encoder since you've got a strong CPU for encoding tasks

    Guesses:

    Driver was outdated;

    Second handed card that was loaded with a mining BIOS (not likely);

    Operating System build is outdated (not recorded in log);

    Resizable-Bar is enabled, try disable it;

    x264 and x65 from ffmpeg are advantageous in double pass encoding. In single pass, you already have software/native encoding in Resolve, which I consider equivalent in speed/performance.

    As far as I know only single pass is available in Voukoder yet, for SDK constraints. If you want double pass x264/x265, you may export to DNxHD in Resolve and double-pass with ffmpeg/Handbrake later.

    2 pass encoding is basically analyze how much quantization compression per frame (x264), or per block/unit (x265) in pass1, then in pass2 encoder adjust the quantization compression level more evenly. So overall you still get lower quality (and slower) than CRF mode (constant rate factor, 1 pass), if you give a higher bitrate in pass2, then you defeat the purpose of 2 pass, so at least in video production/editing phase, it's not recommended to use 2 pass at all :)

    I've never used Vegas, but I'm comfortable with simply working on multiple projects, only the "last station" being final. If you want some lossless codec (Cineform or ProRes) in intermediate rendering, in this case you won't necessarily need Voukoder; if you want lossy codec just go for exporting the whole project.

    I've created a pull request to submit the parameters, it just needs some time to be tested and updated to next/later release. Currently you need to go to Option tab, and find, apply the settings yourself :)

    Unfortunately hevc lossless does not seem to be implemented in Voukoder even though it is implemented perfectly in ffmpeg with a transcode script such as this:

    Code
    ffmpeg -i "INFILE.MOV" -c:v libx265 -x265-params lossless=1 "OUTFILE.MOV"

    x264 cannot actually achieve lossless. It's lossless setting is close but ProRes422 is generally a little better quality, faster rendering, and smaller. MagicYUV is another possible option.

    Well, if we already have hardware encoding with studio version, that doesn't nearly defeat the purpose of Voukoder? I very much appreciate Voukoder and it's a great piece of software, but except ProRes, VP9 and AV1 (which are very welcome of course and I applaud the developer), studio version already provides QuicSync H264 and H265. I have found they are faster, actually.

    In terms of quality, x264 and x265 are better than hardware solutions, because hardware solution requires money to make larger circuts that implements code the software solution already does (if the encoder section costs under 100USD, they are no match with software encoding), the only advantage is in lossless codecs where the hardware encode runs cooler and faster.

    2-pass requires a stat file output, and video output on the 1st run gets disabled. To implement this requires a software level change on the video editing program, because they would expect to output a video, and Voukoder is an intermediate plugin... I guess?

    If you are using PotPlayer, change to MPV and see if that displays correctly

    Check your OBS/other recording software video options, the source has to be Full color range and BT.709 color space as well, I know you said Premiere it looks right, but still try check that.

    Check the Output - Video tab, the color range is supposed to be Full instead of Limited

    Try 8bit instead of 10bit, both set in recording and Premiere export.

    Try update GPU driver (clean install, recommend using nvcleaninstall.exe).

    Try disable Resizible BAR if you have it enabled

    Try use OBS (the only software I know has NVENC option) and see if that could get GPU encoding up and running


    Note: GTX 1650 super uses TU116 chip and should be running Turing NVENC engine, maybe encoding was confused with some GTX 1650 with Volta NVENC engine, I'm not very sure about this

    Emailing video is not really a good idea (I remember there are 25MB file size limit), but you can try shrink resolutions; use OneDrive/GoogleDrive to share larger videos; or build a public torrent transmission and email just the torrent file to the client

    HDR Support (x264 & x265):


    Tagging DCI-P3: --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(?,1)

    Tagging BT.709: --master-display G(15000,30000)B(7500,3000)R(32000,16500)WP(15635,16450)L(?,1)

    TaggingBT2020: --master-display G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(?,1)

    The L(?,1) indicates lux ratio (e.g., 1000:1). This value has no standard and needs to be checked and written manually on each HDR video.


    If tagging for the source vid is unknown, find 1 of the following format in source video metadata:

    DCI-P3: G(x0.265, y0.690), B(x0.150, y0.060), R(x0.680, y0.320), WP(x0.3127, y0.329)

    bt.709: G(x0.30, y0.60), B(x0.150, y0.060), R(x0.640, y0.330), WP(x0.3127,y0.329)

    bt.2020: G(x0.170, y0.797), B(x0.131, y0.046), R(x0.708, y0.292), WP(x0.3127,y0.329)


    Content lumiance x265: --max-cll <max content light level cd/m2, max frame-avg light level cd/m2> e.g., 1000,640

    Content lumiance x264: --cll <max content light level cd/m2, max frame-avg light level cd/m2> e.g., 1000,640

    CLL has no standard and needs to be checked and written manually on each HDR video


    Indicate HDR10 content in supplemential enhance info (SEI), x264 : --hdr10


    Optimize HDR10 content (increase video size) per block (optional, x264 :( --hdr10-opt


    Indicate color range and transfer properties: --colormatrix <as source> --transfer <as source>

    Color range can vary thanks for both compatibility and multple HDR implementations, (e.g., gbr bt709 fcc bt470bg smpte170m YCgCo bt2020nc bt2020c smpte2085 ictcp). Check the source video metadata for them

    x265 is just too complex to figure out for past myself, so after watched too much lectures and papers, testing myself and checking forums, here I'm giving out parameters years late. I'll try deleting the old posts regarding x265 as well. In this post I'll give out 6 combinations, and explain key features of each. Since x265 has hundreds of parameters to tackle with, I'll remove all the customizations and just give the fixed amounts. :*


    Note: --strong-intra-smoothing filter is enabled, because it's a parallel feature with 3-tap filter in intra frame search. It only applies in specific conditions according to the formula, and makes overall encoding faster with minor quality loss. Data smoothing is also not blurring which preserves patterned details.

    Note: I'm more of an enthusiast instead the expert, the borderline inbetween expert and enthusiast is probably being able to read and explain rate distorsion function where everything becomes university master/doctor level, so please don't exprect these parameters to be prefect


    General Purpose for video platforms

    Simple and quite effective, less capable at compressing some scenes, qpmax is still configured for perserving output quality, YUV4:2:0 8bit, 10bit

    Block Splitting - Transformation: --min-cu-size 16 --limit-tu 1 --tu-intra-depth 2 --tu-inter-depth 2

    ME - Compensation: --me umh --subme 5 --merange 48 --rskip 1 --weightb
    Referencing - Rate Control: --ref 3 --early-skip --max-merge 2 --no-open-gop --min-keyint 5 --fades --bframes 11 --b-adapt 2 --radl 2 --fast-intra

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Intraframe Search: --fast-intra

    Quantization: --crf 18 --crqpoffs -3 --cbqpoffs --qpmax 26

    Adaptive Quant: --aq-mode 3 --aq-motion --qg-size 16

    RDO - Mode Decision: --rd 3 --rdpenalty 1 --splitrd-skip --rdoq-level 1 --limit-modes --rect --tskip-fast
    Sample Adaptive Offset: --limit-sao --sao-non-deblock
    Output: --hash crc --allow-non-conformance

    Multiple CPU nodes: --pools +,-


    Standard for video platforms

    Takes more compute resources, no advantage against General Purpose in simpler scenes, YUV4:2:0, 4:2:2, 4:4:4 8bit, 10bit

    Block Splitting - Transformation: --min-cu-size 16 --tu-intra-depth 3 --tu-inter-depth 4 --limit-tu 1

    ME - Compensation: --me star --subme 5 --merange 48 --rskip 1 --weightbReferencing - Rate Control: --ref 3 --max-merge 2 --early-skip --no-open-gop --min-keyint 5 --keyint 390 --fades --bframes 13 --b-adapt 2 --radl 3

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Intraframe Search: --fast-intra

    Quantization: --crf 20.5 --crqpoffs -4 --cbqpoffs -2 --qpmax 26

    RDOQ: --rdoq-level 2

    Adaptive Quant: --aq-mode 3 --aq-strength 0.9 --aq-motion --qg-size 16

    Mode Decision: --rd 3 --rdpenalty 1 --splitrd-skip --rdoq-level 1 --limit-modes --rect

    Rate Distorsion Optimization: --psy-rd 1.6 --rdpenalty 2 --splitrd-skip

    Deblocking: --deblock 0:0Sample Adaptive Offset: --limit-sao --sao-non-deblock
    Output: --hash crc --allow-non-conformance

    Multiple CPU nodes: --pools +,-

    NAS/Server playback recovery: --idr-recovery-sei


    High Compression - Film

    Burst high bitrate scenes will be compressed. Not recommended for video platforms, recommend shifting chroma plane resolution up for this one: YUV4:2:2, 4:4:4 8bit, 10bit

    Block Splitting - Transformation: --min-cu-size 16 --tu-intra-depth 4 --tu-inter-depth 4

    ME - Compensation: --me star --subme 5 --merange 48 --rskip 1 --weightb

    Referencing - Rate Control: --ref 3 --max-merge 4 --early-skip --no-open-gop --min-keyint 2 --keyint 400 --fades --bframes 15 --b-adapt 2 --radl 3

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Intraframe Search: --constrained-intra --b-intra

    Quantization: --crf 21 --qpmin 10 --crqpoffs -3 --cbqpoffs -1 --hrd --vbv-bufsize 30000 --vbv-maxrate 50000

    RDOQ: --rdoq-level 2

    Adaptive Quant: --aq-mode 2 --aq-strength 0.9 --qg-size 8

    Mode Decision: --rd 5 --rdpenalty 1 --splitrd-skip --rskip 0 --limit-modes --rect --amp

    Rate Distorsion Optimization: --psy-rd 1.9 --rdpenalty 1 --rd-refine

    Deblocking: --deblock 0:0

    Sample Adaptive Offset: --sao-non-deblock --selective-sao 3Output: --hash crc --allow-non-conformance --nr-inter 5 --nr-intra 5

    Multiple CPU nodes: --pools +,-

    NAS/Server playback recovery: --idr-recovery-sei


    Render to Reuse (video editor --> video editor)

    Some filters costs too much computing resources, therefore render a finished video and re-import is cost saving. Not sure when will premiere support hevc, but voukoder is not just for premiere, so this should still be useful: YUV4:2:2 8bit, 10bit

    Block Splitting - Transformation: --ctu 32

    ME - Compensation - Intrasearch: --me star --subme 6 --merange 48 --analyze-src-pics --weightb --max-merge 4 --early-skip --b-intra

    Referencing - Rate Control: --ref 3 --no-open-gop --min-keyint 1 --keyint 350 --fades --bframes 7 --b-adapt 2

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Quantization: --crf 17 --qpmax 24

    Mode Decision: --rd 5 --limit-modes --limit-refs 1 --rskip 1

    Deblocking: --deblock 0:0

    Sample Adaptive Offset: --no-sao

    Output - Mastering: --hash crc --allow-non-conformance --tune grain

    Multiple CPU nodes: --pools +,-

    NAS/Server playback recovery: --idr-recovery-sei


    High Compression - Anime

    For subtitle/translation groups and uploading to video platform. This parameter considers both high and low budget anime, include opening, ending and main content. The secret is to max out all the possible block splittings possible, because high-freq info here are mostly hand drawings and should be perserved: YUV4:2:0 8bit, 10bit

    Block Splitting - Transformation: --ctu 64 --min-cu-size 8 --tu-intra-depth 4 --tu-inter-depth 4 --max-tu-size 4 --limit-tu 1

    ME - Compensation: --me star --merange 48 --analyze-src-pics --subme 3 --weightb --max-merge 4 --early-skip

    Referencing - Rate Control: --ref 3 --no-open-gop --min-keyint 5 --keyint 360 --fades --bframes 15 --b-adapt 2 --radl 2

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Intraframe Search: --b-intra

    Quantization: --crf 20 --crqpoffs -3 --cbqpoffs -1 --cu-lossless

    RDOQ: --psy-rdoq 2.3 --rdoq-level 2

    Adaptive Quant: --aq-mode 3 --aq-strength 0.7 --qg-size 8

    Mode Decision: --rd 5 --limit-modes --limit-refs 1 --rskip 1 --rect --amp

    Rate Distorsion Optimization: --psy-rd 1.5 --rd-refine --splitrd-skip

    Deblocking: --deblock 0:0

    Sample Adaptive Offset: --limit-sao --sao-non-deblock

    Output: --hash crc --allow-non-conformance --single-sei

    Multiple CPU nodes: --pools +,-

    NAS/Server playback recovery: --idr-recovery-sei


    High Quality - Anime BDRip Coldwar Duels

    For Blue-ray DVD Ripper social network's common agreement on: high quality encoding means "paused dark scene zoomed-in 4~5 times size" should look just as good as the source footage, and I bet the x265 devs will freakout after reading that line, but that's reality on why some BDRip providers/groups are decent but gets less downloads:S . Compare to HC-Anime, x265 needs to give up some compression features to realize this requirement: YUV4:2:0 8bit, 10bit

    Block Splitting - Transformation: --ctu 64 --min-cu-size 8 --tu-intra-depth 4 --tu-inter-depth 4 --max-tu-size 4 --limit-tu 1

    ME - Compensation: --me star --merange 52 --analyze-src-pics --subme 3 --weightb --max-merge 4 --early-skip

    Referencing - Rate Control: --ref 3 --no-open-gop --min-keyint 1 --keyint 360 --fades --bframes 11 --b-adapt 2 --radl 2 --pbratio 1.2

    Various Parameter Sets: --opt-qp-pps --opt-ref-list-length-pps

    Intraframe Search: --b-intra

    Quantization: --crf 18.5 --crqpoffs -5 --cbqpoffs -3 --cu-lossless

    RDOQ: --psy-rdoq 2.3 --rdoq-level 2

    Adaptive Quant: --aq-mode 3 --aq-strength 0.7 --qg-size 8 --aq-motion

    Mode Decision: --rd 5 --limit-modes --limit-refs 1 --rskip 2 --rskip-edge-threshold 2 --rect --amp --no-cutree

    Rate Distorsion Optimization: --psy-rd 1.5 --rd-refine --splitrd-skip

    Deblocking: --deblock 0:0

    Sample Adaptive Offset: --no-sao

    Output: --hash md5 --allow-non-conformance --single-sei

    Multiple CPU nodes: --pools +,-

    NAS/Server playback recovery: --idr-recovery-sei


    Thats it. <3

    I think AV1 is still too early, shoukd wait for it become mature and get more format supports (I'm not sure current state, at least wait for support in yuv4:4:4 4:2:2 and 4:2:0, and a bunch of instruction sets)