{"_id":"@berryn/ffmpeg-probe","_rev":"3-7e021c68502d89f394a3913fb91d73bf","name":"@berryn/ffmpeg-probe","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@berryn/ffmpeg-probe","version":"0.1.0","author":"Berryn Core Engineering Team","license":"MIT","_id":"@berryn/ffmpeg-probe@0.1.0","maintainers":[{"name":"aaryan28","email":"aaryan28rwt@gmail.com"}],"homepage":"https://github.com/Grevix/berryn","bugs":{"url":"https://github.com/Grevix/berryn/issues"},"dist":{"shasum":"2e4f32ba7858633bf8b3c0ac2f2a366b7144c7f6","tarball":"https://registry.npmjs.org/@berryn/ffmpeg-probe/-/ffmpeg-probe-0.1.0.tgz","fileCount":12,"integrity":"sha512-fA0lZ6djJvKFbbpS9y6TTRYxJkugELYCLXDwQ1mV35cUnug0tDR8A30WQiSRD40D3lFPgc0PS4pn+ei92GMNqw==","signatures":[{"sig":"MEUCIB31QVIJpSj9K8Rnu1nHlXtOQT2ukPAvqFG9/dLPrajnAiEAvlj88eoPVlnKzvBCNLG+5R2hk7Z5YE7wY6yDFpvTnPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"build":"tsc --build","clean":"rimraf dist"},"_npmUser":{"name":"aaryan28","email":"aaryan28rwt@gmail.com"},"repository":{"url":"https://github.com/Grevix/berryn.git","type":"git"},"description":"Berryn FFmpeg Research Probe — Evidence-driven inspection of fluent-ffmpeg migration patterns and direct-spawn recommendation","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@berryn/core":"0.1.0","@berryn/diagnostics":"0.1.0","@berryn/project-inspect":"0.1.0","@berryn/adapter-framework":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ffmpeg-probe_0.1.0_1787000949645_0.43466741085603755","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@berryn/ffmpeg-probe","version":"0.2.0","author":{"name":"Berryn Core Engineering Team"},"license":"MIT","_id":"@berryn/ffmpeg-probe@0.2.0","maintainers":[{"name":"aaryan28","email":"aaryan28rwt@gmail.com"}],"homepage":"https://github.com/Grevix/berryn#readme","bugs":{"url":"https://github.com/Grevix/berryn/issues"},"dist":{"shasum":"5ea43e3a194201502ae1a04b4d318df9a335ae19","tarball":"https://registry.npmjs.org/@berryn/ffmpeg-probe/-/ffmpeg-probe-0.2.0.tgz","fileCount":10,"integrity":"sha512-1nR8pQ+2MJCNxL61lFndMzf0TdrLCjEIkyVgh+89V39s44P3aKiJY9iNSzNOnY02fdZ7JO5Ac0PwL5nyG3iWSg==","signatures":[{"sig":"MEQCIAQnmM1M9KOIr1cWoRMrwoGcCKLh99nBhGIm6pzffUWKAiAuCulncoeKsvDIeAkSpCcg4R/GQBSx6VqodNTKJIXkbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9654},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"fc466500ff83c2753bb41429713719eacd7895d4","scripts":{"build":"tsc --build","clean":"rimraf dist"},"_npmUser":{"name":"aaryan28","email":"aaryan28rwt@gmail.com"},"repository":{"url":"git+https://github.com/Grevix/berryn.git","type":"git"},"_npmVersion":"11.9.0","description":"Berryn FFmpeg Research Probe — Evidence-driven inspection of fluent-ffmpeg migration patterns and direct-spawn recommendation","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@berryn/core":"workspace:*","@berryn/diagnostics":"workspace:*","@berryn/project-inspect":"workspace:*","@berryn/adapter-framework":"workspace:*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ffmpeg-probe_0.2.0_1788160247711_0.1297576971439265","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@berryn/ffmpeg-probe","version":"0.2.1","description":"Berryn FFmpeg Research Probe — Evidence-driven inspection of fluent-ffmpeg migration patterns and direct-spawn recommendation","repository":{"type":"git","url":"git+https://github.com/Grevix/berryn.git"},"homepage":"https://github.com/Grevix/berryn#readme","bugs":{"url":"https://github.com/Grevix/berryn/issues"},"license":"MIT","author":{"name":"Berryn Core Engineering Team"},"engines":{"node":">=22.0.0"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"type":"module","scripts":{"build":"tsc --build","clean":"rimraf dist"},"dependencies":{"@berryn/adapter-framework":"0.2.1","@berryn/core":"0.2.1","@berryn/diagnostics":"0.2.1","@berryn/project-inspect":"0.2.1"},"devDependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"gitHead":"576fa2934836ad4f045966f8a86d99490cbea05b","_id":"@berryn/ffmpeg-probe@0.2.1","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-qoxyyA96Y4hv+bu/NZd+h47v3atZ4H53WCN5NByM7WtsxA3qAocISrM3tWUqG1Q8TqBvt7b/8AQKh6iz8brQMA==","shasum":"6a452af16760328a1a43bdb18fc0bb96856341a6","tarball":"https://registry.npmjs.org/@berryn/ffmpeg-probe/-/ffmpeg-probe-0.2.1.tgz","fileCount":10,"unpackedSize":9630,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGpoImcmYpSsIMjxAoqg8qEIpBnF9uYu1+NU9j74CiuMAiEA/gYyseOLNa+HNh0tOC0dzDO77Chg3ODox2ISHRAHDr4="}]},"_npmUser":{"name":"aaryan28","email":"aaryan28rwt@gmail.com"},"directories":{},"maintainers":[{"name":"aaryan28","email":"aaryan28rwt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ffmpeg-probe_0.2.1_1788165864623_0.7809730271706878"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T21:09:09.517Z","modified":"2026-08-31T08:44:24.978Z","0.1.0":"2026-08-17T21:09:09.819Z","0.2.0":"2026-08-31T07:10:47.853Z","0.2.1":"2026-08-31T08:44:24.769Z"},"bugs":{"url":"https://github.com/Grevix/berryn/issues"},"author":{"name":"Berryn Core Engineering Team"},"license":"MIT","homepage":"https://github.com/Grevix/berryn#readme","repository":{"type":"git","url":"git+https://github.com/Grevix/berryn.git"},"description":"Berryn FFmpeg Research Probe — Evidence-driven inspection of fluent-ffmpeg migration patterns and direct-spawn recommendation","maintainers":[{"name":"aaryan28","email":"aaryan28rwt@gmail.com"}],"readme":"# @berryn/ffmpeg-probe\n\n> **Research probe evaluating `fluent-ffmpeg` usage patterns and direct process spawn recommendations.**\n\n[![npm version](https://img.shields.io/npm/v/@berryn/ffmpeg-probe.svg)](https://www.npmjs.com/package/@berryn/ffmpeg-probe)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7%2B-blue.svg)](https://www.typescriptlang.org/)\n\n---\n\n## Overview\n\n`@berryn/ffmpeg-probe` is a specialized research adapter that evaluates the feasibility of migrating codebases away from unmaintained wrappers like `fluent-ffmpeg` toward modern, secure, direct process spawning via `node:child_process.spawn`.\n\nThe probe statically inspects repository manifests, analyzes FFmpeg call chains, and outputs actionable architectural migration recommendations.\n\n---\n\n## Motivation\n\nMany Node.js applications rely on `fluent-ffmpeg` for audio/video transcoding. However, `fluent-ffmpeg`:\n- Has unaddressed edge cases around stream buffering, unhandled process errors, and zombie child processes.\n- Conceals underlying FFmpeg command-line arguments, complicating debugging and hardware acceleration (VAAPI, NVENC, QuickSync).\n- Adds unnecessary abstraction over standard Node.js stream piping.\n\nBerryn's research probe analyzes existing call sites and formulates direct-spawn conversion recipes.\n\n---\n\n## Installation\n\n```bash\n# Using pnpm\npnpm add @berryn/ffmpeg-probe\n\n# Using npm\nnpm install @berryn/ffmpeg-probe\n```\n\n---\n\n## Usage Examples\n\n### Inspecting a Target Project for `fluent-ffmpeg`\n\n```typescript\nimport { createRunContext } from '@berryn/core';\nimport { FfmpegProbeAdapter } from '@berryn/ffmpeg-probe';\n\nconst adapter = new FfmpegProbeAdapter();\nconst context = createRunContext({ cwd: '/workspace/video-service' });\n\nconst { value: result, diagnostics } = await adapter.inspectTarget('/workspace/video-service', context);\n\nconsole.log(`Fluent-FFmpeg Detected: ${result.fluentFfmpegDetected}`);\nconsole.log(`Recommended Path: ${result.recommendedPath}`); // 'direct-spawn'\nconsole.log(`Observed Patterns:`, result.observedPatterns);\n\nconst feasibility = await adapter.evaluateMigrationFeasibility('/workspace/video-service');\nconsole.log(`Feasible: ${feasibility.feasible}, Approach: ${feasibility.recommendedApproach}`);\n```\n\n---\n\n## Exported Symbols\n\n| Symbol | Category | Description |\n|---|---|---|\n| `FfmpegProbeAdapter` | Class | `VerticalAdapter` implementation for static FFmpeg usage analysis. |\n| `FfmpegInspectionResult` | Interface | Schema containing detection flags, observed patterns, and recommended migration paths. |\n\n---\n\n## Links\n\n- **Repository**: [https://github.com/Grevix/berryn](https://github.com/Grevix/berryn)\n- **License**: [MIT](https://opensource.org/licenses/MIT) © 2026 Berryn Core Engineering Team\n","readmeFilename":"README.md"}