### HandBrake Installation Verification Output Source: https://docs.tdarr.io/blog/how-to-install-handbrake Example output shown after successfully installing HandBrake on Linux/Ubuntu, confirming the version and successful initialization. ```text [18:21:41] Nvenc version 11.1 [18:21:41] hb_init: starting libhb thread [18:21:41] thread 7f45593a4700 started ("libhb") HandBrake 1.3.3 HandBrake has exited. ``` -------------------------------- ### Install FFprobe on Linux/Ubuntu Source: https://docs.tdarr.io/blog/how-to-install-ffprobe-and-gather-data-from-a-media-file Installs FFprobe using the apt package manager. Verifies the installation by checking the FFprobe version. ```bash sudo apt-get update sudo apt-get install ffprobe ffprobe -version ``` -------------------------------- ### Log Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_z80t_keep_original_date Example of setting the 'log' input to true to enable logging to the console. ```text true ``` -------------------------------- ### Container Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MC93_Migz1Remux Example of specifying the output container for remuxing. MKV is recommended. ```text mkv ``` ```text mp4 ``` -------------------------------- ### CLI Tool Selection Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_075a_Transcode_Customisable Choose the command-line interface tool to use for transcoding. Examples include 'handbrake' or 'ffmpeg'. ```text handbrake ``` ```text ffmpeg ``` -------------------------------- ### Example Quantity Input (Decimal) Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Arithmetic%20Flow%20Variable This example shows how to provide a decimal value as the quantity for an arithmetic operation. ```text 5.5 ``` -------------------------------- ### Example Quantity Input (Integer) Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Arithmetic%20Flow%20Variable This example demonstrates providing an integer value as the quantity for an arithmetic operation. ```text 1 ``` -------------------------------- ### Example Variable Input Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Arithmetic%20Flow%20Variable This example shows how to specify an existing flow variable, such as 'user.transcodeStage', to be used in an arithmetic operation. ```text {{{args.variables.user.transcodeStage}}} ``` -------------------------------- ### Initialize NodeJS Project and Install FFmpeg Source: https://docs.tdarr.io/blog/how-to-run-ffmpeg-using-nodejs Set up a new NodeJS project by creating a directory, initializing npm, and installing the 'ffmpeg-static' package. This prepares your environment for running FFmpeg commands. ```bash mkdir ffmpeg-tutorial cd ffmpeg ffmpeg-tutorial npm init # enter ffmpeg-tutorial as the name and then skip through the rest npm i -s ffmpeg-static mkdir src touch src/main.js mkdir data ``` -------------------------------- ### Install Packages Input Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_e5c3_CnT_Add_Subtitles This input requires the value 'yes' to allow the plugin to install necessary Node.js modules like 'iso-639-2'. ```text Name: install_packages Type: string Tooltip: Please change this to "yes", it allows the plugin to install the required nodemodule. (iso-639-2) Example: yes ``` -------------------------------- ### Bitrate Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_a9hd_FFMPEG_Transcode_Specific_Audio_Stream_Codecs Optionally specify the bitrate for the transcoded audio streams. Examples include '384k' and '640k'. ```text Name: bitrate Type: string Tooltip: Specify the transcoded audio bitrate (optional): 384k 640k Example: 640k ``` -------------------------------- ### Install FFmpeg (includes FFprobe) on macOS Source: https://docs.tdarr.io/blog/how-to-install-ffprobe-and-gather-data-from-a-media-file Installs FFmpeg, which includes FFprobe, using the Homebrew package manager. Verifies the installation by checking the FFprobe version. ```bash brew install ffmpeg ffprobe -version ``` -------------------------------- ### Install FFmpeg on Linux/Ubuntu Source: https://docs.tdarr.io/blog/how-to-install-ffmpeg Use apt-get to update package lists and install FFmpeg on Debian-based Linux distributions. ```bash sudo apt-get update sudo apt-get install ffmpeg ffmpeg -version ``` -------------------------------- ### Apprise Command Examples Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Apprise Examples of Apprise command-line arguments for sending notifications. These commands specify notification titles, bodies, and target URLs. ```bash -vv -t "Success" -b "File {{{args.inputFileObj._id}}}" "discord://xxx/xxxx" ``` ```bash -vv -t "Processing" -b "File {{{args.inputFileObj._id}}}" "discord://{{{args.userVariables.global.discord_webhook}}}" ``` -------------------------------- ### FFmpeg Custom Arguments Examples Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_handbrake_ffmpeg_custom Examples demonstrating how to use custom arguments with FFmpeg. The '' separator is crucial for distinguishing input and output arguments. ```bash -r 1-r 24 ``` ```bash -sn -c:v copy -c:a copy ``` ```bash -c:v libx265 -crf 23 -ac 6 -c:a aac -preset veryfast ``` ```bash -map 0 -c copy -c:v libx265 -c:a aac ``` ```bash -c:v h264_cuvid-c:v hevc_nvenc -preset slow -c:a copy ``` -------------------------------- ### Example Quantity Input (Negative) Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Arithmetic%20Flow%20Variable This example illustrates using a negative number as the quantity for an arithmetic operation. ```text -10 ``` -------------------------------- ### Codec Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_jordy_filter_by_audio_codec_and_channels Enter a comma-separated list of audio codecs to be processed. Leave blank if using codecsToNotProcess. ```text Name: codecsToProcess Type: string Tooltip: Enter a comma separated list of audio codecs to be processed. Leave blank if using codecsToNotProcess ``` -------------------------------- ### Audio Codec Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MP01_MichPasCleanSubsAndAudioCodecs Example of how to specify audio codecs to be removed. Multiple codecs can be separated by commas. ```text Name: tag_audio_codecs Type: string Tooltip: Specify all audio codecs you'd like to have removed. Example: truehd Example: xxx,yyy ``` -------------------------------- ### Create a Video Sample with Specific Start Time and Duration Source: https://docs.tdarr.io/blog/how-to-create-a-sample-of-a-video-using-ffmpeg This command creates a video sample starting at 11 seconds and running for 43 seconds. It's useful for isolating specific parts of a video. ```bash ffmpeg -ss 00:00:11 -i "C:\Transcode\input.mkv" -t 00:00:43 -map 0:v? -map 0:a? -map 0:s? -map 0:d? -c copy "C:\Transcode\output.mkv" ``` -------------------------------- ### Example Node Directory Structure Source: https://docs.tdarr.io/docs/other/auto-updates When running multiple Tdarr Nodes on the same machine, ensure each Node is installed in a separate directory to prevent file conflicts during simultaneous auto-updates. ```plaintext C:/Users/Bob/Documents/Tdarr1/Tdarr_Node/Tdarr_Node.exe C:/Users/Bob/Documents/Tdarr2/Tdarr_Node/Tdarr_Node.exe ``` -------------------------------- ### Channels Order Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_re_order_all_streams_v2 Specify the order of channel configurations, separated by commas. Leave blank to disable. ```text 7.1,5.1,2,1 ``` -------------------------------- ### Install Latest NodeJS 16 Source: https://docs.tdarr.io/blog/how-to-install-nodejs Installs the latest available version of NodeJS under the 16 major version. After installation, follow the terminal's prompt to use this version. ```bash nvm install 16 ``` -------------------------------- ### Install HandBrake on Linux/Ubuntu Source: https://docs.tdarr.io/blog/how-to-install-handbrake Installs HandBrake CLI and GTK on Linux/Ubuntu systems using a PPA. This is useful for users who prefer to manage software through apt. ```bash sudo add-apt-repository ppa:stebbins/handbrake-releases sudo apt-get update sudo apt-get install handbrake-cli handbrake-gtk HandBrakeCLI --version ``` -------------------------------- ### Set FFmpeg Path in JSON (Forward Slash Example) Source: https://docs.tdarr.io/docs/installation/windows-linux-macos Example of setting the ffmpegPath in a JSON configuration file, using forward slashes which are also valid. ```json { "ffmpegPath": "C:/ffmpeg/ffmpeg.exe" } ``` -------------------------------- ### Set FFmpeg Path in JSON (Windows Backslash Example) Source: https://docs.tdarr.io/docs/installation/windows-linux-macos Example of setting the ffmpegPath in a JSON configuration file, demonstrating the use of double backslashes for Windows paths. ```json { "ffmpegPath": "C:\\ffmpeg\\ffmpeg.exe" } ``` -------------------------------- ### Force Conform Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MC93_Migz1Remux Example of the boolean input to force file conformance to container requirements. This may drop specific subtitle or data streams. ```text true ``` ```text false ``` -------------------------------- ### Output Container Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_075a_Transcode_Customisable Define the desired output container format for the transcoded file. Common examples include .mp4, .mp3, and .mkv. ```text .mp4 ``` ```text .mp3 ``` ```text .mkv ``` -------------------------------- ### Check NodeJS Installation Source: https://docs.tdarr.io/blog/how-to-install-nodejs Verifies that NodeJS has been installed and is accessible in the current terminal session by displaying the active version. ```bash node -v ``` -------------------------------- ### Install FFmpeg on macOS using Homebrew Source: https://docs.tdarr.io/blog/how-to-install-ffmpeg Install FFmpeg on macOS using the Homebrew package manager and link it for use. ```bash brew install ffmpeg brew link ffmpeg ffmpeg -version ``` -------------------------------- ### Codecs Order Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_re_order_all_streams_v2 Specify the order of codecs, separated by commas. Leave blank to disable. ```text aac,ac3 ``` -------------------------------- ### Output Container Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable Defines the desired output container format for the transcoded file. Common examples include .mp4 and .mkv. ```text Name: output_container Type: string Tooltip: Enter the output container of the new file Example: .mp4 Example: .mkv ``` -------------------------------- ### Custom Queue Tags Input Examples Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Tags-%20Requeue Provides examples of custom queue tags, including required worker types and additional tags. Note the format and the use of user variables. ```text requireGPU:nvenc,tag1,tag2 requireCPUorGPU,tag1,tag2 requireCPU,tag1,tag2 requireGPU,tag1,tag2,tag3 requireGPU,tag1 requireGPU,{{{args.userVariables.global.test}}} requireCPUorGPU,tag1,tag2 ``` -------------------------------- ### Example librarySettings Object Source: https://docs.tdarr.io/docs/plugins/classic-plugins/plugin-components/parameters/library-settings This object contains details of the library which the file was scanned in. It includes configuration for scanning, processing, and plugin integration. ```json { _id: '0foppn1Hf', name: 'Test', priority: 0, folder: 'C:/Transcode/Source Folder', foldersToIgnore: 'segments', folderWatchScanInterval: 30, scannerThreadCount: 2, cache: 'C:/Transcode/Cache Folder', output: 'C:/Transcode/Output Folder', folderToFolderConversion: false, folderToFolderConversionDeleteSource: false, copyIfConditionsMet: false, container: '.mkv', containerFilter: 'mkv,mp4,mov,m4v,mpg,mpeg,avi,flv,webm,wmv,vob,evo,iso,m2ts,ts,mp3,aac,m4a,wav,flac,ogg,pcm,aiff,aac,wma,alac', createdAt: 1620557629117, folderWatching: false, useFsEvents: false, scheduledScanFindNew: false, processLibrary: true, scanOnStart: false, exifToolScan: true, mediaInfoScan: true, closedCaptionScan: false, scanButtons: true, scanFound: 'Files found:0', expanded: true, navItemSelected: 'navSourceFolder', pluginIDs: [ [Object], [Object] ], pluginCommunity: false, handbrake: true, ffmpeg: false, handbrakescan: true, ffmpegscan: false, preset: '--preset-import-file "C:/app/testpreset.json" -Z "My Preset"', decisionMaker: { settingsPlugin: true, settingsVideo: false, videoExcludeSwitch: true, video_codec_names_exclude: [Array], video_size_range_include: [Object], video_height_range_include: [Object], video_width_range_include: [Object], settingsAudio: false, audioExcludeSwitch: true, audio_codec_names_exclude: [Array], audio_size_range_include: [Object] }, schedule: [...], totalHealthCheckCount: 22, totalTranscodeCount: 765, sizeDiff: 0.4010190861299634, holdNewFiles: false, holdFor: 3600, local: true, community: true, pluginStackOverview: false } ``` -------------------------------- ### Install and Use NodeJS 14 Source: https://docs.tdarr.io/blog/how-to-install-nodejs Installs NodeJS version 14 and then sets it as the active version for the current terminal session. This demonstrates switching to a different major version. ```bash nvm install 14 nvm use 14.19.3 ``` -------------------------------- ### Subtitle Codec Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MP01_MichPasCleanSubsAndAudioCodecs Example of how to specify subtitle codecs to be removed. Multiple codecs can be separated by commas. ```text Name: tag_subtitle_codecs Type: string Tooltip: Specify key words here for subtitle tracks you'd like to have removed. Example: hdmv_pgs_subtitle Example: hdmv_pgs_subtitle,dvd_subtitle ``` -------------------------------- ### Codec Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_a9hd_FFMPEG_Transcode_Specific_Audio_Stream_Codecs Specify the audio codecs to be transcoded. Multiple codecs can be separated by commas. ```text Name: codecs_to_transcode Type: string Tooltip: Specifiy the codecs which you'd like to transcode Example: ac3 Example: eac3,ac3,aac ``` -------------------------------- ### Tdarr Server JSON Configuration Example Source: https://docs.tdarr.io/docs/installation/variables Example JSON file for configuring Tdarr server settings, including ports, IP address, authentication, and paths. ```json { "serverPort": "8266", "webUIPort": "8265", "serverIP": "0.0.0.0", "auth": false, "openBrowser": true, "maxLogSizeMB": 10, "handbrakePath": "", "ffmpegPath": "" } ``` -------------------------------- ### FFmpeg Preset Input Examples Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_da11_Dallas_FFmpeg_Presets_H264_MP4 Examples of the 'FFmpeg_preset' string input for the Tdarr plugin. This input determines the speed and compression level of the FFmpeg transcoding process. ```string slow ``` ```string medium ``` ```string fast ``` ```string veryfast ``` -------------------------------- ### FFmpeg Transcode Arguments Examples Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_075a_Transcode_Customisable Specify FFmpeg transcode arguments, separating input and output parameters with a comma. Examples cover stream copying and codec selection. ```text -r 1,-r 24 ``` ```text ,-sn -c:v copy -c:a copy ``` ```text ,-c:v lib265 -crf 23 -ac 6 -c:a aac -preset veryfast ``` ```text ,-map 0 -c copy -c:v libx265 -c:a aac ``` ```text -c:v h264_cuvid,-c:v hevc_nvenc -preset slow -c:a copy ``` -------------------------------- ### Bitrate Cutoff Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_bsh1_Boosh_FFMPEG_QSV_HEVC Sets a minimum video bitrate threshold. Files below this bitrate will not be processed. ```text 2500 ``` ```text 1500 ``` -------------------------------- ### HandBrake Preset Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable Specifies the HandBrake preset to use for transcoding. Refer to the HandBrake documentation for a list of available presets. ```text Name: handbrake_preset Type: string Tooltip: Enter the name of a HandBrake preset. You can learn more about HandBrake presets here: https://handbrake.fr/docs/en/latest/technical/official-presets.html Example: Very Fast 1080p30 Example: Fast 1080p30 ``` -------------------------------- ### Example FFmpeg Encoder Output Source: https://docs.tdarr.io/blog/how-to-install-ffmpeg Sample output from the 'ffmpeg -encoders' command, showing available video encoders and their capabilities. ```text V..... libx265 libx265 H.265 / HEVC (codec hevc) V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc) V..... hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc) ``` -------------------------------- ### Example Statistics from Backup Source: https://docs.tdarr.io/docs/restoring-statistics These are example values found in a StatisticsJSONDB.txt file within a Tdarr backup. Note the format and the keys for transcode count, health check count, and size difference. ```json "totalTranscodeCount": 1000, "totalHealthCheckCount": 1000, "sizeDiff": 2.0002973843365907669, ``` -------------------------------- ### Max Average Bitrate Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_bsh1_Boosh_FFMPEG_QSV_HEVC Sets a maximum average video bitrate. This caps the target average bitrate during encoding. ```text 4000 ``` ```text 3000 ``` -------------------------------- ### Tdarr Node JSON Configuration Example Source: https://docs.tdarr.io/docs/installation/variables Example JSON file for configuring a Tdarr node, including node name, server URL, node type, priority, and path translators. ```json { "nodeName": "MyNode", "serverURL": "http://192.168.1.100:8266", "nodeType": "mapped", "priority": 0, "pathTranslators": [ { "server": "/media", "node": "/mnt/media" } ] } ``` -------------------------------- ### Target Codec Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_a9hd_FFMPEG_Transcode_Specific_Audio_Stream_Codecs Specify the desired audio codec for the transcoded streams. A list of supported codecs is provided. ```text Name: codec Type: string Tooltip: Specify the codec you'd like to transcode into: aac ac3 eac3 dts flac mp2 mp3 truehd Example: eac3 ``` -------------------------------- ### Process Order Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_re_order_all_streams_v2 Specify the order in which stream properties should be processed for re-ordering. Place the most important properties last. ```text codecs,channels,languages,streamTypes ``` -------------------------------- ### HandBrake Transcode Arguments Examples Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_075a_Transcode_Customisable Provide HandBrake-specific transcode arguments. This includes quality settings, presets, and options for subtitles and audio. ```text -e x264 -q 20 -B ``` ```text -Z "Very Fast 1080p30" ``` ```text -Z "Fast 1080p30" -e nvenc_h265 ``` ```text -Z "Very Fast 1080p30" --all-subtitles --all-audio ``` ```text -Z "Very Fast 480p30" ``` ```text --preset-import-file "C:UsersHaveAGitGatDesktop testpreset.json" -Z "My Preset" ``` -------------------------------- ### Stream Types Order Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_re_order_all_streams_v2 Specify the order of stream types, separated by commas. Leave blank to disable. ```text video,audio,subtitle ``` -------------------------------- ### Test FFmpeg NVENC Transcoding in Docker Source: https://docs.tdarr.io/docs/installation/docker/hardware-transcoding Use this command to verify your NVENC setup for FFmpeg within a Tdarr Docker container. Ensure NVIDIA container toolkit is installed on the host if using Ubuntu/Debian. ```bash docker run \ -e "NVIDIA_DRIVER_CAPABILITIES=all" \ -e "NVIDIA_VISIBLE_DEVICES=all" \ --gpus=all \ ghcr.io/haveagitgat/tdarr_node:latest \ /bin/bash -e \ -c 'curl \ -o /tmp/sample.mkv \ -l https://samples.tdarr.io/api/v1/samples/sample__1080__libx264__aac__30s__video.mkv; \ ffmpeg \ -i /tmp/sample.mkv \ -c:v:0 hevc_nvenc \ /tmp/sample-out.mkv' ``` -------------------------------- ### Install HandBrake on macOS using HomeBrew Source: https://docs.tdarr.io/blog/how-to-install-handbrake Installs HandBrake on macOS using the HomeBrew package manager. This command also includes a check for successful installation. ```bash brew install handbrake HandBrakeCLI --version ``` -------------------------------- ### Codec Exclusion Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_075a_Transcode_Customisable Specify codecs to exclude from transcoding to prevent infinite loops. Multiple codecs can be entered, separated by commas. ```text hevc ``` ```text mp3,aac,dts ``` ```text h264,vp9 ``` -------------------------------- ### Channels Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_jordy_filter_by_audio_codec_and_channels Enter a comma-separated list of channel counts to be processed (e.g., 1=mono, 2=stereo, 6=5.1, 8=7.1). Leave blank to ignore channel count. ```text Name: channelsToProcess Type: string Tooltip: Enter a comma separated list of channel counts to be processed (1=mono, 2=stereo, 6=5.1, 8=7.1). Leave blank to ignore channel count. ``` -------------------------------- ### Create a 30-Second Video Sample Source: https://docs.tdarr.io/blog/how-to-create-a-sample-of-a-video-using-ffmpeg Use this command to create a video sample starting from the beginning (00:00:00) and lasting for 30 seconds. It copies the streams without re-encoding. ```bash ffmpeg -ss 00:00:0 -i "C:\Transcode\input.mkv" -t 00:00:30 -map 0:v? -map 0:a? -map 0:s? -map 0:d? -c copy "C:\Transcode\output.mkv" ``` -------------------------------- ### HandBrake Command with Preset Import Source: https://docs.tdarr.io/docs/library-setup/transcode-options/handbrake-presets Example of a HandBrake command that imports a custom preset file. Ensure the preset file path is accessible on the server. ```bash --preset-import-file "Y:/media/testpreset.json" -Z "My Preset" ``` -------------------------------- ### Tdarr Plugin Input Example: Channel Counts Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_00td_action_remove_audio_by_channel_count Example of how to specify channel counts for audio stream removal in the Tdarr plugin configuration. ```text 8,6 ``` -------------------------------- ### Install Tdarr Dependencies on Linux Source: https://docs.tdarr.io/docs/installation/windows-linux-macos Commands to install necessary packages for Tdarr on Debian-based Linux systems, including mkvtoolnix, Tesseract, Handbrake, and FFmpeg. ```bash sudo apt-get install mkvtoolnix (For mkvpropedit) sudo apt-get install libtesseract-dev (Optional - if wanting to use CCExtractor to check files for closed captions) sudo apt-get install handbrake-cli sudo apt-get install ffmpeg (Optional - if not wanting to use the ffmpeg that Tdarr comes with) ``` -------------------------------- ### Use Specific NodeJS Version Source: https://docs.tdarr.io/blog/how-to-install-nodejs Activates a previously installed NodeJS version for the current terminal session. Ensure the version number matches an installed version. ```bash nvm use 16.15.0 ``` -------------------------------- ### Example File Object Structure Source: https://docs.tdarr.io/docs/plugins/classic-plugins/plugin-components/parameters/file This object contains detailed information about a media file, including its path, container format, codec details, file size, and metadata extracted by various tools. ```json { "_id": "C:/Transcode/source folder/x265_12bit.mkv", "file": "C:/Transcode/source folder/x265_12bit.mkv", "DB": "0foppn1Hf", "hasClosedCaptions": false, "container": "mkv", "ffProbeRead": "success", "ffProbeData": { "streams": [ { "index": 0, "codec_name": "hevc", "codec_long_name": "H.265 / HEVC (High Efficiency Video Coding)", "profile": "Rext", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 2, "sample_aspect_ratio": "1:1", "display_aspect_ratio": "16:9", "pix_fmt": "yuv420p12le", "level": 120, "color_range": "tv", "color_space": "bt709", "color_transfer": "bt709", "color_primaries": "bt709", "chroma_location": "left", "refs": 1, "r_frame_rate": "25/1", "avg_frame_rate": "25/1", "time_base": "1/1000", "start_pts": 21, "start_time": "0.021000", "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "DURATION": "00:00:21.341000000" } }, { "index": 1, "codec_name": "aac", "codec_long_name": "AAC (Advanced Audio Coding)", "profile": "LC", "codec_type": "audio", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "sample_fmt": "fltp", "sample_rate": "48000", "channels": 2, "channel_layout": "stereo", "bits_per_sample": 0, "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/1000", "start_pts": 0, "start_time": "0.000000", "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "title": "Stereo", "DURATION": "00:00:21.375000000" } } ] }, "file_size": 5.5908203125, "video_resolution": "1080p", "fileMedium": "video", "video_codec_name": "hevc", "audio_codec_name": "", "lastPluginDetails": "none", "processingStatus": false, "createdAt": 1641046232238, "bit_rate": 2194114.619883041, "statSync": { "dev": 3832468976, "mode": 33060, "nlink": 1, "uid": 0, "gid": 0, "rdev": 0, "blksize": 4096, "ino": 16607023626295196, "size": 5862400, "blocks": 11456, "atimeMs": 1641046232224.5464, "mtimeMs": 1568393675000, "ctimeMs": 1623257005040.535, "birthtimeMs": 1640954833759.324, "atime": "2022-01-01T14:10:32.225Z", "mtime": "2019-09-13T16:54:35.000Z", "ctime": "2021-06-09T16:43:25.041Z", "birthtime": "2021-12-31T12:47:13.759Z" }, "HealthCheck": "", "TranscodeDecisionMaker": "", "lastHealthCheckDate": 0, "holdUntil": 0, "lastTranscodeDate": 0, "infoLog": "", "bumped": false, "history": "", "oldSize": 0, "newSize": 0, "videoStreamIndex": 0, "meta": { "SourceFile": "C:/Transcode/source folder/x265_12bit.mkv", "errors": [], "Duration": 21.375, "ExifToolVersion": 12.21, "FileName": "x265_12bit.mkv", "Directory": "C:/Transcode/source folder", "FileSize": "5.6 MiB", "FileModifyDate": { "year": 2019, "month": 9, "day": 13, "hour": 17, "minute": 54, "second": 35, "millisecond": 0, "tzoffsetMinutes": 60, "rawValue": "2019:09:13 17:54:35+01:00" } } } ``` -------------------------------- ### Container Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MC93_Migz1FFMPEG_CPU Specify the output container for the transcoded file. Use 'original' to maintain the existing container. Ensure the chosen container supports all stream types. MKV is recommended. ```shell mkv ``` ```shell mp4 ``` ```shell original ``` -------------------------------- ### Boolean Input Example: downmix_single_track Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MC93_Migz5ConvertAudio Example of how to set the 'downmix_single_track' boolean input. When enabled, only a single downmixed track is created instead of one for each original track. -------------------------------- ### Scale Video Resolution Method 1 (QSV) Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_bsh1_Boosh_FFMPEG_QSV_HEVC Scales video resolution using the QSV hardware acceleration. ```bash -vf scale_qsv=w=1280:h=720 ``` -------------------------------- ### Set Flow Variable - Value Input Examples Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Set%20Flow%20Variable Examples of values that can be assigned to a flow variable using the Set Flow Variable plugin. These values can be strings or numbers. ```text 1 ``` ```text nvenc ``` -------------------------------- ### Require All Streams Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_jordy_filter_by_audio_codec_and_channels If true, all audio streams must match the criteria. If false, at least one stream must match. ```text Name: requireAllStreams Type: boolean Tooltip: If true, all audio streams must match the criteria. If false, at least one stream must match. ``` -------------------------------- ### Plugin Input Configuration Source: https://docs.tdarr.io/docs/plugins/classic-plugins/plugin-components/inputs Example of defining text and dropdown inputs for a plugin. Use this to allow users to configure plugin behavior through the UI. ```javascript { Inputs: [ // (Optional) Inputs you'd like the user to enter to allow your plugin to be easily configurable from the UI // Text input example { name: 'language', type: 'string', defaultValue: 'eng', inputUI: { type: 'text' }, tooltip: `Enter one language tag here for the language of the subtitles you'd like to keep. \nExample:\n eng \nExample:\n fr \nExample: de` }, // Dropdown input example { name: 'remove_subs', type: 'boolean', defaultValue: false, inputUI: { type: 'dropdown', options: [ // a string array of options (will be converted to boolean when the input is loaded) 'false', 'true' ] }, tooltip: `Select whether to remove or keep subtitles` } ] } ``` -------------------------------- ### Custom Title Matching Example 1 Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_MC93_Migz2CleanTitle Specify custom text to match for title removal when audio or subtitle cleaning is enabled. This example shows a single custom match. ```yaml custom_title_matching: MiNX - Small HD episodes ``` -------------------------------- ### Preferred Language Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_076b_re_order_subtitle_streams Example of specifying a preferred language tag for subtitle streams. Supports common language codes like 'eng', 'en', 'fr', and 'de'. ```text Name: preferred_language Type: string Tooltip: Specify one language tag for Tdarr to try and put as 1st subtitle track Example: eng Example: en Example: fr Example: de ``` -------------------------------- ### Min Average Bitrate Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_bsh1_Boosh_FFMPEG_QSV_HEVC Sets a minimum average video bitrate. This sets a lower limit for the target average bitrate during encoding. ```text 2000 ``` ```text 1000 ``` -------------------------------- ### Example Stream Language Tag Data Source: https://docs.tdarr.io/blog/how-to-remove-video-audio-streams-by-language-using-ffmpeg This JSON structure shows an example of how language data for a media stream might be represented, typically found within stream tags. ```json { "tags": { "language": "eng" } } ``` -------------------------------- ### Preferred Language Input Example Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_076a_re_order_audio_streams This snippet shows the input configuration for the 'preferred_language' setting in Tdarr Plugin 076a. It specifies the input type and provides examples of valid language tags. ```text Name: preferred_language Type: string Tooltip: Specify one language tag for Tdarr to try and put as 1st audio track \nExample:\n eng \nExample:\n en \nExample:\n fr \nExample:\n de ``` -------------------------------- ### Set Flow Variable - Variable Input Example Source: https://docs.tdarr.io/docs/plugins/flow-plugins/index/tools/Set%20Flow%20Variable Example of how to set the 'Variable' input for the Set Flow Variable plugin. This variable can be referenced later using the 'Check Flow Variable' plugin. ```text transcodeStage ``` -------------------------------- ### Get FFmpeg CLI Help Information Source: https://docs.tdarr.io/blog/how-to-to-transcode-a-video-using-ffmpeg-cli Access comprehensive help for the FFmpeg command-line interface. This command provides detailed information on options and usage. ```bash ffmpeg -h ``` -------------------------------- ### Audio Stream Channel Count Example Source: https://docs.tdarr.io/blog/how-to-remove-audio-channels-based-on-channel-count-using-ffmpeg This JSON snippet shows an example of audio stream data, indicating the channel count. 7.1 surround sound is represented as 8 channels, and 5.1 as 6 channels. ```json { "channels": 8 } ``` -------------------------------- ### Radarr Port Input Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_43az_add_to_radarr Input field for the Radarr port number. Example: 7878. ```text Name: port Type: string Tooltip: Enter the port Radarr is using Example: 7878 ``` -------------------------------- ### QSV Encoder Input Source: https://docs.tdarr.io/docs/plugins/classic-plugins/index/Tdarr_Plugin_drdd_standardise_all_in_one Specifies whether to use Intel Quick Sync for encoding. Requires an Intel CPU with Quick Sync capabilities. Valid values are 'true' or 'false'. ```text Name: qsv Type: string Tooltip: If Intel Quick Sync should be used. Requires an Intel CPU with Quick Sync capabilties. Valid values: true / false Default: false ```