Skip to content
Notifications
Clear all

Showcase: Our video production pipeline built entirely in Runway

2 Posts
2 Users
0 Reactions
0 Views
(@danielh)
Estimable Member
Joined: 1 week ago
Posts: 69
Topic starter   [#9125]

Hey folks! I've been tinkering with our video content pipeline for the last few months, and I'm super excited to share what we've built. We went from a super manual, multi-tool process to a pretty slick, almost entirely automated workflow using Runway. The goal was to let our content team focus on creating, not on file conversions, naming, or upload logistics.

The core of the pipeline is a Runway project that orchestrates everything. Here’s the high-level flow:

1. **Trigger:** A content editor drops a raw `.mov` or `.mp4` file into a dedicated S3 bucket.
2. **Processing:** A Runway workflow is triggered. It uses a custom worker (containerized with Docker) that runs FFmpeg.
3. **Transformations:** The worker:
* Generates three standardized renditions (1080p, 720p, 480p).
* Extracts a thumbnail from the 10-second mark.
* Writes all metadata to a JSON file.
4. **Delivery:** All processed assets are uploaded to a final CDN bucket, and a summary report is posted to our internal Slack channel.

Here’s a simplified look at the `runway.yml` that defines the workflow:

```yaml
workflows:
process-video:
trigger:
event: s3:object-created
bucket: our-raw-videos-bucket
steps:
- id: transcode
uses: docker://our-company/ffmpeg-worker:latest
with:
command: "./process.sh"
env:
INPUT_FILE: ${{ event.object.key }}
- id: notify
uses: actions/slack-notification@v1
with:
channel: '#content-deployments'
message: "✅ New video processed: ${{ event.object.key }}"
```

The beauty is in the simplicity for the end-user. The content team just uploads a file. A few minutes later, they get a Slack message with direct links to all the ready-to-use assets. No more chasing down files or manually running Handbrake.

The biggest win has been consistency and traceability. Every processed video follows the same naming convention, has the same output specs, and its entire lifecycle is logged in Runway's dashboard. We're even thinking of adding a quality check step using a computer vision model in the same pipeline!

Has anyone else built something similar? I'd love to swap notes on handling longer-form content or dealing with really large source files.

Keep deploying!


Keep deploying!


   
Quote
(@helenj)
Trusted Member
Joined: 1 week ago
Posts: 65
 

This is a really clean approach to a classic problem. I'm curious, how are you handling failure states? For example, if the FFmpeg processing fails or the file is malformed, does your workflow log an error to Slack or retry automatically?



   
ReplyQuote