### Complete Transcoding Example with VCEEncC Source: https://context7.com/rigaya/vceenc/llms.txt Provides comprehensive examples of full transcoding, preserving all metadata, tracks, and chapters, while encoding video with advanced quality settings. Includes examples for high-quality HEVC encoding with various filters. ```bash VCEEncC -i "input.mkv" -c hevc --vbr 12000 --pa lookahead=32,sc=high \ --colormatrix auto --transfer auto --colorprim auto --chromaloc auto \ --max-cll copy --master-display copy --dhdr10-info copy --dolby-vision-rpu copy \ --video-metadata copy --audio-copy --audio-metadata copy \ --sub-copy --sub-metadata copy --data-copy --attachment-copy --chapter-copy \ -o output.mkv ``` ```bash VCEEncC --avhw -c hevc --output-depth 10 --vbr 15000 --preset slow \ --pa sc=high,ss=high,lookahead=40,paq=caq,taq=2 \ --vpp-knn radius=3,strength=0.06 \ --vpp-unsharp weight=0.3 \ --audio-copy --sub-copy \ -i input.mkv -o output.mkv ``` -------------------------------- ### Install VCEEncC on Ubuntu 24.04 Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Installs the VCEEncC application on Ubuntu 24.04 by downloading and installing a .deb package. Replace 'x.xx' with the actual version number of the desired release. ```Shell sudo apt install ./VCEEncC_x.xx_Ubuntu24.04_amd64.deb ``` -------------------------------- ### Install GPU Utilities for Verification on Ubuntu Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Installs `vulkan-utils` and `clinfo` packages on Ubuntu. These tools are used to check if the GPU is recognized by the system and supports OpenCL and Vulkan, which are required for VCEEncC. ```Shell sudo apt install vulkan-utils clinfo ``` -------------------------------- ### Build and Install VapourSynth Source: https://github.com/rigaya/vceenc/blob/master/Build.en.md Clones, configures, and compiles the VapourSynth library, including creating necessary symbolic links for Python integration. ```Shell git clone https://github.com/vapoursynth/vapoursynth.git cd vapoursynth ./autogen.sh ./configure make -j16 sudo make install sudo ln -s /usr/local/lib/python3.x/site-packages/vapoursynth.so /usr/lib/python3.x/lib-dynload/vapoursynth.so sudo ldconfig ``` -------------------------------- ### Install VapourSynth Build Dependencies Source: https://github.com/rigaya/vceenc/blob/master/Build.en.md Installs the necessary system packages and Python tools required to compile VapourSynth from source. ```Shell sudo apt install python3-pip autoconf automake libtool meson sudo pip3 install Cython ``` -------------------------------- ### Basic H.264, HEVC, and AV1 Encoding Commands Source: https://context7.com/rigaya/vceenc/llms.txt Demonstrates fundamental VCEEnc commands for encoding video using H.264, HEVC, and AV1 codecs with hardware acceleration. Includes examples for constant quantization (CQP) and variable bitrate (VBR) modes. The '--avhw' flag enables hardware decoding. ```bash VCEEncC --avhw -i input.mp4 -o output.mp4 VCEEncC --avhw -c hevc --cqp 23 -i input.mp4 -o output.mp4 VCEEncC --avhw -c av1 --vbr 5000 -i input.mp4 -o output.mkv VCEEncC --check-features ``` -------------------------------- ### Install AMD Graphics Driver on Ubuntu 24.04 Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Installs the AMD Graphics driver and OpenCL support on Ubuntu 24.04 using a downloaded .deb package. This is a prerequisite for using VCEEncC on this OS. ```Shell wget https://repo.radeon.com/amdgpu-install/25.35.1/ubuntu/noble/amdgpu-install_7.2.1.70201-1_all.deb sudo apt-get install ./amdgpu-install_7.2.1.70201-1_all.deb sudo apt-get update sudo amdgpu-install -y --opencl=rocr ``` -------------------------------- ### Configure Audio Stream Channel Mapping Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Examples of using --audio-stream to separate, merge, or downmix audio channels. This allows for complex routing from input tracks to output formats. ```bash --audio-stream FR,FL --audio-stream :stereo --audio-stream 2?5.1,5.1:stereo ``` -------------------------------- ### Metadata and Track Copying Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Example of encoding while preserving all original metadata, chapters, and audio/subtitle tracks. ```Batchfile VCEEncC -i "" --colormatrix auto --transfer auto --colorprim auto --chromaloc auto --max-cll copy --master-display copy --dhdr10-info copy --dolby-vision-rpu copy --video-metadata copy --audio-copy --audio-metadata copy --sub-copy --sub-metadata copy --data-copy --attachment-copy --chapter-copy -o output.mkv ``` -------------------------------- ### Extract Audio to File Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Examples of using --audio-file to extract specific audio tracks to a file path. Supports automatic format detection or explicit format specification. ```bash --audio-file 2?"test_out2.aac" --audio-file 2?adts:"test_out2" ``` -------------------------------- ### Set Audio Track Disposition Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Example of using --audio-disposition to set metadata flags like 'default' or 'forced' for a specific audio track. ```bash --audio-disposition 2?default,forced ``` -------------------------------- ### Apply Audio Filters Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Examples of using --audio-filter to apply FFmpeg-compatible audio filters to specific tracks. Useful for volume adjustment or other signal processing. ```bash --audio-filter volume=0.2 --audio-filter 2?volume=-4db ``` -------------------------------- ### Set Keyframes from File Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Specifies keyframes on frames using frame IDs listed in a file. Each line in the file should contain a single frame ID, starting from 0. ```bash --keyfile ``` -------------------------------- ### Set Audio Sampling Frequency Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Examples of using --audio-samplerate to convert audio tracks to a specific frequency in Hz. Supports targeting specific tracks by index or language. ```bash --audio-samplerate 44100 --audio-samplerate 2?22050 ``` -------------------------------- ### Apply Custom libplacebo Shader Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Demonstrates how to apply a custom GLSL shader using the --vpp-libplacebo-shader flag, including resolution scaling. ```bash --vpp-libplacebo-shader shader=default-shader-pack-2.1.0\Anime4K_Upscale_CNN_x2_L.glsl,res=2560x1440 ``` -------------------------------- ### Create OpenCL Symbolic Link on Ubuntu Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Creates a symbolic link for `libOpenCL.so` if it is missing but `libOpenCL.so.1` exists. This is a troubleshooting step for the 'Failed to load OpenCL' error when running VCEEncC. ```Shell sudo ln -s /lib/x86_64-linux-gnu/libOpenCL.so.1 /lib/x86_64-linux-gnu/libOpenCL.so ``` -------------------------------- ### Build VCEEncC Source: https://github.com/rigaya/vceenc/blob/master/Build.en.md Clones the VCEEnc repository and uses the Meson build system to compile the VCEEncC executable. ```Shell git clone https://github.com/rigaya/VCEEnc --recursive cd VCEEnc meson setup ./build --buildtype=release meson compile -C ./build ./build/vceencc --check-hw ``` -------------------------------- ### Seek in Video Stream Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Sets the start or end time for transcoding. Seeking is fast but potentially inaccurate compared to frame-based trimming. ```bash --seek 0:01:15.400 --seekto 75.4 ``` -------------------------------- ### Enable libplacebo Support (Boolean) Source: https://github.com/rigaya/vceenc/blob/master/meson_options.txt This option controls the enablement of libplacebo support. Setting it to true allows VCEEnc to leverage libplacebo for advanced video scaling and processing. ```configuration option('enable_libplacebo', type: 'boolean', value: false, description: 'Enable libplacebo support') ``` -------------------------------- ### Apply Edge Level Adjustment Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Examples of using the edge level adjustment filter to sharpen edges, including specific settings for strength, threshold, and black-level enhancement. ```bash --vpp-edgelevel strength=10.0,threshold=16.0,black=0,white=0 --vpp-edgelevel strength=5.0,threshold=24.0,black=6.0 ``` -------------------------------- ### Pre-Analysis Options (--pa) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Enables pre-analysis to enhance video quality, primarily supporting VBR mode. It includes parameters for scene change detection sensitivity, static scene detection sensitivity, activity calculation mode, Content Adaptive Quantization (CAQ) strength, initial QP after scene change, skip frame threshold for static scenes, lookahead buffer size, automatic LTR frame management, Perceptual AQ mode, Temporal AQ mode, and high motion quality boost mode. ```APIDOC ## --pa ### Description Enable pre analysis to enhance quality, supports VBR mode only. (default: off) ### Parameters #### Query Parameters - **sc** (string) - Optional - Sensitivity of scene change detection (none, low, medium, high) - **ss** (string) - Optional - Sensitivity of static scene detection (none, low, medium, high) - **activity-type** (string) - Optional - Block activity calculation mode (y, yuv) - **caq-strength** (string) - Optional - Content Adaptive Quantization (CAQ) strength (low, medium, high) - **initqpsc** (int) - Optional - Initial qp after scene change (default: -1 = auto) - **fskip-maxqp** (int) - Optional - Threshold to insert skip frame on static scene. (default: 35) - **lookahead** (int) - Optional - Lookahead buffer size. - **ltr** (bool) - Optional - Enable automatic LTR frame management. - **paq** (string) - Optional - Perceptual AQ mode (none, caq) - **taq** (int) - Optional - Temporal AQ mode (0, 1, 2) - **motion-quality** (string) - Optional - High motion quality boost mode (none, auto) ### Request Example ``` --pa sc=high,ss=high,activity-type=yuv,paq=caq,taq=on,lookahead=32 ``` ``` -------------------------------- ### Pipe Input and FFmpeg Integration with VCEEncC Source: https://context7.com/rigaya/vceenc/llms.txt Demonstrates how VCEEncC can be integrated into complex processing pipelines using standard input/output pipes, particularly with FFmpeg. Supports Y4M and raw video pipe inputs, and piping VCEEncC output to FFmpeg. ```bash ffmpeg -y -i "input.mkv" -an -pix_fmt yuv420p -f yuv4mpegpipe - | VCEEncC --y4m -i - -o "output.mp4" ``` ```bash ffmpeg -y -i "input.mkv" -codec:a copy -codec:v rawvideo -pix_fmt yuv420p -f nut - | VCEEncC --avsw -i - --audio-codec aac -o "output.mp4" ``` ```bash VCEEncC -i "input.mp4" --vpp-resize 1920x1080 --audio-copy -c raw --output-format nut -o - | ffmpeg -y -f nut -i - -c:v libx264 -o output.mp4 ``` ```bash avs2pipemod -y4mp "script.avs" | VCEEncC --y4m -i - -o "output.mp4" ``` -------------------------------- ### Set Video Format (--videoformat) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Specifies the video format. Accepted values are 'undef', 'ntsc', 'component', 'pal', 'secam', and 'mac'. ```bash --videoformat undef, ntsc, component, pal, secam, mac ``` -------------------------------- ### Constant Quantization (--cqp) Source: https://context7.com/rigaya/vceenc/llms.txt Configures constant quantization (QP) for consistent quality encoding, allowing explicit QP values for I, P, and B frames. Lower QP values result in higher quality. This mode is useful for achieving a target quality level rather than a specific bitrate. ```bash VCEEncC --avhw --cqp 24 -i input.mp4 -o output.mp4 VCEEncC --avhw --cqp 20:22:24 -c hevc -i input.mp4 -o output.mp4 VCEEncC --avhw --cqp 18:20:22 -c h264 --preset slow -i input.mp4 -o output.mp4 ``` -------------------------------- ### Basic Video Encoding Commands Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Standard usage patterns for VCEEncC, including basic file conversion and hardware-accelerated decoding. ```Batchfile VCEEncC.exe [Options] -i -o VCEEncC --avhw -i "" -o "" VCEEncC --avhw --interlace tff -i "" -o "" VCEEncC -i "" -o "" ``` -------------------------------- ### Workaround for AMF Userspace Issues on Ubuntu 24.04 Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Replaces the default AMF userspace packages with a specific older generation (6.4.4 / 25.10) to resolve encoder initialization failures on certain Ubuntu 24.04 + RADV environments. This involves downloading, removing existing packages, installing the older versions, and holding them to prevent automatic updates. ```Shell mkdir -p ~/amf-6.4.4 cd ~/amf-6.4.4 wget https://repo.radeon.com/amdgpu/6.4.4/ubuntu/pool/proprietary/a/amdgpu-pro-core/amdgpu-pro-core_25.10-2203192.24.04_all.deb wget https://repo.radeon.com/amdgpu/6.4.4/ubuntu/pool/proprietary/liba/libamdenc-amdgpu-pro/libamdenc-amdgpu-pro_25.10-2203192.24.04_amd64.deb wget https://repo.radeon.com/amdgpu/6.4.4/ubuntu/pool/proprietary/a/amf-amdgpu-pro/amf-amdgpu-pro_1.4.37-2203192.24.04_amd64.deb sudo apt remove --purge -y amf-amdgpu-pro libamdenc-amdgpu-pro sudo apt install -y --allow-downgrades \ ./amdgpu-pro-core_25.10-2203192.24.04_all.deb \ ./libamdenc-amdgpu-pro_25.10-2203192.24.04_amd64.deb \ ./amf-amdgpu-pro_1.4.37-2203192.24.04_amd64.deb sudo apt-mark hold amdgpu-pro-core libamdenc-amdgpu-pro amf-amdgpu-pro ``` -------------------------------- ### Configure User Groups for OpenCL on Ubuntu Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Adds the current user to the 'render' and 'video' groups, which is necessary for OpenCL operations and potentially for VCEEncC to access GPU hardware. A reboot is required for these changes to take effect. ```Shell # OpenCL sudo gpasswd -a ${USER} render sudo gpasswd -a ${USER} video sudo reboot ``` -------------------------------- ### Multi-GPU and Parallel Encoding with VCEEncC Source: https://context7.com/rigaya/vceenc/llms.txt Explains how to utilize multiple AMD GPUs for encoding by specifying the device ID and how to enable parallel encoding to increase throughput. Includes checking available hardware devices. ```bash VCEEncC --device 0 --avhw -i input.mp4 -o output.mp4 ``` ```bash VCEEncC --device 1 --avhw -i input.mp4 -o output.mp4 ``` ```bash VCEEncC --avhw --parallel auto -i long_video.mp4 -o output.mp4 ``` ```bash VCEEncC --avhw --parallel 3 -i input.mp4 -o output.mp4 ``` ```bash VCEEncC --check-hw ``` -------------------------------- ### Check GPU Recognition Status with clinfo and vulkaninfo Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Executes `clinfo` and `vulkaninfo --summary` commands to verify that the AMD GPU is correctly recognized by the system for OpenCL and Vulkan. This is a crucial step before using VCEEncC. ```Shell # Check GPU recognition status with OpenCL clinfo # Check GPU recognition status with Vulkan vulkaninfo --summary ``` -------------------------------- ### --chapter Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configures chapter markers using external files in Nero, Apple, or Matroska formats. ```APIDOC ## --chapter ### Description Imports chapter information from a file. Supported formats include Nero, Apple (XML), and Matroska (XML). ### Parameters - **file_path** (string) - Required - Path to the chapter file. ### Request Example --chapter "chapters.xml" ``` -------------------------------- ### VPP libplacebo Shader Configuration Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Applies custom GLSL shaders using libplacebo for advanced video processing and upscaling. ```APIDOC ## --vpp-libplacebo-shader ### Description Apply custom shaders in the specified path using libplacebo. ### Parameters - **shader** (string) - Required - Target shader file path (.glsl). - **res** (int x int) - Optional - Output resolution of the filter. - **colorsystem** (string) - Optional - Color system (auto, bt709, bt2020nc, etc). - **transfer** (string) - Optional - Output transfer function (pq, hlg, linear, etc). - **resampler** (string) - Optional - Filter function for resampling. - **radius** (float) - Optional - Function radius (0.0-16.0). - **clamp** (float) - Optional - Clamping coefficient (0.0-1.0). - **taper** (float) - Optional - Taper coefficient (0.0-1.0). - **blur** (float) - Optional - Blur coefficient (0.0-100.0). - **antiring** (float) - Optional - Antiringing strength (0.0-1.0). - **linear** (bool) - Optional - Linearize image before processing. ### Request Example --vpp-libplacebo-shader shader=Anime4K_Upscale.glsl,res=2560x1440 ``` -------------------------------- ### Apply Video Debanding Filters Source: https://context7.com/rigaya/vceenc/llms.txt Demonstrates various debanding techniques using VCEEncC, including standard range-based debanding, blur-preprocessed debanding, and high-quality libplacebo-based processing. ```bash VCEEncC --avhw --vpp-deband range=15,thre=15,dither=15 -i banded.mp4 -o output.mp4 VCEEncC --avhw --vpp-deband range=31,thre=20,dither=12,blurfirst -i banded.mp4 -o output.mp4 VCEEncC --avhw --vpp-libplacebo-deband iterations=1,threshold=4.0,radius=16.0,grain_y=6.0 -i banded.mp4 -o output.mp4 VCEEncC --avhw --vpp-deband range=31,dither=12,rand_each_frame -i banded.mp4 -o output.mp4 ``` -------------------------------- ### Enable Pre-Analysis for Quality Enhancement (--pa) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Enables pre-analysis to enhance video quality, primarily supporting VBR mode. It offers several parameters to fine-tune scene change detection, quantization, and motion quality. The default is off. ```bash --pa sc=,ss=,activity-type=,paq=,taq=,lookahead=,ltr=,initqpsc=,fskip-maxqp=,caq-strength=,motion-quality= --pa sc=high,ss=high,activity-type=yuv,paq=caq,taq=on,lookahead=32 ``` -------------------------------- ### Apply Unsharp Masking Filter Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Shows how to configure the unsharp filter to enhance edges and details with a specified weight. ```bash --vpp-unsharp weight=1.0 ``` -------------------------------- ### Input/Output Options Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Options for controlling input file analysis, trimming, seeking, and output format. ```APIDOC ## --input-analyze ### Description Specify the length in seconds that libav parses for file analysis. The default is 5 (sec). If audio/subtitle tracks etc. are not detected properly, try increasing this value (e.g., 60). ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **seconds** (float) - Required - The duration in seconds for file analysis. ### Request Example `--input-analyze 60` ### Response N/A ``` ```APIDOC ## --input-probesize ### Description Set the maximum size in bytes that libav parses for file analysis. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **bytes** (int) - Required - The maximum size in bytes for file analysis. ### Request Example `--input-probesize 1048576` ### Response N/A ``` ```APIDOC ## --trim :[,:][,:]... ### Description Encode only frames in the specified range. Ranges are defined by start and end frame numbers. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **ranges** (string) - Required - Frame ranges to encode. Format: `start_frame:end_frame`. Multiple ranges can be specified separated by commas. Example: `0:1000,2000:3000` or `2000:0` (from frame 2000 to end). ### Request Example `--trim 0:1000,2000:3000` ### Response N/A ``` ```APIDOC ## --seek [:][:][.] ### Description Specifies the start time for transcoding. Seeking is fast but may not be exact. For exact seeking, use `--trim`. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **time** (string) - Required - The time to start seeking from. Format: `hh:mm:ss.ms`. Hours or minutes can be omitted. Examples: `0:01:15.400`, `1:15.4`, `75.4`. ### Request Example `--seek 0:01:15.400` ### Response N/A ``` ```APIDOC ## --seekto [:][:][.] ### Description Set the finish time for encoding. This might be inaccurate. For an exact number of frames, use `--trim`. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **time** (string) - Required - The time to finish encoding at. Format: `hh:mm:ss.ms`. Hours or minutes can be omitted. Examples: `0:01:15.400`, `1:15.4`, `75.4`. ### Request Example `--seekto 0:01:15.400` ### Response N/A ``` ```APIDOC ## --input-format ### Description Specify the input format for the avhw / avsw reader. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **format** (string) - Required - The input format (e.g., 'yuv420p'). ### Request Example `--input-format yuv420p` ### Response N/A ``` ```APIDOC ## -f, --output-format ### Description Specify the output format for the muxer. Usually determined by the output file extension, but can be forced. Available formats can be checked with [--check-formats](#--check-formats). To output H.264/HEVC as an Elementary Stream, specify "raw". ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **format** (string) - Required - The output format (e.g., 'mp4', 'raw'). ### Request Example `-f raw` ### Response N/A ``` ```APIDOC ## --video-track ### Description Set the video track to encode by resolution. Active when used with avhw/avsw reader. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **track_id** (int) - Required - The video track identifier. Positive integers for higher resolution tracks (1=highest), negative integers for lower resolution tracks (-1=lowest). ### Request Example `--video-track 2` ### Response N/A ``` ```APIDOC ## --video-streamid ### Description Set the video track to encode using its stream ID. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **stream_id** (int) - Required - The video stream ID. ### Request Example `--video-streamid 0x1e` ### Response N/A ``` ```APIDOC ## --video-tag ### Description Specify the video tag for the output file. ### Method N/A (Configuration Option) ### Endpoint N/A ### Parameters #### Query Parameters - **tag** (string) - Required - The video tag (e.g., 'hvc1'). ### Request Example `-o test.mp4 -c hevc --video-tag hvc1` ### Response N/A ``` -------------------------------- ### Apply Custom Libplacebo Shaders Source: https://context7.com/rigaya/vceenc/llms.txt Executes custom GLSL shaders for advanced tasks like AI-based upscaling (Anime4K) or specific color space conversions. ```bash VCEEncC --avhw --vpp-libplacebo-shader shader=Anime4K_Upscale_CNN_x2_L.glsl,res=2560x1440 -i anime_720p.mp4 -o anime_1440p.mp4 VCEEncC --avhw --vpp-libplacebo-shader shader=custom.glsl,res=1920x1080,colorsystem=bt709,transfer=srgb -i input.mp4 -o output.mp4 ``` -------------------------------- ### Check VCEEncC Hardware Support Source: https://github.com/rigaya/vceenc/blob/master/Install.en.md Runs the `vceencc --check-hw` command to verify that VCEEncC can successfully initialize and detect hardware acceleration support, specifically checking for H.264/HEVC codecs. ```Shell vceencc --check-hw ``` -------------------------------- ### Resolution and Resize (--output-res) Source: https://context7.com/rigaya/vceenc/llms.txt Controls the output video resolution, enabling hardware or GPU-accelerated resizing. The '--output-res' option specifies the target width and height, preserving the aspect ratio. This is useful for downscaling or upscaling video content. ```bash VCEEncC --avhw --output-res 1920x1080 -i 4k_input.mp4 -o 1080p_output.mp4 ``` -------------------------------- ### Enable Vulkan Support (Boolean) Source: https://github.com/rigaya/vceenc/blob/master/meson_options.txt This option enables Vulkan support, which is often required for VCEEnc on Linux systems. Enabling this allows VCEEnc to utilize the Vulkan graphics API. ```configuration option('enable_vulkan', type: 'boolean', value: true, description: 'Enable Vulkan support (required on Linux)') ``` -------------------------------- ### Pre-Analysis for Encoding Quality Source: https://context7.com/rigaya/vceenc/llms.txt Configure pre-analysis settings to improve encoding quality through scene change detection, lookahead, and adaptive quantization. ```bash VCEEncC --avhw --vbr 8000 --pa -i input.mp4 -o output.mp4 VCEEncC --avhw --vbr 10000 --pa sc=high,ss=high,activity-type=yuv,lookahead=32 -i input.mp4 -o output.mp4 VCEEncC --avhw --vbr 8000 --pa paq=caq,taq=2,caq-strength=high -i input.mp4 -o output.mp4 VCEEncC --avhw --vbr 12000 -c hevc --pa sc=high,ss=high,activity-type=yuv,paq=caq,taq=2,lookahead=40,motion-quality=auto -i input.mp4 -o output.mp4 ``` -------------------------------- ### Basic Encoding Command Source: https://context7.com/rigaya/vceenc/llms.txt Performs standard video transcoding using hardware acceleration. ```APIDOC ## POST /encode/basic ### Description Executes a basic hardware-accelerated transcoding operation from an input file to an output file. ### Method POST ### Endpoint VCEEncC --avhw -i [input] -o [output] ### Parameters #### Query Parameters - **--avhw** (flag) - Required - Enables hardware decoding and encoding pipeline. - **-i** (string) - Required - Path to the input video file. - **-o** (string) - Required - Path to the output video file. ### Request Example VCEEncC --avhw -i input.mp4 -o output.mp4 ### Response #### Success Response (0) - **Exit Code** (integer) - Returns 0 on successful encoding completion. ``` -------------------------------- ### VPP Resizing and Sharpness Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configures the video resizing algorithm and sharpness settings for specific scalers. ```APIDOC ## --vpp-resize ### Description Specify the algorithm used for resizing the video. ### Parameters - **algorithm** (string) - Required - Options: auto, advanced, bilinear, bicubic, spline16/36/64, lanczos2/3/4, amf_bilinear, amf_bicubic, amf_fsr. ## --vpp-scaler-sharpness ### Description Sets the sharpness for the amf_fsr scaler. ### Parameters - **value** (float) - Required - Range: 0.0-2.0 (default 0.5). ``` -------------------------------- ### VCEEnc: Apply 3D LUT for Color Transformation Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Applies a 3D Look-Up Table (LUT) to the input video for color transformation. Currently, only '.cube' files are supported. The interpolation method for the LUT can also be specified. ```bash --vpp-colorspace lut3d=path/to/your/lut.cube,lut3d_interp=trilinear ``` -------------------------------- ### Enable VapourSynth Support (Boolean) Source: https://github.com/rigaya/vceenc/blob/master/meson_options.txt This option controls whether VapourSynth support is enabled in VCEEnc. Setting it to true allows VCEEnc to utilize VapourSynth for video processing. ```configuration option('enable_vapoursynth', type: 'boolean', value: true, description: 'Enable VapourSynth support') ``` -------------------------------- ### Set Audio Metadata (VCEEnc) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configures metadata for audio tracks, allowing copying from input, clearing existing metadata, or setting specific values like title and language. Tracks can be selected by index or language. ```bash --audio-metadata 1?copy --audio-metadata 1?clear --audio-metadata 1?title="audio title" --audio-metadata 1?language=jpn ``` -------------------------------- ### Variable and Constant Bitrate Encoding (--vbr, --cbr) Source: https://context7.com/rigaya/vceenc/llms.txt Implements rate control modes for streaming and file size targets. VBR optimizes quality for a target bitrate, while CBR ensures a constant bitrate suitable for streaming. QVBR targets a specific quality level, and VBRHQ offers high-quality VBR with pre-analysis options. ```bash VCEEncC --avhw --vbr 8000 -i input.mp4 -o output.mp4 VCEEncC --avhw --cbr 6000 -c h264 -i input.mp4 -o output.mp4 VCEEncC --avhw --vbr 8000 --max-bitrate 12000 -i input.mp4 -o output.mp4 VCEEncC --avhw --qvbr 25 -c hevc -i input.mp4 -o output.mp4 VCEEncC --avhw --vbrhq 10000 --pa lookahead=32,sc=high -i input.mp4 -o output.mp4 ``` -------------------------------- ### Enable AviSynth Support (Boolean) Source: https://github.com/rigaya/vceenc/blob/master/meson_options.txt This option controls whether AviSynth support is enabled in VCEEnc. Setting it to true allows VCEEnc to utilize AviSynth for video processing. ```configuration option('enable_avisynth', type: 'boolean', value: true, description: 'Enable AviSynth support') ``` -------------------------------- ### Copy Chapters (VCEEnc) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Copies chapters directly from the input file to the output file. ```bash --chapter-copy ``` -------------------------------- ### Configure Audio-Video Synchronization Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Controls audio-video synchronization. Options include 'auto' (default), 'forcecfr' to maintain constant frame rate by duplicating/removing frames, and 'vfr' to honor source timestamps for variable frame rate output. ```bash --avsync ``` ```bash - auto (default) - forcecfr Check pts from the input file, and duplicate or remove frames if required to keep CFR, so that synchronization with the audio could be maintained. Please note that this could not be used with --trim. - vfr Honor source timestamp and enable vfr output. Only available for avsw/avhw reader, and could not be used with --trim. ``` -------------------------------- ### Set Dolby Vision RPU Parameters Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configures specific parameters for the Dolby Vision RPU, such as cropping active area offsets. ```bash --dolby-vision-rpu-prm crop=true ``` -------------------------------- ### VCEEnc: Apply HDR to SDR Tone Mapping (Mobius) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Applies HDR to SDR conversion using the Mobius tone-mapping algorithm. This method aims to preserve contrast and colors, with potential removal of bright details. Customizable parameters include 'transition' and 'peak' brightness. ```bash --vpp-colorspace hdr2sdr=mobius,transition=0.3,peak=1.0 ``` -------------------------------- ### OpenCL Headers Include Path (String) Source: https://github.com/rigaya/vceenc/blob/master/meson_options.txt This option specifies an additional include path for OpenCL headers. It is used when compiling VCEEnc with OpenCL support, allowing the compiler to find necessary header files. ```configuration option('opencl_headers', type: 'string', value: '', description: 'Additional include path for OpenCL headers') ``` -------------------------------- ### Timecode and Timebase Options Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Options related to handling timecode files and setting the timebase for transcoding. ```APIDOC ## --timecode [<string>] ### Description Write timecode file to the specified path. If the path is not set, it will be written to ".timecode.txt". ### Method N/A (Command-line option) ### Endpoint N/A ### Parameters #### Query Parameters - **timecode** (string) - Optional - Path to write the timecode file. ## --tcfile-in <string> ### Description Read timecode file for input frames, can be used with readers except avhw. ### Method N/A (Command-line option) ### Endpoint N/A ### Parameters #### Query Parameters - **tcfile-in** (string) - Required - Path to the input timecode file. ## --timebase <int>/<int> ### Description Set timebase for transcoding and timecode file. ### Method N/A (Command-line option) ### Endpoint N/A ### Parameters #### Query Parameters - **timebase** (int/int) - Required - The timebase value (numerator/denominator). ``` -------------------------------- ### Add Overlays and Padding Source: https://context7.com/rigaya/vceenc/llms.txt Adds padding to video frames or overlays images and videos with alpha transparency and chroma keying support. ```bash VCEEncC --avhw --vpp-pad 100,50,100,50 -i input.mp4 -o output.mp4 VCEEncC --avhw --vpp-overlay file=logo.png,pos=1620x780,size=300x300 -i input.mp4 -o output.mp4 VCEEncC --avhw --vpp-overlay file=watermark.png,pos=100x100,alpha=0.7 -i input.mp4 -o output.mp4 VCEEncC --avhw --vpp-overlay file=overlay.mp4,pos=0x800,alpha_mode=lumakey,lumakey_threshold=0.0,lumakey_tolerance=0.1 -i input.mp4 -o output.mp4 ``` -------------------------------- ### Software Decoder Input (--avsw) Source: https://context7.com/rigaya/vceenc/llms.txt Employs libavcodec for software decoding, offering broader format compatibility while still leveraging hardware encoding. This is useful for formats not supported by hardware decoding. It also allows specifying audio codecs and bitrates for the output. ```bash VCEEncC --avsw -i "input.mkv" -o "output.mp4" VCEEncC --avsw h264_cuvid -i "input.mp4" -o "output.mp4" VCEEncC --avsw -i "input.mkv" --audio-codec aac --audio-bitrate 256 -o "output.mp4" ``` -------------------------------- ### Video Format (--videoformat) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Sets the video format. ```APIDOC ## --videoformat ### Description Set the video format. ### Parameters #### Query Parameters - **videoformat** (string) - Optional - Video format (undef, ntsc, component, pal, secam, mac). ``` -------------------------------- ### Set Global Metadata for Output Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Sets global metadata for the output file. Metadata can be copied from the input, cleared, or explicitly set with key-value pairs like 'title' or 'language'. ```bash --metadata or = ``` ```bash Example1: copy metadata from input file --metadata copy Example2: clear metadata from input file --metadata clear Example3: set metadata --metadata title="video title" --metadata language=jpn ``` -------------------------------- ### Set Sample Aspect Ratio (--sar) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configures the Sample Aspect Ratio (SAR) for the output video, specified as a ratio of two integers (width:height). ```bash --sar : ``` -------------------------------- ### --vpp-colorspace Color Space Conversion Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md This section details the usage of the --vpp-colorspace option for converting video color spaces. It supports various parameters for matrix, color primaries, transfer characteristics, and range. ```APIDOC ## --vpp-colorspace Color Space Conversion ### Description Converts the colorspace of the video. This option is available on the x64 version of VCEEnc. Values for parameters can be copied from the input file for the "input" setting. ### Method Command-line option ### Endpoint N/A (Command-line tool option) ### Parameters #### Query Parameters - **matrix** (string) - Optional - Specifies the color matrix conversion from: `bt709`, `smpte170m`, `bt470bg`, `smpte240m`, `YCgCo`, `fcc`, `GBR`, `bt2020nc`, `bt2020c`, `auto`. - **colorprim** (string) - Optional - Specifies the color primaries conversion from: `bt709`, `smpte170m`, `bt470m`, `bt470bg`, `smpte240m`, `film`, `bt2020`, `auto`. - **transfer** (string) - Optional - Specifies the transfer characteristics conversion from: `bt709`, `smpte170m`, `bt470m`, `bt470bg`, `smpte240m`, `linear`, `log100`, `log316`, `iec61966-2-4`, `iec61966-2-1`, `bt2020-10`, `bt2020-12`, `smpte2084`, `arib-std-b67`, `auto`. - **range** (string) - Optional - Specifies the video range conversion from: `limited`, `full`, `auto`. - **lut3d** (string) - Optional - Applies a 3D LUT to the input video. Currently supports `.cube` files only. - **lut3d_interp** (string) - Optional - Specifies the interpolation method for 3D LUTs: `nearest`, `trilinear`, `tetrahedral`, `pyramid`, `prism`. - **hdr2sdr** (string) - Optional - Enables HDR to SDR conversion using selected tone-mapping. Options include `none` (default), `hable`, `mobius`, `reinhard`, `bt2390`. - For `hable`: Additional parameters `a`, `b`, `c`, `d`, `e`, `f` can be specified (defaults: a=0.22, b=0.3, c=0.1, d=0.2, e=0.01, f=0.3). - For `mobius`: Parameters `transition` (float, default: 0.3) and `peak` (float, default: 1.0) can be set. - For `reinhard`: Parameters `contrast` (float, default: 0.5) and `peak` (float, default: 1.0) can be set. - **source_peak** (float) - Optional - Default: 1000.0. Specifies the source peak brightness for HDR to SDR conversion. - **ldr_nits** (float) - Optional - Default: 100.0. Specifies the target brightness (nits) for HDR to SDR conversion. - **desat_base** (float) - Optional - Default: 0.18. Offset for the desaturation curve used in HDR to SDR conversion. - **desat_strength** (float) - Optional - Default: 0.75. Strength of the desaturation curve. 0.0 disables desaturation, 1.0 tends towards white for overly bright colors. - **desat_exp** (float) - Optional - Default: 1.5. Exponent of the desaturation curve, controlling when desaturation starts. ### Request Example ``` --vpp-colorspace matrix=smpte170m:bt709 --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0 --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0,a=0.22,b=0.3,c=0.1,d=0.2,e=0.01,f=0.3 ``` ### Response N/A (Command-line tool option) #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### VCEEnc: Apply HDR to SDR Tone Mapping (Hable) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Applies HDR to SDR conversion using the Hable tone-mapping algorithm. This allows for preserving both bright and dark details, though it may result in a darker output. Parameters like 'source_peak', 'ldr_nits', and tone-mapping specific coefficients (a,b,c,d,e,f) can be adjusted. ```bash --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0 ``` ```bash --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0,a=0.22,b=0.3,c=0.1,d=0.2,e=0.01,f=0.3 ``` -------------------------------- ### Set Color Matrix (--colormatrix) Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Determines the color matrix for the video. 'auto' copies from the input when using specific readers. A wide range of standard color matrices are supported. ```bash --colormatrix undef, auto, bt709, smpte170m, bt470bg, smpte240m, YCgCo, fcc, GBR, bt2020nc, bt2020c ``` -------------------------------- ### Color Space Conversion with VCEEncC (--vpp-colorspace) Source: https://context7.com/rigaya/vceenc/llms.txt Modifies video color spaces, matrices, and primaries for compatibility or format conversion. Supports applying 3D LUTs and converting color ranges. ```bash VCEEncC --avhw --vpp-colorspace matrix=smpte170m:bt709 -i input.mp4 -o output.mp4 ``` ```bash VCEEncC --avhw --vpp-colorspace matrix=bt2020nc:bt709,colorprim=bt2020:bt709,transfer=smpte2084:bt709 -i hdr.mp4 -o sdr.mp4 ``` ```bash VCEEncC --avhw --vpp-colorspace lut3d=my_lut.cube,lut3d_interp=tetrahedral -i input.mp4 -o output.mp4 ``` ```bash VCEEncC --avhw --vpp-colorspace range=limited:full -i input.mp4 -o output.mp4 ``` -------------------------------- ### Metadata and Muxing Options Source: https://github.com/rigaya/vceenc/blob/master/VCEEncC_Options.en.md Configuration for global metadata, muxer-specific parameters, and stream attachments. ```APIDOC ## -m, --mux-option : ### Description Pass optional parameters to the muxer. ### Parameters - **option_name** (string) - Required - Name of the muxer option - **option_value** (string) - Required - Value for the option ### Request Example -m hls_time:5 -m hls_segment_filename:test_%03d.ts ## --metadata ### Description Set global metadata for the output file. ### Parameters - **action** (string) - Required - 'copy', 'clear', or 'key=value' pair ### Request Example --metadata title="video title" --metadata language=jpn ```