{"id":31747219,"url":"https://github.com/volodiakraplich/davinci-convertor","last_synced_at":"2025-10-09T13:28:11.047Z","repository":{"id":317271653,"uuid":"1066501130","full_name":"VolodiaKraplich/davinci-convertor","owner":"VolodiaKraplich","description":"DaVinci Resolve Smart Video Converter for Linux/MacOS","archived":false,"fork":false,"pushed_at":"2025-09-29T21:17:59.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-29T23:35:16.556Z","etag":null,"topics":["davinci-resolve-studio-20","ffmpeg-script","go"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VolodiaKraplich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-29T15:12:18.000Z","updated_at":"2025-09-29T21:17:37.000Z","dependencies_parsed_at":"2025-09-29T23:45:19.562Z","dependency_job_id":null,"html_url":"https://github.com/VolodiaKraplich/davinci-convertor","commit_stats":null,"previous_names":["volodiakraplich/davinci-convertor"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/VolodiaKraplich/davinci-convertor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodiaKraplich%2Fdavinci-convertor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodiaKraplich%2Fdavinci-convertor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodiaKraplich%2Fdavinci-convertor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodiaKraplich%2Fdavinci-convertor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VolodiaKraplich","download_url":"https://codeload.github.com/VolodiaKraplich/davinci-convertor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodiaKraplich%2Fdavinci-convertor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001494,"owners_count":26083102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["davinci-resolve-studio-20","ffmpeg-script","go"],"created_at":"2025-10-09T13:28:08.020Z","updated_at":"2025-10-09T13:28:11.036Z","avatar_url":"https://github.com/VolodiaKraplich.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 Smart DaVinci Resolve Converter\n\n[![Go Version](https://img.shields.io/badge/Go-1.25.1%2B-blue.svg)](https://golang.org)\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS-lightgrey.svg)](https://shields.io/)\n\nA smart, high-performance CLI tool for batch-optimizing video files for DaVinci Resolve on Linux and macOS.\n\nThis utility automates the tedious process of preparing media for editing. Instead of blindly transcoding everything, it analyzes each file and applies only the necessary changes, ensuring a fast and quality-preserving workflow.\n\n---\n\n### The Problem\n\nDaVinci Resolve, particularly on Linux, performs best with editing-friendly intermediate codecs. Natively working with highly compressed formats like H.264/H.265 often leads to poor timeline performance, stuttering playback, and potential instability. The standard solution is to transcode source footage to a mezzanine codec like DNxHR or ProRes.\n\n### Key Features\n\n- **🧠 Intelligent Analysis:** Uses `ffprobe` to inspect each file's video/audio streams and container.\n- ⚡️ **Efficient Operations:** Skips compatible files, remuxes containers (`.mkv` -\u003e `.mov`), or performs partial transcodes (e.g., audio only) when possible.\n- 🚀 **Concurrent Processing:** Utilizes all available CPU cores to process multiple files in parallel, drastically reducing wait times.\n- 🎬 **Professional Codecs:** Transcodes to **DNxHR** or **Apple ProRes** for a smooth, professional editing experience.\n- 📂 **Flexible Workflow:** Supports custom output directories, codec profiles, and quality settings.\n\n---\n\n### Installation\n\n#### Prerequisites\n\n- **Go** (version 1.25.1 or newer)\n- **FFmpeg** (which includes `ffprobe`) must be installed and available in your system's PATH.\n\n**Install FFmpeg:**\n\n```bash\n# On Debian/Ubuntu\nsudo apt update \u0026\u0026 sudo apt install ffmpeg\n\n# On ArchLinux Based\nsudo pacman -Sy ffmpeg\n\n# On macOS (using Homebrew)\nbrew install ffmpeg\n```\n\n### Usage\n\n#### Basic Syntax\n\n```\ndavinci-convert \u003cfile_or_directory\u003e [flags]\n```\n\n#### Examples\n\n1.  **Convert a single file using default settings (DNxHR HQ):**\n\n    ```bash\n    davinci-convert my_video.mp4\n    ```\n\n2.  **Recursively process all videos in a directory:**\n\n    ```bash\n    davinci-convert ./path/to/my/footage/\n    ```\n\n3.  **Convert to ProRes LT and save to a dedicated proxy directory:**\n\n    ```bash\n    davinci-convert ./raw_footage/ -o ./proxies/ --codec prores --quality lt\n    ```\n\n4.  **Convert to the highest quality DNxHR using 12 parallel workers:**\n\n    ```bash\n    davinci-convert ./source/ --codec dnxhr --quality hqx --workers 12\n    ```\n\n5.  **Force overwrite existing files and show detailed FFmpeg logs:**\n    ```bash\n    davinci-convert video.mkv -f -v\n    ```\n\n#### All Flags\n\n```\n  --codec string\n        Target video codec: 'dnxhr' or 'prores' (default \"dnxhr\")\n  -f\n        Force overwrite of existing files\n  -o, --output-dir string\n        Output directory for converted files (default: same as source)\n  --quality string\n        Video quality profile\n        - for dnxhr: low, medium, hq, hqx\n        - for prores: proxy, lt, sq, hq\n        (default \"hq\")\n  -v\n        Verbose output (show ffmpeg/ffprobe logs)\n  --workers int\n        Number of parallel conversion jobs (default: number of CPU cores)\n```\n\n---\n\n### How It Works\n\nThe tool follows this workflow for each file:\n\n1.  **Analyze:** Runs `ffprobe` to get codec and container information.\n2.  **Decide:** Based on the analysis, it chooses one of the following actions:\n    - `SKIP`: The file is already fully compatible.\n    - `REWRAP`: Codecs are compatible, but the container is not (e.g., `.mkv`). The streams are copied into a `.mov` container without re-encoding, which is nearly instantaneous.\n    - `CONVERT AUDIO`: The video stream is compatible and is copied, but the audio is transcoded.\n    - `CONVERT VIDEO`: The audio stream is compatible and is copied, but the video is transcoded.\n    - `FULL CONVERT`: Both video and audio streams require transcoding.\n3.  **Execute:** Runs the appropriate `ffmpeg` command to perform the chosen action.\n\n---\n\n### Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/VolodiaKraplich/davinci-convertor.git\ncd davinci-convertor\n\n# Build the binary\nmake build\n```\n\n### License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolodiakraplich%2Fdavinci-convertor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolodiakraplich%2Fdavinci-convertor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolodiakraplich%2Fdavinci-convertor/lists"}