{"id":18269783,"url":"https://github.com/skyfe79/avtools","last_synced_at":"2025-04-09T03:15:58.740Z","repository":{"id":231872792,"uuid":"782359514","full_name":"skyfe79/avtools","owner":"skyfe79","description":"The avtools CLI is an educational program created to demonstrate how to utilize AVFoundation capabilities from the terminal.","archived":false,"fork":false,"pushed_at":"2024-04-08T02:47:56.000Z","size":23680,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T21:29:51.063Z","etag":null,"topics":["avfoundation","swift","swift-argument-parser"],"latest_commit_sha":null,"homepage":"https://github.com/skyfe79/avtools","language":"Swift","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/skyfe79.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}},"created_at":"2024-04-05T06:30:13.000Z","updated_at":"2024-08-28T04:59:49.000Z","dependencies_parsed_at":"2024-11-05T11:51:53.442Z","dependency_job_id":null,"html_url":"https://github.com/skyfe79/avtools","commit_stats":null,"previous_names":["skyfe79/avtools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyfe79%2Favtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyfe79%2Favtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyfe79%2Favtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyfe79%2Favtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skyfe79","download_url":"https://codeload.github.com/skyfe79/avtools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247968377,"owners_count":21025823,"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","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":["avfoundation","swift","swift-argument-parser"],"created_at":"2024-11-05T11:37:10.153Z","updated_at":"2025-04-09T03:15:58.715Z","avatar_url":"https://github.com/skyfe79.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# avtools\n\navtools is a command-line tool developed using Swift, designed to perform various operations on audio and video files. It leverages Swift's [ArgumentParser](https://github.com/apple/swift-argument-parser) for handling command-line parsing and [AVFoundation](https://developer.apple.com/documentation/avfoundation/) for processing media tasks.\n\nThe avtools CLI is an educational program created to demonstrate how to utilize AVFoundation capabilities from the terminal. It allows developers to learn how to manipulate audio and video files using Swift and AVFoundation.\n\n\n## Features\n\navtools supports a wide range of operations on audio and video files, including:\n\n- **Converting images to video**\n- **Overlaying sound on a video**\n- **Overlaying text on a video**\n- **Changing the speed of a video**\n- **Generating images from a video**\n- **Extracting audio from a video**\n- **Merging multiple videos**\n- **Splitting a video**\n- **Extracting video without audio**\n- **Rotating a video**\n- **Trimming a video**\n- **Cropping a video**\n- **Overlaying an image on a video**\n\n## Installation\n\nTo use avtools, you need to have Swift installed on your system. Clone the repository and build the project using Swift Package Manager (SPM).\n\n```bash\ngit clone https://github.com/skyfe79/avtools.git\ncd avtools\nswift build\n```\n\n## Usage\n\nAfter building the project, you can run avtools from the command line. Here are some examples of how to use the various commands:\n\n### Convert Images to Video\n\n```bash\nswift run avtools images-to-video --images-folder ./assets/images --duration 1.5 --output iv2.mov\n```\n\n### Overlay Sound\n\n```bash\nswift run avtools overlay-sound --input ./assets/video.mov --sound ./assets/bgm.mp3 --output video_with_sound.mov\n```\n\n### Overlay Text\n\n```bash\nswift run avtools overlay-text --input ./assets/video.mov --output ot3.mov --text 'Hello World' --color '#FF5733FF'\n```\n\n### Change Speed\n\n```bash\nswift run avtools speed --input ./assets/video.mov --output s1.mov --speed 3.0\n```\n\n### Generate Images from Video\n\n```bash\nswift run avtools generate-images --input ./assets/video.mov --output images --times 1.0 2.0 3.0\n```\n\n### Extract Audio\n\n```bash\nswift run avtools extract-audio --input ./assets/video.mov --output only_audio.m4a\n```\n\n### Merge Videos\n\n```bash\nswift run avtools merge --input ./assets/splits --output merged2.mov\n```\n\n### Split Video\n\n```bash\nswift run avtools split --input ./assets/video.mov --output splitted_videos --duration 1.0\n```\n\n### Extract Video\n\n```bash\nswift run avtools extract-video --input ./assets/video.mov --output only_video.mov\n```\n\n### Rotate Video\n\n```bash\nswift run avtools rotate --input ./assets/video.mov --output rv.mov --angle 180\n```\n\n### Trim Video\n\n```bash\nswift run avtools trim --input ./assets/video.mov --output t2.mov --start 2 --end 4\n```\n\n### Crop Video\n\n```bash\nswift run avtools crop --input ./assets/video.mov --output c.mov --crop-rect \"0 0 100 100\"\n```\n\n### Overlay Image\n\n```bash\nswift run avtools overlay-image --input ./assets/video.mov --image ./assets/cat.png --start 1.0 --duration 2.0 --output video_with_overlay.mov\n```\n\nFor more detailed information on each command and its options, refer to the help provided by the tool itself using the `--help` flag.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyfe79%2Favtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyfe79%2Favtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyfe79%2Favtools/lists"}