GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - StreamPot/StreamPot: Run FFmpeg as an API with fluent-ffmpeg compatibility, queues and S3 storage.

BranchesTags
Open more actions menu

Latest commit

 

History

146 Commits
146 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
packages
packages
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 

Repository files navigation

StreamPot

Note

StreamPot is still in the early stages of development, we would appreciate your feedback.

StreamPot is a project that provides scaffolding for transforming media in your app (e.g. trimming a video, stripping the audio from a video, transcoding a video from mp4 to webp).

We are building this because an increasing number of projects are transforming media as part of their workflow.

If you want a no-setup way to run this, check out StreamPot.

Running the server locally

Visit the Installation (server) page for self-hosting instructions. If you'd like to use the hosted version, please sign up and give it a try.

Running a job in your app

Note: You should only run this from your server.

Install the client library

pnpm i @streampot/client

Initialise the client & submit a job.

import StreamPot from '@streampot/client'
const EXAMPLE_VID = 'https://sample-videos.com/video321/mp4/240/big_buck_bunny_240p_1mb.mp4'

const client = new StreamPot({
    baseUrl: 'http://127.0.0.1:3000', // adjust if you are serving in production
})

const clipJob = await client.input(EXAMPLE_VID)
    .setStartTime(1)
    .setDuration(2)
    .output('output.mp4')
    .run()
const jobId = clipJob.id

// In production you should set up a poll.
setTimeout(async () => {
    const job = await client.checkStatus(jobId)
    if (job.status === 'completed'){
        console.log(job.output_url)
    } 
},10000) // wait 10 seconds

Acknowledgements

This project is heavily reliant on the amazing work of the ffmpeg and fluent-ffmpeg teams

Feedback

If you want to use StreamPot in your project, I'd be happy to help & improve it based on your feedback. Email me at [email protected] or let's have a call.

About

Run FFmpeg as an API with fluent-ffmpeg compatibility, queues and S3 storage.

streampot.io

Topics

apiffmpegffmpeg-wrapperfluent-ffmpegmedia

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

877 stars

Watchers

5 watching

Forks

35 forks
Report repository

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.