3 months ago
Railway FFmpeg Video Processing Issue Report
Issue Description
Complex multi-video processing with transitions consistently fails on Railway with SIGKILL, while simple single-video processing works reliably.
Technical Details
Environment:
Platform: Railway
Resources: 4GB RAM, 2 vCPUs, 60-minute timeout
FFmpeg: Properly installed at
/usr/bin/ffmpeg
Failure Pattern:
Complex filter (3 videos + transitions): Consistent SIGKILL termination
Simple filter (1 video): Consistent success
Same complex operations work in 20 second on local laptop
Error Logs:
Process exited with code: null signal: SIGKILLWorking vs Failing Filters:
Failing (SIGKILL):
javascript
const filter = [
`[0:v]setpts=PTS/1.2,fps=24,eq=saturation=1.5[v0];` +
`[1:v]setpts=PTS/1.2,fps=24,eq=saturation=1.5[v1];` +
`[2:v]setpts=PTS/1.2,fps=24,eq=saturation=1.5[v2];`,
`[v0][v1]${transition}[v01];` +
`[v01][v2]${transition2}[outv]`
];Working:
javascript
const filter = `[0:v]setpts=PTS/1.2,fps=24,eq=saturation=1.5[outv]`;Root Cause Analysis
The consistent SIGKILL during multi-video processing indicates Railway's container environment cannot handle the memory requirements for processing multiple simultaneous video streams with complex transitions, despite having 4GB RAM allocated.
Platform Comparison
Railway: Complex filter fails with SIGKILL, simple filter works
Google Cloud Run: Complex filter hangs indefinitely, simple filter works
Local environment: All operations work in ~20 second
LINK GITHUB : https://github.com/hasanbarsi1/video_edit_api
2 Replies
3 months ago
Hey there! We've found the following might help you get unblocked faster:
🧵 Issue with Custom Binary (ffmpeg) Path in Railway Deployment
🧵 Memory Issue ? Python Flask - Audio Processing Project - Pydub - Worker was sent SIGKILL!
If you find the answer from one of these, please let us know by solving the thread!
3 months ago
This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.
Status changed to Open ray-chen • 3 months ago
3 months ago
Try adding these options to your existing FFmpeg command:
.outputOptions([
'-max_muxing_queue_size', '1024',
'-threads', '1',
'-preset', 'ultrafast'
])
This should prevent the SIGKILL.