{"_id":"@bobyzgirlllnpm/reiciendis-officiis-aperiam","name":"@bobyzgirlllnpm/reiciendis-officiis-aperiam","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bobyzgirlllnpm/reiciendis-officiis-aperiam","version":"1.0.0","description":"Experimental JSON to FFmpeg command line tool for video editing.  Because of JSON it's much easier to create and edit video timeline and it's much easier to integrate it with other tools.","main":"index.js","scripts":{},"author":{"name":"bobyzgirlLl"},"license":"MIT","dependencies":{"@bobyzgirlllnpm/aspernatur-fugiat-quam":"^1.0.0","@bobyzgirlllnpm/autem-nemo-incidunt":"^1.0.0","@bobyzgirlllnpm/dolorem-officia-assumenda":"^1.0.0","@bobyzgirlllnpm/dolorem-vero-atque":"^1.0.0","@bobyzgirlllnpm/facere-ipsum-aspernatur":"^1.0.0","@bobyzgirlllnpm/id-nobis-pariatur":"^1.0.0","@bobyzgirlllnpm/illo-architecto-dolorum":"^1.0.0","@bobyzgirlllnpm/impedit-quia-ea":"^1.0.0","@bobyzgirlllnpm/itaque-similique-commodi":"^1.0.0","@bobyzgirlllnpm/iure-velit-sapiente":"^1.0.0","@bobyzgirlllnpm/libero-facere-id":"^1.0.0","@bobyzgirlllnpm/libero-itaque-consequuntur":"^1.0.0","@bobyzgirlllnpm/magnam-laboriosam-illum":"^1.0.0","@bobyzgirlllnpm/mollitia-doloribus-sapiente":"^1.0.0","@bobyzgirlllnpm/mollitia-fugit-officia":"^1.0.0","@bobyzgirlllnpm/nesciunt-voluptatibus-nesciunt":"^1.0.0","@bobyzgirlllnpm/nostrum-inventore-quasi":"^1.0.0","@bobyzgirlllnpm/nostrum-voluptate-provident":"^1.0.0","@bobyzgirlllnpm/pariatur-recusandae-id":"^1.0.0","@bobyzgirlllnpm/perspiciatis-sequi-eligendi":"^1.0.0","@bobyzgirlllnpm/recusandae-minus-veritatis":"^1.0.0","@bobyzgirlllnpm/repudiandae-quae-in":"^1.0.0","@bobyzgirlllnpm/saepe-autem-impedit":"^1.0.0","@bobyzgirlllnpm/suscipit-nisi-fuga":"^1.0.0","@bobyzgirlllnpm/ullam-voluptate-placeat":"^1.0.0","@drftgyhuji7npm/repellendus-eum-et-itaque":"^1.0.0","hai-custom-button":"^1.0.0","remind-works-8th":"^1.0.2","web3-khai-1":"^1.0.1","web3-khai-2":"^1.0.1"},"keywords":["WebSockets","banner","setPrototypeOf","react","stringifier","find-up","replay","simpledb","cloudsearch","getintrinsic","modules","trimEnd","es","dataview","ECMAScript 2022","Object.defineProperty","glacier","ts","ReactiveExtensions","compare","parsing","-0","es-shim API","stylesheet","validation","http","mkdir","l10n","polyfill","copy","mru","functions","web","styled-components","ses","streams2","command","once","util.inspect","batch","test","URL","emr","jsdom","WeakSet","rm -rf","view","styles","jsdiff","regexp","look","jsx","mixins","typeof","call-bound","Reflect.getPrototypeOf","loading","symbols","arktype","pnpm9","ebs","busy","toolkit","Promise","file","symlinks","config","TypeScript","object","metadata","mocha","jQuery","linewrap","pretty","url","getopt","apollo","Array.prototype.findLast","rds","fetch","formatting","preserve-symlinks","dataView","offset","isConcatSpreadable","resolve","byteLength","Push","fast","speed","qs","es2015","break","agent","bluebird","HyBi","promises","drop","ajv","Float64Array","trim","sqs","gdpr","internal","ES2016","es2017","ES7","TypeBox","tostringtag","persistent","up","Object.entries","tc39","accessor","ES6","bundling","immer","syntaxerror","gradients css","https","queue","require","mime","bind","duplex","which","character","delete","higher-order","unicode","extend","io-ts","swf","Uint8ClampedArray","RegExp#flags","typedarrays","name","superagent","findLast","auth","es8","elm","rm","dir","byteOffset","defineProperty","enumerable","javascript","commander","scheme","throttle","trimLeft","bootstrap css","positive","watch","eslintplugin","packages","visual","URLSearchParams","performance","regular","colors","tester","contains","assert","es6","ajax","assign","wait","Array","circular","computed-types","state","awesomesauce","arrays","authentication","fastify","deepclone","testing","proxy","ES","has-own","shebang","css nesting","flatten","term","espree","Array.prototype.flatten","cache","Object.values","framework","value","predictable","extension","fast-copy","tslib","colour","take","superstruct","diff","trimRight","clone","flatMap","look-up","style","emoji","push","spinners","deepcopy","Function.prototype.name","text","mime-db","minimal","ECMAScript 2019","full","watcher","Object.assign","String.prototype.trim","Array.prototype.filter","WeakMap","Array.prototype.includes","fps","proto","ES5","Array.prototype.findLastIndex","cloudwatch","loadbalancing","flat","Uint32Array","private","css","gradients css3","variables","fs","ECMAScript 7","sequence","omit","RFC-6455","stream","define","nested css","move","listeners","xhr","less compiler","has","react-testing-library","mapreduce","serialize","slot","rmdir","hasOwnProperty","rm -fr","less","ES2021","findup","ec2","ArrayBuffer","starter","es5","properties","yup","prune","map","negative zero","buffers","lesscss","watchFile","write","a11y","make dir","patch","concatMap","css variable","ECMAScript 6","estree","watching","crypto","ava","korean","Array.prototype.flat","jsonpath","importexport","characters","es7","readablestream","redact","debug","i18n","sameValueZero","waf","touch","promise","ES2017","ascii","classnames","wget","es-abstract","args","Int16Array","make","vpc","s3","glob","art","classes","eventEmitter","Float32Array","column","mimetypes","less css","argparse","ie","whatwg","codes","package manager","iam","Rx","Streams","Object.keys","fsevents","types","symlink","live","input","utility","is","route","create","toSorted","walk","streams","sort","ECMAScript 2015","core","dom-testing-library","eslint-plugin","worker","trimStart","uuid","weakset","queueMicrotask","merge","fullwidth","css less","code points","key","CSS","[[Prototype]]","dependencies","keys","indicator","cli","0","spinner","native","typesafe","compile less","assertion","parent","search","RxJS","runtime","libphonenumber","immutable","names","shim","shell","figlet","some","call-bind","path","valid","styleguide","quote","logging","es2018","vest","react-hook-form","aws","_.extend","js","equal","check","browser","core-js","accessibility","jwt","StyleSheet","matches"],"repository":{"type":"git","url":"git+https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam.git"},"homepage":"https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam/#readme","bugs":{"url":"https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam/issues"},"_id":"@bobyzgirlllnpm/reiciendis-officiis-aperiam@1.0.0","gitHead":"f633c1066a47a5630e104c887360dda26f7ab257","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-kpZ0tfDAxWHUOYdWRqqZbXDWGN4Vs8YFoaxTmBbgd8MEdRdhEzu7tXS52lMr0bkPmNjYZqiGEnQhPSppynraaQ==","shasum":"ae598ad65449e33b662051d78732f291eb21b521","tarball":"https://registry.npmjs.org/@bobyzgirlllnpm/reiciendis-officiis-aperiam/-/reiciendis-officiis-aperiam-1.0.0.tgz","fileCount":8,"unpackedSize":28184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7iU8LMUoLJTp1C0RvC/j/dLjMb8QmBtiiR6l3edybWgIhAOrhW2OZ3n33zCl/94FCIrtcsGFiRsPIGCPW5MTgZumg"}]},"_npmUser":{"name":"haiminh1192","email":"haiminh1192@gmail.com"},"directories":{},"maintainers":[{"name":"haiminh1192","email":"haiminh1192@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/reiciendis-officiis-aperiam_1.0.0_1714821251998_0.5611198178242585"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-04T11:14:11.885Z","1.0.0":"2024-05-04T11:14:12.262Z","modified":"2024-05-04T11:14:12.582Z"},"maintainers":[{"name":"haiminh1192","email":"haiminh1192@gmail.com"}],"description":"Experimental JSON to FFmpeg command line tool for video editing.  Because of JSON it's much easier to create and edit video timeline and it's much easier to integrate it with other tools.","homepage":"https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam/#readme","keywords":["WebSockets","banner","setPrototypeOf","react","stringifier","find-up","replay","simpledb","cloudsearch","getintrinsic","modules","trimEnd","es","dataview","ECMAScript 2022","Object.defineProperty","glacier","ts","ReactiveExtensions","compare","parsing","-0","es-shim API","stylesheet","validation","http","mkdir","l10n","polyfill","copy","mru","functions","web","styled-components","ses","streams2","command","once","util.inspect","batch","test","URL","emr","jsdom","WeakSet","rm -rf","view","styles","jsdiff","regexp","look","jsx","mixins","typeof","call-bound","Reflect.getPrototypeOf","loading","symbols","arktype","pnpm9","ebs","busy","toolkit","Promise","file","symlinks","config","TypeScript","object","metadata","mocha","jQuery","linewrap","pretty","url","getopt","apollo","Array.prototype.findLast","rds","fetch","formatting","preserve-symlinks","dataView","offset","isConcatSpreadable","resolve","byteLength","Push","fast","speed","qs","es2015","break","agent","bluebird","HyBi","promises","drop","ajv","Float64Array","trim","sqs","gdpr","internal","ES2016","es2017","ES7","TypeBox","tostringtag","persistent","up","Object.entries","tc39","accessor","ES6","bundling","immer","syntaxerror","gradients css","https","queue","require","mime","bind","duplex","which","character","delete","higher-order","unicode","extend","io-ts","swf","Uint8ClampedArray","RegExp#flags","typedarrays","name","superagent","findLast","auth","es8","elm","rm","dir","byteOffset","defineProperty","enumerable","javascript","commander","scheme","throttle","trimLeft","bootstrap css","positive","watch","eslintplugin","packages","visual","URLSearchParams","performance","regular","colors","tester","contains","assert","es6","ajax","assign","wait","Array","circular","computed-types","state","awesomesauce","arrays","authentication","fastify","deepclone","testing","proxy","ES","has-own","shebang","css nesting","flatten","term","espree","Array.prototype.flatten","cache","Object.values","framework","value","predictable","extension","fast-copy","tslib","colour","take","superstruct","diff","trimRight","clone","flatMap","look-up","style","emoji","push","spinners","deepcopy","Function.prototype.name","text","mime-db","minimal","ECMAScript 2019","full","watcher","Object.assign","String.prototype.trim","Array.prototype.filter","WeakMap","Array.prototype.includes","fps","proto","ES5","Array.prototype.findLastIndex","cloudwatch","loadbalancing","flat","Uint32Array","private","css","gradients css3","variables","fs","ECMAScript 7","sequence","omit","RFC-6455","stream","define","nested css","move","listeners","xhr","less compiler","has","react-testing-library","mapreduce","serialize","slot","rmdir","hasOwnProperty","rm -fr","less","ES2021","findup","ec2","ArrayBuffer","starter","es5","properties","yup","prune","map","negative zero","buffers","lesscss","watchFile","write","a11y","make dir","patch","concatMap","css variable","ECMAScript 6","estree","watching","crypto","ava","korean","Array.prototype.flat","jsonpath","importexport","characters","es7","readablestream","redact","debug","i18n","sameValueZero","waf","touch","promise","ES2017","ascii","classnames","wget","es-abstract","args","Int16Array","make","vpc","s3","glob","art","classes","eventEmitter","Float32Array","column","mimetypes","less css","argparse","ie","whatwg","codes","package manager","iam","Rx","Streams","Object.keys","fsevents","types","symlink","live","input","utility","is","route","create","toSorted","walk","streams","sort","ECMAScript 2015","core","dom-testing-library","eslint-plugin","worker","trimStart","uuid","weakset","queueMicrotask","merge","fullwidth","css less","code points","key","CSS","[[Prototype]]","dependencies","keys","indicator","cli","0","spinner","native","typesafe","compile less","assertion","parent","search","RxJS","runtime","libphonenumber","immutable","names","shim","shell","figlet","some","call-bind","path","valid","styleguide","quote","logging","es2018","vest","react-hook-form","aws","_.extend","js","equal","check","browser","core-js","accessibility","jwt","StyleSheet","matches"],"repository":{"type":"git","url":"git+https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam.git"},"author":{"name":"bobyzgirlLl"},"bugs":{"url":"https://github.com/bobyzgirlllnpm/reiciendis-officiis-aperiam/issues"},"license":"MIT","readme":"# @bobyzgirlllnpm/reiciendis-officiis-aperiam\nExperimental JSON to FFmpeg command line tool for video editing. \nBecause of JSON it's much easier to create and edit video timeline and it's much easier to integrate it with other tools.\n\n[![npm version](https://img.shields.io/npm/v/@bobyzgirlllnpm/reiciendis-officiis-aperiam)](https://img.shields.io/npm/v/@bobyzgirlllnpm/reiciendis-officiis-aperiam)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n\n### Features\n* Supports video, audio and image sources\n* Clip transformation: scale, position, rotation, opacity\n* Clip transitions from/to and cross-fade: fade, smoothup, smoothdown, circlecrop, squeezev, squeezeh and more\n* For non-linear video editing with multiple tracks and clips\n* Minimalistic JSON format\n* No direct ffmpeg or node dependency required\n\n## Usage\n\nInstall package:\n\n```bash\nnpm install @bobyzgirlllnpm/reiciendis-officiis-aperiam\n\n# or \n\nyarn add @bobyzgirlllnpm/reiciendis-officiis-aperiam\n\n# or\n\npnpm add @bobyzgirlllnpm/reiciendis-officiis-aperiam\n```\n\nImport and use it:\n\n```javascript\nimport { parseSchema } from '@bobyzgirlllnpm/reiciendis-officiis-aperiam';\n\nconst ffmpegCommand = parseSchema(schema);\n```\n\nor if you need filter complex part only:\n\n```javascript\nconst filter = parseSchema(schema, true);\n```\n\n## Example\nTool translates video description from JSON to complex FFmpeg command including all required preprocessing steps, filters and transitions.\n\n![timeline](./img/timeline.png)\n\nThe timeline can be passed either as a JSON string or as a JS object.\nFor example this JSON represent the timeline shown above:\n\n```json\n{\n  \"version\": 1,\n  \"inputs\": {\n    \"source1\": {\n      \"type\": \"video\",\n      \"file\": \"samples/bee1920.mp4\",\n      \"hasAudio\": false,\n      \"hasVideo\": true,\n      \"duration\": 40\n    },\n    \"source2\": {\n      \"type\": \"video\",\n      \"file\": \"samples/book1920.mp4\",\n      \"hasAudio\": false,\n      \"hasVideo\": true,\n      \"duration\": 13\n    },\n    \"source3\": {\n      \"type\": \"video\",\n      \"file\": \"samples/cows1920.mp4\",\n      \"hasAudio\": true,\n      \"hasVideo\": true,\n      \"duration\": 15\n    },\n    \"source4\": {\n      \"type\": \"video\",\n      \"file\": \"samples/flowers1920.mp4\",\n      \"hasAudio\": true,\n      \"hasVideo\": true,\n      \"duration\": 21\n    },\n    \"audio1\": {\n      \"type\": \"audio\",\n      \"file\": \"samples/ever.mp3\",\n      \"hasAudio\": true,\n      \"hasVideo\": false,\n      \"duration\": 181\n    },\n    \"audio2\": {\n      \"type\": \"audio\",\n      \"file\": \"samples/weekend.mp3\",\n      \"hasAudio\": true,\n      \"hasVideo\": false,\n      \"duration\": 208\n    },\n    \"watermark\": {\n      \"type\": \"image\",\n      \"file\": \"samples/flower.png\",\n      \"hasAudio\": false,\n      \"hasVideo\": true,\n      \"duration\": 0\n    }\n  },\n  \"tracks\": {\n    \"track_with_some_videos\": {\n      \"type\": \"video\",\n      \"clips\": [\n        {\n          \"name\": \"clip1\",\n          \"source\": \"source1\",\n          \"timelineTrackStart\": 3,\n          \"duration\": 2,\n          \"sourceStartOffset\": 10,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip2\",\n          \"source\": \"source2\",\n          \"timelineTrackStart\": 5,\n          \"duration\": 1,\n          \"sourceStartOffset\": 5,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip3\",\n          \"source\": \"source3\",\n          \"timelineTrackStart\": 10,\n          \"duration\": 5,\n          \"sourceStartOffset\": 3,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 480,\n            \"y\": 270,\n            \"width\": 960,\n            \"height\": 540,\n            \"rotation\": 45,\n            \"opacity\": 0.5\n          }\n        },\n        {\n          \"name\": \"clip4\",\n          \"source\": \"source1\",\n          \"timelineTrackStart\": 15,\n          \"duration\": 5,\n          \"sourceStartOffset\": 27,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip5\",\n          \"source\": \"source2\",\n          \"timelineTrackStart\": 19,\n          \"duration\": 5,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 50,\n            \"y\": 50,\n            \"width\": 400,\n            \"height\": 300,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip6\",\n          \"source\": \"source4\",\n          \"timelineTrackStart\": 23,\n          \"duration\": 5,\n          \"sourceStartOffset\": 15,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip7\",\n          \"source\": \"source3\",\n          \"timelineTrackStart\": 28,\n          \"duration\": 5,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        },\n        {\n          \"name\": \"clip8\",\n          \"source\": \"source1\",\n          \"timelineTrackStart\": 33,\n          \"duration\": 5,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"video\",\n          \"transform\": {\n            \"x\": 0,\n            \"y\": 0,\n            \"width\": 1920,\n            \"height\": 1080,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        }\n      ]\n    },\n    \"track_with_watermark\": {\n      \"type\": \"video\",\n      \"clips\": [\n        {\n          \"name\": \"watermark_clip\",\n          \"source\": \"watermark\",\n          \"timelineTrackStart\": 0,\n          \"duration\": 30,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"image\",\n          \"transform\": {\n            \"x\": 1610,\n            \"y\": 10,\n            \"width\": 300,\n            \"height\": 150,\n            \"rotation\": 0,\n            \"opacity\": 1\n          }\n        }\n      ]\n    },\n    \"track2\": {\n      \"type\": \"audio\",\n      \"clips\": [\n        {\n          \"name\": \"audio_clip1\",\n          \"source\": \"audio1\",\n          \"timelineTrackStart\": 5,\n          \"duration\": 10,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"audio\",\n          \"volume\": 1\n        },\n        {\n          \"name\": \"audio_clip2\",\n          \"source\": \"audio2\",\n          \"timelineTrackStart\": 20,\n          \"duration\": 15,\n          \"sourceStartOffset\": 0,\n          \"clipType\": \"audio\",\n          \"volume\": 1\n        }\n      ]\n    }\n  },\n  \"transitions\": [\n    {\n      \"type\": \"smoothup\",\n      \"duration\": 0.5,\n      \"from\": null,\n      \"to\": \"clip1\"\n    },\n    {\n      \"type\": \"smoothdown\",\n      \"duration\": 0.5,\n      \"from\": \"clip1\",\n      \"to\": null\n    },\n    {\n      \"type\": \"fade\",\n      \"duration\": 0.5,\n      \"from\": null,\n      \"to\": \"clip2\"\n    },\n    {\n      \"type\": \"circlecrop\",\n      \"duration\": 0.5,\n      \"from\": \"clip2\",\n      \"to\": null\n    },\n    {\n      \"type\": \"squeezev\",\n      \"duration\": 0.5,\n      \"from\": \"clip3\",\n      \"to\": null\n    },\n    {\n      \"type\": \"squeezeh\",\n      \"duration\": 0.5,\n      \"from\": \"watermark_clip\",\n      \"to\": null\n    },\n    {\n      \"type\": \"fade\",\n      \"duration\": 1,\n      \"from\": \"clip4\",\n      \"to\": \"clip5\"\n    },\n    {\n      \"type\": \"smoothdown\",\n      \"duration\": 1,\n      \"from\": \"clip5\",\n      \"to\": \"clip6\"\n    },\n    {\n      \"type\": \"smoothdown\",\n      \"duration\": 0.5,\n      \"from\": \"clip8\",\n      \"to\": null\n    }\n  ],\n  \"output\": {\n    \"tempDir\": \"./tmp\",\n    \"file\": \"output.mp4\",\n    \"videoCodec\": \"libx264\",\n    \"audioCodec\": \"aac\",\n    \"width\": 1920,\n    \"height\": 1080,\n    \"audioBitrate\": \"320k\",\n    \"preset\": \"veryfast\",\n    \"crf\": 23,\n    \"framerate\": 30,\n    \"flags\": [\n      \"-pix_fmt\",\n      \"yuv420p\"\n    ],\n    \"startPosition\": 0,\n    \"endPosition\": 38,\n    \"scaleRatio\": 0.2\n  }\n}\n```\n\nwill be translated into command like this:\n\n```bash\n#!/bin/bash\nmkdir -p ./tmp\nffmpeg -y -i samples/bee1920.mp4 -ss 10 -t 2 -r 30 ./tmp/clip1.mp4\nffmpeg -y -i samples/book1920.mp4 -ss 5 -t 1 -r 30 ./tmp/clip2.mp4\nffmpeg -y -i samples/cows1920.mp4 -ss 3 -t 5 -r 30 ./tmp/clip3.mp4\nffmpeg -y -i samples/bee1920.mp4 -ss 27 -t 5 -r 30 ./tmp/clip4.mp4\nffmpeg -y -i samples/book1920.mp4 -ss 0 -t 5 -r 30 ./tmp/clip5.mp4\nffmpeg -y -i samples/flowers1920.mp4 -ss 15 -t 5 -r 30 ./tmp/clip6.mp4\nffmpeg -y -i samples/cows1920.mp4 -ss 0 -t 5 -r 30 ./tmp/clip7.mp4\nffmpeg -y -i samples/bee1920.mp4 -ss 0 -t 5 -r 30 ./tmp/clip8.mp4\nffmpeg -y \\\n-i ./tmp/clip1.mp4 \\\n-i ./tmp/clip2.mp4 \\\n-i ./tmp/clip3.mp4 \\\n-i ./tmp/clip4.mp4 \\\n-i ./tmp/clip5.mp4 \\\n-i ./tmp/clip6.mp4 \\\n-i ./tmp/clip7.mp4 \\\n-i ./tmp/clip8.mp4 \\\n-i samples/ever.mp3 \\\n-i samples/weekend.mp3 \\\n-i samples/flower.png \\\n-filter_complex \"color=c=black:s=384x216:d=38[base];\ncolor=c=black@0.0:s=384x216:d=3[gap_xbPT0R2D];\ncolor=black@0.0:s=384x216:d=2[cMu1AeAv_base];\n[0:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[Tqb8V30z_clip];\n[cMu1AeAv_base][Tqb8V30z_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip1];\ncolor=black@0.0:s=384x216:d=1[nwjCLeBf_base];\n[1:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[Jt2Ow3z7_clip];\n[nwjCLeBf_base][Jt2Ow3z7_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip2];\ncolor=c=black@0.0:s=384x216:d=4[gap_wGJMg2Xy];\ncolor=black@0.0:s=384x216:d=5[nbl0GdNN_base];\n[2:v]scale=192:108,format=rgba,colorchannelmixer=aa=0.5[fuMgQH1R_clip];\n[nbl0GdNN_base][fuMgQH1R_clip]overlay=96:54:format=auto,rotate=45,fps=30[clip3];\ncolor=black@0.0:s=384x216:d=5[KWL95Ced_base];\n[3:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[tiuMabCa_clip];\n[KWL95Ced_base][tiuMabCa_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip4];\ncolor=black@0.0:s=384x216:d=5[DYDR0Q6x_base];\n[4:v]scale=80:60,format=rgba,colorchannelmixer=aa=1[52NAZxII_clip];\n[DYDR0Q6x_base][52NAZxII_clip]overlay=10:10:format=auto,rotate=0,fps=30[clip5];\ncolor=black@0.0:s=384x216:d=5[nG4pXmLO_base];\n[5:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[CgOJcTIJ_clip];\n[nG4pXmLO_base][CgOJcTIJ_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip6];\ncolor=black@0.0:s=384x216:d=5[occJwxJK_base];\n[6:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[varB8t9b_clip];\n[occJwxJK_base][varB8t9b_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip7];\ncolor=black@0.0:s=384x216:d=5[3q2VQ9Fn_base];\n[7:v]scale=384:216,format=rgba,colorchannelmixer=aa=1[TnMfX5QP_clip];\n[3q2VQ9Fn_base][TnMfX5QP_clip]overlay=0:0:format=auto,rotate=0,fps=30[clip8];\ncolor=c=black@0.0:s=384x216:d=0.5[void_clip1];\n[void_clip1]fps=30[fps_void_clip1_cpX1K4oW];\n[clip1]fps=30[fps_clip1_9yaTMQSH];\n[fps_void_clip1_cpX1K4oW][fps_clip1_9yaTMQSH]xfade=transition=smoothup:duration=0.43333333333333335:offset=0,fps=30[start_xfade_wvuFc7bn];\ncolor=c=black@0.0:s=384x216:d=0.5[void_start_xfade_wvuFc7bn];\n[start_xfade_wvuFc7bn]fps=30[fps_start_xfade_wvuFc7bn_XxZrJa0B];\n[void_start_xfade_wvuFc7bn]fps=30[fps_void_start_xfade_wvuFc7bn_hwY2KZxJ];\n[fps_start_xfade_wvuFc7bn_XxZrJa0B][fps_void_start_xfade_wvuFc7bn_hwY2KZxJ]xfade=transition=smoothdown:duration=0.43333333333333335:offset=1.5,fps=30[end_xfade_6MnYQ2ds];\ncolor=c=black@0.0:s=384x216:d=0.5[void_clip2];\n[void_clip2]fps=30[fps_void_clip2_vSBFpXYV];\n[clip2]fps=30[fps_clip2_j3pJwJ6G];\n[fps_void_clip2_vSBFpXYV][fps_clip2_j3pJwJ6G]xfade=transition=fade:duration=0.43333333333333335:offset=0,fps=30[start_xfade_gCAkUPK2];\ncolor=c=black@0.0:s=384x216:d=0.5[void_start_xfade_gCAkUPK2];\n[start_xfade_gCAkUPK2]fps=30[fps_start_xfade_gCAkUPK2_ZnLBlAtD];\n[void_start_xfade_gCAkUPK2]fps=30[fps_void_start_xfade_gCAkUPK2_mLqar0Ah];\n[fps_start_xfade_gCAkUPK2_ZnLBlAtD][fps_void_start_xfade_gCAkUPK2_mLqar0Ah]xfade=transition=circlecrop:duration=0.43333333333333335:offset=0.5,fps=30[end_xfade_aKd3UWQt];\ncolor=c=black@0.0:s=384x216:d=0.5[void_clip3];\n[clip3]fps=30[fps_clip3_3Ga4ugVG];\n[void_clip3]fps=30[fps_void_clip3_5aVt3xnR];\n[fps_clip3_3Ga4ugVG][fps_void_clip3_5aVt3xnR]xfade=transition=squeezev:duration=0.43333333333333335:offset=4.5,fps=30[end_xfade_s7Ol6uli];\ncolor=c=black@0.0:s=384x216:d=0.5[void_clip8];\n[clip8]fps=30[fps_clip8_4ZkGxZrd];\n[void_clip8]fps=30[fps_void_clip8_ylXk9DHa];\n[fps_clip8_4ZkGxZrd][fps_void_clip8_ylXk9DHa]xfade=transition=smoothdown:duration=0.43333333333333335:offset=4.5,fps=30[end_xfade_xAKXZo2d];\n[gap_xbPT0R2D][end_xfade_6MnYQ2ds]concat=n=2:v=1:a=0,fps=30[between_concat_xlCW8OEt];\n[between_concat_xlCW8OEt][end_xfade_aKd3UWQt]concat=n=2:v=1:a=0,fps=30[between_concat_FQfoDU4F];\n[between_concat_FQfoDU4F][gap_wGJMg2Xy]concat=n=2:v=1:a=0,fps=30[between_concat_TVD5hCH9];\n[between_concat_TVD5hCH9][end_xfade_s7Ol6uli]concat=n=2:v=1:a=0,fps=30[between_concat_xTjAkdon];\n[between_concat_xTjAkdon][clip4]concat=n=2:v=1:a=0,fps=30[between_concat_m0OYCgp8];\n[between_concat_m0OYCgp8]fps=30[fps_between_concat_m0OYCgp8_noaEdyvP];\n[clip5]fps=30[fps_clip5_kQ745of1];\n[fps_between_concat_m0OYCgp8_noaEdyvP][fps_clip5_kQ745of1]xfade=transition=fade:duration=1:offset=19,fps=30[between_xfade_HVZF1EvG];\n[between_xfade_HVZF1EvG]fps=30[fps_between_xfade_HVZF1EvG_YWChbdii];\n[clip6]fps=30[fps_clip6_6MbjfU2H];\n[fps_between_xfade_HVZF1EvG_YWChbdii][fps_clip6_6MbjfU2H]xfade=transition=smoothdown:duration=1:offset=23,fps=30[between_xfade_3RlWNvho];\n[between_xfade_3RlWNvho][clip7]concat=n=2:v=1:a=0,fps=30[between_concat_OxLtEhr7];\n[between_concat_OxLtEhr7][end_xfade_xAKXZo2d]concat=n=2:v=1:a=0,fps=30[track_with_some_videos];\ncolor=black@0.0:s=384x216:d=30[CYKVVqgc_base];\n[10:v]loop=loop=900:size=900,setpts=PTS-STARTPTS,fps=30,scale=60:30,format=rgba,colorchannelmixer=aa=1[VvcI98fO_clip];\n[CYKVVqgc_base][VvcI98fO_clip]overlay=322:2:format=auto,rotate=0,fps=30[watermark_clip];\ncolor=c=black@0.0:s=384x216:d=8[gap_eOcpsLfb];\ncolor=c=black@0.0:s=384x216:d=0.5[void_watermark_clip];\n[watermark_clip]fps=30[fps_watermark_clip_fRSzmFrO];\n[void_watermark_clip]fps=30[fps_void_watermark_clip_fhdBGNa7];\n[fps_watermark_clip_fRSzmFrO][fps_void_watermark_clip_fhdBGNa7]xfade=transition=squeezeh:duration=0.43333333333333335:offset=29.5,fps=30[end_xfade_imi5OETb];\n[end_xfade_imi5OETb][gap_eOcpsLfb]concat=n=2:v=1:a=0,fps=30[track_with_watermark];\nanullsrc=channel_layout=stereo:sample_rate=44100:d=5[gap_9ROKhKdt];\n[8:a]atrim=0:10,asetpts=PTS-STARTPTS,volume=1[audio_clip1];\nanullsrc=channel_layout=stereo:sample_rate=44100:d=5[gap_fV2D5e8A];\n[9:a]atrim=0:15,asetpts=PTS-STARTPTS,volume=1[audio_clip2];\nanullsrc=channel_layout=stereo:sample_rate=44100:d=3[gap_4fwsUHt5];\n[gap_9ROKhKdt][audio_clip1][gap_fV2D5e8A][audio_clip2][gap_4fwsUHt5]concat=n=5:v=0:a=1[track2];\n[base][track_with_some_videos]overlay=0:0[gE0LAoGU_combined_track];\n[gE0LAoGU_combined_track][track_with_watermark]overlay=0:0[video_output];\n[track2]volume=1[audio_output];\" \\\n-map '[video_output]' -map '[audio_output]' -c:v libx264 -c:a aac -b:a 320k -r 30 -s 384x216 -ss 0 -t 38 -crf 23 -preset veryfast -pix_fmt yuv420p output.mp4\n```\n\n## Video, audio and image test samples\nAll samples are from [Pixabay](https://pixabay.com/). All samples are licensed under [Pixabay License](https://pixabay.com/service/license/).\n\n* https://pixabay.com/videos/cow-ruminant-pasture-meadow-nature-186195/\n* https://pixabay.com/videos/book-pages-literature-beach-ocean-185096/\n* https://pixabay.com/videos/flower-peony-bee-insect-pollinate-165065/\n* https://pixabay.com/videos/kangaroos-marsupials-mammal-181314/\n* https://pixabay.com/videos/flower-dandelion-wild-flowers-72763/\n* https://pixabay.com/videos/highland-cows-cows-cattle-scotland-65903/\n* https://pixabay.com/videos/robin-bird-forest-nature-spring-21723/\n* https://pixabay.com/music/beats-weeknds-122592/\n* https://pixabay.com/music/future-bass-ever-flowing-12277/\n\n## License\nMIT","readmeFilename":"README.md"}