กลับไปหน้าสูตร
#ffmpeg#video#audio#encoding#cli#cheatsheet#processing
FFmpeg CLI Cheatsheet
คู่มือฉบับเต็ม FFmpeg: เจาะลึกการใช้ Stream Mapping, Complex Filters, การทำ Hardware Acceleration และการจัดการ Metadata ขั้นสูง
11 มีนาคม 2569อ่านประมาณ 2 นาที
สารบัญสูตร
🎬 Essential Flags & Structure
โครงสร้างคำสั่งมาตรฐาน: ffmpeg [global_flags] -i [input] [encoding_flags] [output]
| Global Flag | ความหมาย |
|---|---|
-y | เขียนทับไฟล์เดิมทันทีโดยไม่ถาม |
-n | ไม่เขียนทับไฟล์เดิม (ข้ามทันทีถ้ามีอยู่แล้ว) |
-hwaccel | เปิดใช้งานการถอดรหัสผ่าน Hardware (เช่น auto, cuda, vaapi) |
-hide_banner | ซ่อนข้อมูลเวอร์ชันและลิขสิทธิ์ (สะอาดตา) |
🏗 Stream Mapping (The Power of -map)
การเลือกเฉพาะบาง Track จากไฟล์ที่มีหลายเสียงหรือหลายซับไตเติล:
-map 0:v:0: เลือกวิดีโอตัวแรกจากไฟล์อินพุตที่ 1-map 0:a:1: เลือกเสียงภาษาที่สอง-map 0:s:0: เลือกซับไตเติลตัวแรก-c copy: ก็อปปี้ทุกอย่างโดยไม่ Encode ใหม่ (เร็วที่สุด)
# ตัวอย่าง: รวมไฟล์วิดีโอจากไฟล์ 1 และเสียงจากไฟล์ 2 เข้าด้วยกัน
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v:0 -map 1:a:0 -c copy output.mp4
⚡ Video Encoding & Compression (Pro Tips)
🏎 Hardware Acceleration (GPU Encoding)
ช่วยลดเวลา Encode ได้มหาศาล (ขึ้นอยู่กับเครื่อง):
- macOS (Apple Silicon):
-c:v h264_videotoolboxหรือhevc_videotoolbox - NVIDIA:
-c:v h264_nvencหรือhevc_nvenc - Intel:
-c:v h264_qsv
📉 การบีบอัดขั้นสูง (High Efficiency)
- H.265 (HEVC):
-c:v libx265 -crf 28(ไฟล์เล็กกว่า H.264 ครึ่งหนึ่ง) - AV1 (Modern):
-c:v libaom-av1 -crf 30(ล้ำสุดในปัจจุบัน) - Two-pass Encoding: เพื่อความแม่นยำสูงสุดของคุณภาพเทียบกับขนาดไฟล์
🎭 Complex Filtergraphs (-vf / -af)
การแต่งวิดีโอและเสียงด้วย Filter:
| Filter | การใช้งาน |
|---|---|
scale=1280:720 | ปรับขนาดเป็น 720p (HD) |
fps=fps=30 | ปรับ Frame rate เป็น 30 |
unsharp=5:5:1.0 | เพิ่มความคมชัด (Sharpen) |
transpose=1 | หมุนวิดีโอ 90 องศาตามเข็มนาฬิกา |
crop=w:h:x:y | ครอปวิดีโอเฉพาะส่วน |
drawtext=... | ใส่ข้อความลงในวิดีโอ (Watermark) |
# ตัวอย่าง: ปรับขนาด และปรับเฟรมเรตพร้อมกัน
ffmpeg -i in.mp4 -vf "scale=1920:-1,fps=60" out.mp4
🖼 Image, GIF & Animation
| Task | Command |
|---|---|
| High-Quality GIF | ffmpeg -i in.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" out.gif |
| Video to WebP | ffmpeg -i in.mp4 -vcodec libwebp -lossless 0 -q:v 70 -loop 0 out.webp |
| Thumbnail Sheet | ffmpeg -i in.mp4 -vf "select=not(mod(n\,100)),scale=160:-1,tile=10x10" out.png |
🎵 Audio Advanced Management
- Normalizing Audio:
ffmpeg -i in.mp3 -af "loudnorm" out.mp3 - Volume Change:
ffmpeg -i in.mp3 -af "volume=1.5" out.mp3(เพิ่มเสียง 50%) - Remove Background Noise:
ffmpeg -i in.mp3 -af "afftdn" out.mp3(ลดเสียงรบกวนพื้นฐาน)
📂 Metadata Manipulation
- Edit Title:
ffmpeg -i in.mp4 -metadata title="My Video" out.mp4 - Change Creation Time:
ffmpeg -i in.mp4 -metadata creation_time="2026-01-01 12:00:00" out.mp4 - Remove All Metadata:
ffmpeg -i in.mp4 -map_metadata -1 out.mp4(เพื่อความเป็นส่วนตัว)
📅 Automation & Batch Recipes
1) แปลงวิดีโอสำหรับ YouTube (H.264 High Profile)
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level 4.0 -pix_fmt yuv420p -b:v 10M -acodec aac -b:a 192k output.mp4
2) การดึงซับไตเติลออกจากไฟล์ MKV เป็น SRT
ffmpeg -i movie.mkv -map 0:s:0 subtitle.srt
3) การอัดหน้าจอพร้อมเสียง (macOS)
ffmpeg -f avfoundation -i "1:0" -c:v libx264 -preset ultrafast out.mp4
💡 Troubleshooting Tools
ffprobe -v quiet -print_format json -show_format -show_streams file.mp4: ตรวจสอบข้อมูลไฟล์ในรูปแบบ JSON (ดีมากสำหรับ Automation)ffplay file.mp4: โปรแกรมเล่นไฟล์วิดีโอและเสียงผ่าน CLI เพื่อเช็กผลงาน