- CPU ใช้งานต่อ Task: 3-5%
- GPU ใช้งานรวม: 25%
- ปัญหา: ไม่ได้ใช้ Hardware เต็มประสิทธิภาพ
# 1. เพิ่ม Hardware Acceleration
'-hwaccel', 'auto'
# 2. เปลี่ยนจาก CBR เป็น VBR
'-rc', 'vbr_latency' # แทน 'cbr'
# 3. เพิ่ม AMD AMF Optimizations
'-quality', 'speed'
'-usage', 'ultralowlatency'
'-preanalysis', '1'แก้ไขในไฟล์ video_converter_gui.py บรรทัด ~175:
# ✅ เร็วที่สุด (คุณภาพลดลงเล็กน้อย)
'-quality', 'speed'
'-usage', 'ultralowlatency'
# ⚖️ สมดุล (แนะนำ)
'-quality', 'balanced'
'-usage', 'lowlatency'
# 🎨 คุณภาพสูง (ช้ากว่า)
'-quality', 'quality'
'-usage', 'transcoding'# เร็วที่สุด แต่ขนาดไฟล์อาจไม่แน่นอน
'-rc', 'cqp' # Constant Quantization Parameter
'-qp_i', '23'
'-qp_p', '23'
# หรือ VBR ธรรมดา
'-rc', 'vbr_peak'
'-qmin', '20'
'-qmax', '28'แก้ในโค้ดบรรทัด ~175 เพิ่ม:
'-threads', '0' # ใช้ทุก CPU cores'-preanalysis', '0' # แทน '1'command = [
FFMPEG_PATH,
'-y',
'-hwaccel', 'auto',
'-hwaccel_output_format', 'auto',
'-i', input_path,
'-c:v', 'h264_amf',
'-b:v', new_bitrate_kbs,
'-maxrate', f"{int(new_bitrate_bps * 1.2) // 1000}k",
'-bufsize', f"{new_bitrate_bps * 2 // 1000}k",
'-quality', 'speed',
'-rc', 'vbr_latency',
'-usage', 'ultralowlatency',
'-preanalysis', '0',
'-enforce_hrd', '0',
'-filler_data', '0',
'-c:a', 'copy',
'-progress', 'pipe:1',
'-nostats',
output_path
]# ดู GPU utilization ด้วย Task Manager
# หรือติดตั้ง GPU-Z: https://www.techpowerup.com/gpuz/
# ใช้ ffmpeg โดยตรงเพื่อทดสอบ
ffmpeg -i input.mp4 -c:v h264_amf -quality speed -rc vbr_latency -b:v 2000k test.mp4# CBR (เดิม)
Measure-Command { ffmpeg -i input.mp4 -c:v h264_amf -rc cbr -b:v 2000k test1.mp4 }
# VBR (ใหม่)
Measure-Command { ffmpeg -i input.mp4 -c:v h264_amf -rc vbr_latency -quality speed -b:v 2000k test2.mp4 }-
Bottleneck ที่ I/O (Hard Disk)
- ใช้ SSD แทน HDD
- ลด
max_workersถ้า HDD ทำงานหนัก
-
Decoder Bottleneck
- ไฟล์ input เป็น codec ที่ต้องใช้ CPU decode
- แก้: เพิ่ม
-hwaccel_output_format auto
-
FFmpeg Version เก่า
- ตรวจสอบ:
ffmpeg -version - ควรใช้ FFmpeg 5.0+ สำหรับ AMD AMF support ที่ดี
- ตรวจสอบ:
-
Driver GPU ไม่ใหม่
- อัปเดท AMD Driver: https://www.amd.com/en/support
ffmpeg -h encoder=h264_amfffmpeg -hwaccelsffmpeg -i input.mp4 -c:v h264_amf -quality speed -rc vbr_latency -b:v 2000k -f null - -benchmark- ✅
-rc vbr_latencyแทน-rc cbr→ เร็วขึ้น 20-40% - ✅
-quality speed→ ให้ความสำคัญกับความเร็ว - ✅
-usage ultralowlatency→ ลด latency - ✅
-hwaccel auto→ ใช้ hardware decoder - ✅
-preanalysis 1→ วิเคราะห์ก่อน encode
- GPU Usage: 50-80% (ขึ้นกับคุณภาพ input)
- ความเร็วเพิ่มขึ้น: 30-50% เทียบกับ CBR
- คุณภาพ: ลดลงเล็กน้อย (1-3% ที่มองไม่เห็น)
หมายเหตุ: ถ้ายังช้า ให้ลดจำนวน max_workers เพราะอาจเป็น I/O bottleneck