กลับไปหน้าสูตร
#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

TaskCommand
High-Quality GIFffmpeg -i in.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" out.gif
Video to WebPffmpeg -i in.mp4 -vcodec libwebp -lossless 0 -q:v 70 -loop 0 out.webp
Thumbnail Sheetffmpeg -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 เพื่อเช็กผลงาน