
FFmpeg
กรอบงานการประมวลผลมัลติมีเดียโอเพนซอร์ส
เข้ารหัส, ถอดรหัส, แปลงสัญญาณ, สตรีม & แปลงไฟล์เสียงและวิดีโอผ่าน FFmpeg API.
FFmpeg คืออะไร?
FFmpeg เป็นกรอบงานมัลติมีเดียโอเพนซอร์สชั้นนำที่ช่วยให้นักพัฒนาสามารถบันทึก, แปลงและสตรีมเนื้อหาเสียงและวิดีโอได้ มันรวมชุดไลบรารีที่ครอบคลุม—เช่น libavcodec, libavformat, libavutil, libavfilter, libswscale, และ libswresample—ซึ่งให้เครื่องมือที่แข็งแกร่งสำหรับจัดการงานมัลติมีเดียที่หลากหลาย ด้วยการสนับสนุนหลายร้อยโค้ดเคและฟอร์แมต FFmpeg เป็นพลังขับเคลื่อนให้กับแอปพลิเคชันจำนวนมาก ตั้งแต่ซอฟต์แวร์ตัดต่อวิดีโอจนถึงเซิร์ฟเวอร์สตรีมและเครื่องเล่นสื่อ
FFmpeg ได้รับการนำไปใช้อย่างกว้างขวางในหลายอุตสาหกรรมเนื่องจากความยืดหยุ่น, ประสิทธิภาพ, และการสนับสนุนจากชุมชนที่กระตือรือร้น มันจัดการทุกอย่างตั้งแต่การแปลงฟอร์แมตอย่างง่ายจนถึงการกรองวิดีโอขั้นซับซ้อนและการสตรีมแบบเรียลไทม์ ไม่ว่าคุณจะสร้างเซิร์ฟเวอร์สื่อ, เครื่องเล่นบนเดสก์ท็อป, หรือสายงานการแปลงสัญญาณบนคลาวด์ FFmpeg มอบความสามารถในการประมวลผลที่เชื่อถือได้และคุณภาพสูง เครื่องมือบรรทัดคำสั่งเช่น ffmpeg, ffplay, และ ffprobe ทำให้การรวมเข้ากับสคริปต์และกระบวนการอัตโนมัติง่ายขึ้น ในขณะที่ C API และไบด์ดิ้งของมัน (เช่น สำหรับ Python) ให้การควบคุมโปรแกรมเชิงลึก
เริ่มต้นใช้งาน FFmpeg
เพื่อเริ่มใช้ FFmpeg ให้ติดตั้งผ่านตัวจัดการแพ็กเกจของระบบของคุณ (เช่น `apt install ffmpeg` บน Ubuntu, `brew install ffmpeg` บน macOS) หรือดาวน์โหลดไบนารีที่สร้างไว้ล่วงหน้าจากเว็บไซต์ทางการ สำหรับการใช้งานโปรแกรม ให้ติดตั้ง Python wrapper ผ่าน `pip install ffmpeg-python` หรือใช้หัวไฟล์ไลบรารี C อย่างเป็นทางการ FFmpeg ยังมีให้ดาวน์โหลดบน GitHub ที่ [FFmpeg GitHub](https://github.com/FFmpeg/FFmpeg) ซึ่งคุณสามารถสร้างจากซอร์สโค้ดเพื่อกำหนดค่าตามต้องการ น้ำหนักเบาและการสนับสนุนข้ามแพลตฟอร์มทำให้เหมาะสำหรับการใช้งานบนเดสก์ท็อป, เซิร์ฟเวอร์, และการปรับใช้ในระบบฝังตัว.
ติดตั้ง FFmpeg ผ่านตัวจัดการแพคเกจ
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg
# Python wrapper
pip install ffmpeg-python
แปลงสื่อระหว่างรูปแบบ
FFmpeg มีความเชี่ยวชาญในการแปลงไฟล์สื่อระหว่างรูปแบบและโค้ดเค้กหลายร้อยแบบ คุณสามารถแปลงวิดีโอจาก MP4 ไปเป็น WebM, ดึงเสียงจากไฟล์วิดีโอ, หรือเปลี่ยนรูปแบบคอนเทนเนอร์โดยไม่ต้องเข้ารหัสใหม่ (stream copy) การตั้งค่าเริ่มต้นอัจฉริยะของมันรับประกันคุณภาพสูง ในขณะที่ตัวเลือกขั้นสูงช่วยให้คุณปรับแต่งบิตเรต, ความละเอียด, อัตราเฟรม, และพารามิเตอร์ของโค้ดเค้กได้อย่างละเอียด ไม่ว่าคุณจะเตรียมเนื้อหาสำหรับการสตรีมบนเว็บ, การเก็บถาวร, หรือการเล่นบนอุปกรณ์เฉพาะ FFmpeg ให้การควบคุมที่แม่นยำต่อคุณภาพและความเข้ากันได้ของผลลัพธ์ อินเทอร์เฟซบรรทัดคำสั่งสนับสนุนสายกรองซับซ้อนสำหรับการปรับขนาด, การครอป, และการใช้เอฟเฟกต์ระหว่างการแปลง
วิธีแปลง MP4 เป็น WebM ด้วย FFmpeg?
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
การสตรีมแบบเรียลไทม์และการถ่ายทอดสด
FFmpeg รองรับการรับข้อมูล, การแปลงสัญญาณ, และการสตรีมสื่อสดผ่านโปรโตคอลเช่น RTMP, HLS, และ SRT. มันสามารถจับภาพจากเว็บแคม, ไมโครโฟน, หรือแหล่งเครือข่ายและส่งสตรีมไปยังแพลตฟอร์มเช่น YouTube, Twitch, หรือเซิร์ฟเวอร์ RTMP ที่กำหนดเอง. ด้วยตัวเลือกความหน่วงต่ำและการสตรีมแบบอัตราบิตปรับเปลี่ยนได้, FFmpeg ทำหน้าที่เป็นแรงขับเคลื่อนของสายงานการถ่ายทอดสดสำหรับเหตุการณ์, การเล่นเกม, และการเฝ้าระวัง. ความสามารถของมันในการจัดการอินพุตหลายแหล่ง, การซ้อนกราฟิก, และการใช้ฟิลเตอร์แบบเรียลไทม์ทำให้เหมาะสำหรับการตั้งค่าการสตรีมระดับมืออาชีพ. คุณยังสามารถแบ่งส่วนผลลัพธ์สำหรับ DASH/HLS เพื่อการเล่นแบบปรับเปลี่ยนได้บนอุปกรณ์มือถือและเว็บไคลเอนต์.
วิธีสตรีมไฟล์วิดีโอไปยัง YouTube Live?
ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/your_stream_key"
การกรองวิดีโอและการประมวลผลหลังการบันทึก
เฟรมเวิร์ก libavfilter ของ FFmpeg ทำให้สามารถกรองวิดีโอแบบเรียลไทม์ที่มีประสิทธิภาพผ่านกราฟเชิงทิศทางที่ไม่มีวงจรของฟิลเตอร์ คุณสามารถครอป, ปรับขนาด, หมุน, แก้ไขการแยกฟิลด์, ลดสัญญาณรบกวน, วางลายน้ำ, เพิ่มข้อความ, ปรับสี, และใช้เอฟเฟกต์ซับซ้อนเช่นการช้าลงหรือการทำไทม์แลป—ทั้งหมดนี้โดยไม่ต้องเข้ารหัสสตรีมทั้งหมด ฟิลเตอร์สามารถเชื่อมต่อกันเป็นหลายขั้นตอนสำหรับการประมวลผลหลายชั้น และการเร่งความเร็วด้วยฮาร์ดแวร์ (เช่น NVENC, VAAPI, VideoToolbox) รับประกันประสิทธิภาพบน GPU สมัยใหม่ ทำให้ FFmpeg เป็นเครื่องมือที่ขาดไม่ได้สำหรับผู้ตัดต่อวิดีโอ, ผู้สร้างเนื้อหา, และนักพัฒนาที่สร้างสายการประมวลผลสื่อที่ต้องการการปรับปรุงภาพหรือการทำให้รูปแบบเป็นมาตรฐาน
วิธีครอบตัด ปรับขนาด และเพิ่มลายน้ำให้กับวิดีโอ?
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]crop=1280:720:0:0[scaled];[scaled][1:v]overlay=10:10" -c:a copy output.mp4
สกัดและจัดการเมตาดาต้าและคำบรรยาย
FFmpeg ให้การควบคุมเต็มรูปแบบต่อเมตาดาต้า (แท็ก) และคำบรรยายที่ฝังอยู่ในไฟล์สื่อ คุณสามารถดึงออก, แก้ไข หรือเอาเมตาดาต้าออก (เช่น ชื่อเรื่อง, ศิลปิน, อัลบั้ม, ข้อมูล GPS) ด้วยคำสั่งง่ายๆ หรือแปลงคำบรรยายระหว่างรูปแบบเช่น SRT, ASS, และ VTT มันรองรับการฝังคำบรรยายลงในวิดีโอหรือการฝังเป็นแทร็กแยกต่างหาก สำหรับกระบวนการทำให้เข้าถึงได้และการแปลภาษา FFmpeg อนุญาตการประมวลผลเป็นชุดของไฟล์คำบรรยาย, การปรับเวลา, และการจัดการแทร็กภาษา สิ่งนี้ทำให้เหมาะสำหรับการแปลคำบรรยาย, การจัดการสินทรัพย์สื่อ, และการปฏิบัติตามมาตรฐานการออกอากาศที่ต้องการเมตาดาต้าแบบฝัง
วิธีดึงซับไตเติลจากไฟล์วิดีโอ?
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
