takeone-youtube-clone/TODO_gpu_acceleration.md
2026-04-05 03:30:22 +03:00

1.4 KiB

GPU Acceleration Implementation Steps

Status: In Progress Started

Hardware Confirmed:

  • 2x NVIDIA RTX 3060 (12GB each)
  • NVIDIA Driver 580.76.05, CUDA 13.0
  • FFmpeg 4.4.2 with NVENC support (h264_nvenc, hevc_nvenc)
  • hwaccels: cuda

Completed Steps

  • Verified GPU/FFmpeg setup
  • Created config/ffmpeg.php
  • Updated CompressVideoJob.php with NVENC
  • Updated VideoController.php queue dispatch

Next Steps (Approved Plan)

  1. Verify GPU/FFmpeg readiness
  2. Create config/ffmpeg.php for global NVENC settings
  3. Update app/Jobs/CompressVideoJob.php: Switch to h264_nvenc (CRF 23, preset p4)
  4. Update app/Http/Controllers/VideoController.php: Queue dispatch tweaks
  5. Setup queue: php artisan queue:table && migrate && QUEUE_CONNECTION=database (tables exist)
  6. Test encoding: Upload video, monitor logs/GPU util → Now implementing HLS GPU playback
  7. Optional Create GenerateHlsJob + frontend HLS.js player Planning
  8. Update model/controller/views for HLS playback

Commands to Run After Code Changes

php artisan config:clear
php artisan queue:table
php artisan migrate
# Edit .env: QUEUE_CONNECTION=database
php artisan queue:work --queue=video-processing --tries=3
# Test upload, tail -f storage/logs/laravel.log && watch nvidia-smi

Testing

  • Upload test video
  • Check encoding speed (should be 5-10x faster)
  • Verify quality/size