กลับไปหน้าบทความ

อ่าน 15 นาที

FFmpeg

FFmpeg เป็น โครงการ ซอฟต์แวร์โอเพนซอร์สฟรี ที่ประกอบด้วยชุด ไลบรารี และ โปรแกรม สำหรับจัดการไฟล์ และสตรีมวิดีโอ เสียง และมัลติมีเดียอื่นๆ หัวใจ หลักคือเครื่องมือ บรรทัดคำสั่ง...

FFmpeg

FFmpeg
ผู้เขียนต้นฉบับFabrice Bellard Bobby Bingham (libavfilter) [ 1 ]
นักพัฒนาทีม FFmpeg
ปล่อย20 ธันวาคม พ.ศ. 2543 [ 2 ] ( 20 ธันวาคม 2000 )
เวอร์ชันเสถียร
8.1.2 [ 3 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 17 มิถุนายน 2026
เขียนเป็นCและการประกอบ[ 4 ]
ระบบปฏิบัติการหลากหลาย รวมถึงWindows , macOSและLinux ( โปรแกรม ที่เรียกใช้งานได้มีให้เฉพาะจากบุคคลที่สามเท่านั้น เนื่องจากโครงการนี้แจกจ่ายเฉพาะซอร์สโค้ด ) [ 5 ] [ 6 ]
แพลตฟอร์มx86 , ARM , PowerPC , MIPS , RISC-V , DEC Alpha , Blackfin , AVR32 , SH-4และSPARC ; สามารถคอมไพล์สำหรับคอมพิวเตอร์เดสก์ท็อป อื่นๆ ได้
พิมพ์กรอบมัลติมีเดีย
ใบอนุญาตLGPL-2.1 หรือเวอร์ชันที่ใหม่กว่า , GPL-2.0 หรือเวอร์ชันที่ใหม่กว่า ไม่สามารถแจกจ่ายซ้ำได้หากคอมไพล์ด้วยซอฟต์แวร์ใด ๆ ที่มีใบอนุญาตที่ไม่เข้ากันกับ GPL [ 7 ]
เว็บไซต์ffmpeg.org
ที่เก็บข้อมูลgit .ffmpeg .org /ffmpeg .git

FFmpegเป็น โครงการ ซอฟต์แวร์โอเพนซอร์สฟรีที่ประกอบด้วยชุดไลบรารีและโปรแกรม สำหรับจัดการไฟล์ และสตรีมวิดีโอ เสียง และมัลติมีเดียอื่นๆหัวใจ หลักคือเครื่องมือ บรรทัดคำสั่งffmpegที่ออกแบบมาเพื่อประมวลผลไฟล์วิดีโอและเสียง มีการใช้งานอย่างแพร่หลายสำหรับการแปลง รูปแบบไฟล์ การแก้ไขพื้นฐาน (การตัดแต่งและการต่อวิดีโอ ) การปรับขนาดวิดีโอ เอฟเฟกต์ หลังการผลิตวิดีโอและการปฏิบัติตามมาตรฐาน ( SMPTE , ITU )

FFmpeg ยังมีเครื่องมืออื่นๆ อีก ได้แก่ffplayโปรแกรมเล่นสื่อแบบง่าย และffprobeเครื่องมือบรรทัดคำสั่งสำหรับแสดงข้อมูลสื่อ ในบรรดาไลบรารีที่รวมอยู่ ได้แก่libavcodec ซึ่งเป็นไลบรารี ตัวแปลงสัญญาณเสียง/วิดีโอที่ใช้โดยผลิตภัณฑ์ซอฟต์แวร์เชิงพาณิชย์และฟรีหลายตัวlibavformat (Lavf) [ 8 ] ซึ่งเป็นไลบรารีสำหรับ มัลติเพล็กซ์และดีมัลติ เพ ล็กซ์คอนเทนเนอร์ เสียง/วิดีโอและ libavfilter ซึ่งเป็นไลบรารีสำหรับการปรับปรุงและแก้ไขตัวกรองผ่านกราฟตัวกรองแบบGStreamer [ 9 ]

FFmpeg เป็นส่วนหนึ่งของเวิร์กโฟลว์ของโครงการซอฟต์แวร์อื่นๆ อีกมากมาย และไลบรารีของมันเป็นส่วนประกอบหลักของโปรแกรมเล่นสื่อ เช่นVLCและถูกรวมอยู่ในการประมวลผลหลักสำหรับYouTubeและBilibili [ 10 ] มีตัวเข้ารหัสและตัวถอดรหัสสำหรับรูปแบบไฟล์เสียงและวิดีโอหลาย รูปแบบ ทำให้มีประโยชน์อย่างมากสำหรับการแปลงรหัสไฟล์สื่อทั่วไปและไฟล์สื่อที่ไม่ทั่วไป

FFmpeg ได้รับการเผยแพร่ภายใต้LGPL-2.1-หรือเวอร์ชันที่ใหม่กว่าหรือGPL-2.0-หรือเวอร์ชันที่ใหม่กว่าขึ้นอยู่กับว่าได้เปิดใช้งานตัวเลือกใด[ 11 ]

ประวัติโครงการ

โครงการนี้เริ่มต้นโดยFabrice Bellard [ 11 ] (โดยใช้นามแฝง "Gérard Lantau") ในปี 2000 และนำโดย Michael Niedermayer ตั้งแต่ปี 2004 จนถึงปี 2015 [ 12 ]นักพัฒนา FFmpeg บางคนก็เป็นส่วนหนึ่งของโครงการ MPlayer ด้วย

ตัวอักษร "FF" ใน FFmpeg ย่อมาจาก "fast forward" [ 13 ]โลโก้นี้แสดงถึง รูปแบบการสแกน แบบซิกแซกที่แสดงให้เห็นว่าตัวแปลงสัญญาณวิดีโอ MPEG จัดการการเข้ารหัสเอนโทรปีอย่างไร[ 14 ]

เมื่อวันที่ 13 มีนาคม 2554 กลุ่มนักพัฒนา FFmpeg ได้ตัดสินใจแยกโครงการออกมาภายใต้ชื่อ Libav [ 15 ] [ 16 ] [ 17 ]กลุ่มดังกล่าวตัดสินใจแยกโครงการออกมาเนื่องจากความขัดแย้งกับผู้บริหารของ FFmpeg [ 18 ] [ 19 ] [ 20 ] Libav ถูกประกาศว่าถูกทิ้งร้างในปี 2563 [ 21 ]

เมื่อวันที่ 10 มกราคม 2557 พนักงานของ Google สองคนประกาศว่ามีการแก้ไขบั๊กมากกว่า 1,000 รายการใน FFmpeg ในช่วงสองปีที่ผ่านมาโดยใช้การทดสอบแบบฟัซซ์[ 22 ]

ในเดือนมกราคม พ.ศ. 2561 โปรแกรมบรรทัดคำสั่ง ffserverซึ่งเป็นส่วนประกอบของ FFmpeg มาเป็นเวลานาน ได้ถูกลบออกไป[ 23 ] ก่อนหน้านี้นักพัฒนาได้ยกเลิกโปรแกรมดังกล่าวโดยอ้างถึงความพยายามในการบำรุงรักษาที่สูงเนื่องจาก การใช้อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน ภายใน [ 24 ]

ในเดือนเมษายน พ.ศ. 2569 Claude Mythos PreviewของAnthropicพบช่องโหว่ร้ายแรงที่มีอายุ 16 ปีในโคเดกH.264ของ FFmpeg [ 25 ] [ 26 ] [ 27 ]

โครงการนี้เผยแพร่เวอร์ชันใหม่ทุกๆ สามเดือนโดยเฉลี่ย ในขณะที่เวอร์ชันที่เผยแพร่แล้วสามารถดาวน์โหลดได้จากเว็บไซต์ นักพัฒนา FFmpeg แนะนำให้ผู้ใช้คอมไพล์ซอฟต์แวร์จากซอร์สโค้ดโดยใช้เวอร์ชันล่าสุดจากซอร์สโค้ด ของพวกเขา โดยใช้ ระบบ ควบคุมเวอร์ชันGit [ 28 ]

การพัฒนาโคเดค

ภายในโครงการ FFmpeg ได้มีการสร้างรูปแบบการเข้ารหัสวิดีโอสอง รูปแบบ พร้อมตัวแปลงสัญญาณที่เกี่ยวข้องและรูปแบบคอนเทนเนอร์ หนึ่งรูปแบบ ตัวแปลงสัญญาณวิดีโอสองตัวคือ FFV1 แบบไม่สูญเสียข้อมูล และตัวแปลงสัญญาณ Snow แบบไม่สูญเสียข้อมูลและแบบสูญเสียข้อมูล การพัฒนา Snow หยุดชะงักลง ในขณะที่รูปแบบบิตสตรีมยังไม่เสร็จสมบูรณ์ ทำให้เป็นรูปแบบทดลองมาตั้งแต่ปี 2011 รูปแบบคอนเทนเนอร์มัลติมีเดียที่เรียกว่า NUT ไม่ได้รับการพัฒนาอย่างต่อเนื่องอีกต่อไป แต่ยังคงได้รับการบำรุงรักษา[ 29 ]

ในช่วงฤดูร้อนปี 2010 นักพัฒนา FFmpeg ได้แก่ Fiona Glaser, Ronald Bultje และ David Conrad ได้ประกาศตัวถอดรหัส ffvp8 จากการทดสอบ พวกเขาพบว่า ffvp8 เร็วกว่าตัวถอดรหัสlibvpx ของ Google เอง [ 30 ] [ 31 ]ตั้งแต่เวอร์ชัน 0.6 เป็นต้นไป FFmpeg ยังรองรับWebMและVP8ด้วย[ 32 ]

ในเดือนตุลาคม พ.ศ. 2556 ได้มีการเพิ่มตัวถอดรหัส VP9 [ 33 ]ดั้งเดิมและ OpenHEVC ซึ่งเป็น ตัวถอดรหัส High Efficiency Video Coding (HEVC) แบบโอเพนซอร์ส ลงใน FFmpeg [ 34 ] ในปี พ.ศ. 2559 ตัวเข้ารหัส AACดั้งเดิมถือว่ามีความเสถียรแล้ว จึงได้ลบการสนับสนุนตัวเข้ารหัส AAC ภายนอกสองตัวจากVisualOnและFAACออกไป FFmpeg 3.0 (มีชื่อเล่นว่า"Einstein" ) ยังคงรองรับการสร้างตัวเข้ารหัสAAC ของ Fraunhofer FDK ไว้ [ 35 ]ตั้งแต่เวอร์ชัน 3.4 "Cantor" FFmpeg รองรับรูปแบบภาพFITS [ 36 ]ตั้งแต่เดือนพฤศจิกายน พ.ศ. 2561 ในเวอร์ชัน 4.1 "al-Khwarizmi" AV1สามารถรวมในMP4และMatroskaได้ รวมถึงWebMด้วย[ 37 ] [ 38 ]

ส่วนประกอบ

เครื่องมือบรรทัดคำสั่ง

  • ffmpegเป็นเครื่องมือบรรทัดคำสั่งที่แปลงรูปแบบเสียงหรือวิดีโอ นอกจากนี้ยังสามารถจับภาพและเข้ารหัสแบบเรียลไทม์จากแหล่งฮาร์ดแวร์และซอฟต์แวร์ต่างๆ[ 39 ]เช่น การ์ดจับภาพทีวี
  • ffplayเป็นโปรแกรมเล่นมีเดียแบบง่ายที่ใช้ ไลบรารี SDLและ FFmpeg
  • ffprobeเป็นเครื่องมือแบบบรรทัดคำสั่งสำหรับแสดงข้อมูลสื่อ (ข้อความ, CSV , XML , JSON ) โปรดดูMediaInfo เพิ่มเติม ด้วย

ห้องสมุด

  • libswresampleเป็นไลบรารีที่ประกอบด้วยรูทีนสำหรับการแปลงความถี่ เสียง
  • libavcodecเป็นไลบรารีที่รวบรวมตัวเข้ารหัสและถอดรหัสเสียง/วิดีโอพื้นฐานของ FFmpeg ไว้ทั้งหมด โดยโคเด็คส่วนใหญ่ได้รับการพัฒนาขึ้นใหม่ทั้งหมดเพื่อให้มั่นใจได้ถึงประสิทธิภาพที่ดีที่สุดและความสามารถในการนำโค้ดกลับมาใช้ซ้ำได้สูง
  • libavformat (Lavf) [ 8 ]เป็นไลบรารีที่มีตัวแยกสัญญาณและตัวรวมสัญญาณสำหรับรูปแบบคอนเทนเนอร์เสียง/วิดีโอ
  • libavutilเป็นไลบรารีเสริมที่มีรูทีนต่างๆ ที่ใช้ร่วมกันในส่วนต่างๆ ของ FFmpeg ไลบรารีนี้ประกอบด้วยฟังก์ชันแฮช การเข้ารหัส การถอดรหัสLZOและการเข้ารหัส/ถอดรหัสBase64
  • libswscaleเป็นไลบรารีที่มี รูทีนสำหรับ การปรับขนาดภาพ วิดีโอ และ การแปลง พื้นที่สี /รูปแบบพิกเซล
  • libavfilterเป็นตัวแทนของ vhook ซึ่งช่วยให้สามารถแก้ไขหรือตรวจสอบวิดีโอ/เสียง (เพื่อการดีบั๊ก) ระหว่างตัวถอดรหัสและตัวเข้ารหัสได้ ตัวกรองเหล่านี้ได้รับการดัดแปลงมาจากหลายโปรเจกต์ รวมถึงMPlayerและavisynth
  • libavdeviceเป็นไลบรารีที่ประกอบด้วยการรับส่งข้อมูลเสียง/วิดีโอผ่านอุปกรณ์ภายในและภายนอก

ฮาร์ดแวร์ที่รองรับ

ซีพียู

FFmpeg ประกอบด้วยการใช้งานซอฟต์แวร์ของอัลกอริธึมการบีบอัดและคลายการบีบอัดวิดีโอและเสียง ซึ่งสามารถคอมไพล์และรันบนชุดคำสั่งต่างๆ ได้มากมาย รวมถึงx86 ( IA-32และx86-64 ), PPC ( PowerPC ) , ARM , DEC Alpha , SPARCและMIPS [ 40 ]

ฮาร์ดแวร์สำหรับใช้งานเฉพาะทาง

มีวงจรรวมเฉพาะแอปพลิเคชัน (ASIC) หลากหลายประเภท สำหรับการบีบอัดและคลายการบีบอัดเสียง/วิดีโอ ASIC เหล่านี้สามารถถ่ายโอนการคำนวณจาก CPU หลักได้บางส่วนหรือทั้งหมด แทนที่จะใช้การใช้งานอัลกอริทึมอย่างสมบูรณ์ เพียงแค่ ใช้ APIก็เพียงพอแล้วสำหรับการใช้ ASIC ดังกล่าว[ 41 ]

บริษัทเอซีไอซีวัตถุประสงค์รองรับโดย FFmpegรายละเอียด
เอดีเอ็มยูวีดีการถอดรหัสใช่ผ่านทางVDPAU API และVAAPI
วีซีอีการเข้ารหัสใช่ผ่านVAAPIถือว่าเป็นการทดลอง[ 42 ]
แอมโลจิกแอมโลจิก วิดีโอเอ็นจิ้นการถอดรหัส?
แบล็คแมจิก เด็คลิงก์ การเข้ารหัส/การถอดรหัสใช่การรับและเล่นแบบเรียลไทม์
บรอดคอมคริสตัล เอชดีการถอดรหัสใช่
ซัมซุงเอ็กซิโนสเอ็มเอฟซีการถอดรหัสใช่
ควอลคอมหกเหลี่ยมการเข้ารหัส/การถอดรหัสใช่ฮวาเซล[ 43 ]
อินเทลอินเทล เคลียร์ วิดีโอการถอดรหัสใช่(libmfx, VAAPI)
Intel Quick Sync Videoการเข้ารหัส/การถอดรหัสใช่(libmfx, VAAPI)
เอ็นดีวีดีเพียววิดีโอ / เอ็นวีดีซีการถอดรหัสใช่ผ่าน API VDPAUตั้งแต่ FFmpeg เวอร์ชัน 1.2 (เลิกใช้แล้ว) ผ่าน API CUVIDตั้งแต่ FFmpeg เวอร์ชัน 3.1 [ 44 ]
เอ็นเวนซีการเข้ารหัสใช่ณ FFmpeg เวอร์ชัน 2.6

API ต่อไปนี้ยังได้รับการสนับสนุนด้วย: DirectX Video Acceleration (DXVA2, Windows), Direct3D 11 (D3D11VA, Windows), Media Foundation (Windows), Vulkan (VKVA), VideoToolbox (iOS, iPadOS, macOS), RockChip MPP, OpenCL , OpenMAX , MMAL (Raspberry Pi), MediaCodec ( Android OS ), V4L2 (Linux) ขึ้นอยู่กับสภาพแวดล้อม API เหล่านี้อาจนำไปสู่ ​​ASIC เฉพาะ, รูทีน GPGPUหรือโค้ด CPU SIMD [ 41 ]

ตัวแปลงสัญญาณและรูปแบบที่รองรับ

รูปแบบภาพ

FFmpeg รองรับรูปแบบไฟล์ภาพหลายรูปแบบทั้งที่ใช้กันทั่วไปและบางรูปแบบที่ไม่ค่อยพบเห็น

เดอะรูปแบบภาพ PGMYUVเป็นรูปแบบที่พัฒนาขึ้นเองโดยผู้ใช้ ซึ่งเป็นรูปแบบไบนารี (P5) PGM Netpbm FFmpeg ยังรองรับความละเอียด 16 บิตของรูปแบบ PGM และ PPM และรูปแบบไบนารี (P7) PAMทั้งแบบมีและไม่มีช่องอัลฟา ความละเอียด 8 บิตหรือ 16 บิต สำหรับpix_fmtsภาพขาวดำ เทา เทา 16 บิต RGB 24, RGB 48 บิต YA8, RGBA และ RGB 64บิต

รูปแบบที่รองรับ

นอกเหนือจาก รูปแบบ FFV1และ Snow ซึ่งถูกสร้างและพัฒนาขึ้นภายใน FFmpeg แล้ว โครงการนี้ยังรองรับรูปแบบต่อไปนี้ด้วย:

กลุ่มประเภทรูปแบบชื่อรูปแบบ
ISO / IEC / ITU-TวิดีโอMPEG-1 ส่วนที่ 2 , H.261 (Px64), [ 45 ] H.262/MPEG-2 ส่วนที่ 2 , H.263 , [ 45 ] MPEG-4 ส่วนที่ 2 , H.264/MPEG-4 AVC , HEVC/H.265 [ 34 ] (MPEG-H ส่วนที่ 2), MPEG-4 VCB (หรือ VP8), Motion JPEG , วิดีโอ IEC DVและCD+G
เสียงMP1 , MP2 , MP3 , AAC , HE-AAC , MPEG-4 ALS , G.711 μ-law, G.711 A-law, G.721 (หรือG.726 32k), G.722 , G.722.2 (หรือ AMR-WB), G.723 (หรือG.726 24k และ 40k), G.723.1 , G.726 , G.729 , G.729D , เสียง IEC DVและการถ่ายโอนสตรีมโดยตรง
คำบรรยายข้อความแบบกำหนดเวลา MPEG-4 (หรือที่รู้จัก กันในชื่อ ข้อความแบบกำหนดเวลา 3GPP)
ภาพJPEG , JPEG แบบไม่สูญเสียข้อมูล , JPEG-LS , JPEG 2000 , JPEG XL , [ 46 ] PNG , CCITT G3และCCITT G4
พันธมิตรเพื่อสื่อเปิดวิดีโอ AV1 [ 47 ]
ภาพ AVIF [ 48 ]
EIAคำบรรยายอีไอเอ-608
ซีเอเอคำบรรยายซีเอเอ-708
เอสเอ็มพีทีวิดีโอSMPTE 314M (หรือที่รู้จักกันในชื่อ DVCAMและDVCPRO ), SMPTE 370M (หรือที่รู้จักกันในชื่อDVCPRO HD ), VC-1 (หรือที่รู้จักกันในชื่อ WMV3), VC-2 (หรือที่รู้จักกันในชื่อ Dirac Pro), VC-3 (หรือที่รู้จักกันในชื่อ AVID DNxHD )
เสียงส.ส.เอ็มพีที 302เอ็ม
ภาพดีพีเอ็กซ์
ATSC / ETSI / DVBเสียงระบบเสียง Full Rate (GSM 06.10), AC-3 ( Dolby Digital ), Enhanced AC-3 ( Dolby Digital Plus ) และDTS Coherent Acoustics (หรือเรียกอีกอย่างว่า DTS หรือ DCA)
คำบรรยายการใส่คำบรรยาย DVB (ETSI 300 743)
ดีวีดี ฟอรัม / ดอลบี้เสียงMLP / Dolby TrueHD
คำบรรยายคำบรรยาย DVD-Video
Xperi / DTS, Inc / QDesignเสียงDTS Coherent Acoustics (หรือที่รู้จักกันในชื่อ DTS หรือ DCA), DTS Extended Surround (หรือที่รู้จักกันในชื่อ DTS-ES), DTS 96/24 , DTS-HD High Resolution Audio , DTS Express (หรือที่รู้จักกันในชื่อ DTS-HD LBR), DTS-HD Master Audio , QDesign Music Codec 1 และ 2
สมาคมแผ่นบลูเรย์คำบรรยายPGS (Presentation Graphics Stream)
3GPPเสียงAMR-NB , AMR-WB (หรือเรียกอีกอย่างว่า G.722.2)
3GPP2เสียงQCELP -8 (หรือที่รู้จักในชื่อ SmartRate หรือ IS-96C), QCELP-13 (หรือที่รู้จักในชื่อ PureVoice หรือ IS-733) และEnhanced Variable Rate Codec (EVRC หรือที่รู้จักในชื่อ IS-127)
สมาคมเว็บทั่วโลกวิดีโอภาพเคลื่อนไหว GIF [ 49 ]
คำบรรยายเว็บวีทีที
ภาพไฟล์ GIFและSVG (ผ่านlibrsvg )
อีไอทีเอฟเอฟวิดีโอFFV1
เสียงiLBC (ผ่าน libilbc), OpusและComfort noise
สมาคมเสียงนานาชาติเสียงดีเอสเอส-เอสพี
เอสเอซีวิดีโอวิดีโอ AVS , วิดีโอ AVS2 [ 50 ] (ผ่าน libdavs2) และวิดีโอ AVS3 (ผ่าน libuavs3d)
ไมโครซอฟต์วิดีโอMicrosoft RLE , Microsoft Video 1 , Cinepak , Microsoft MPEG-4 v1, v2 และ v3, Windows Media Video (WMV1, WMV2, WMV3/ VC-1 ), WMV Screenและ Mimic codec
เสียงWindows Media Audio (WMA1, WMA2, WMA Pro และ WMA Lossless), XMA (XMA1 และ XMA2), [ 51 ] MSN Siren , MS-GSM และ MS-ADPCM
คำบรรยายซามิ
ภาพWindows Bitmap , รูปภาพ WMV (รูปภาพ WMV9 และรูปภาพ WMV9 v2), พื้นผิว DirectDrawและMSP [ 52 ]
สมาคมมัลติมีเดียเชิงโต้ตอบเสียงIMA ADPCM
อินเทล / ดิจิตอล วิดีโอ อินเทอร์แอคทีฟวิดีโอRTV 2.1 ( Indeo 2), Indeo 3, 4 และ 5, [ 45 ]และ Intel H.263
เสียงDVI4 (หรือที่รู้จักในชื่อ IMA DVI ADPCM), Intel Music Coder และ Indeo Audio Coder
เรียลเน็ตเวิร์คส์วิดีโอRealVideo Fractal Codec (หรือที่รู้จักในชื่อ Iterated Systems ClearVideo) เวอร์ชัน 1, 2, 3 และ 4
เสียงRealAudio v1 – v10 และ RealAudio Lossless [ 53 ]
คำบรรยายเรียลเท็กซ์
แอปเปิล / สปรูซ เทคโนโลยีส์ วิดีโอCinepak (Apple Compact Video), ProRes , Sorenson 3 Codec , QuickTime Animation (Apple Animation), QuickTime Graphics (Apple Graphics), Apple Video , Apple Intermediate CodecและPixlet [ 54 ]
เสียงอาลาค
ภาพค วิกดรอว์พิคที
คำบรรยายคำบรรยาย Spruce (STL)
Adobe Flash Player (SWF) วิดีโอวิดีโอหน้าจอ, วิดีโอหน้าจอ 2, Sorenson SparkและVP6
เสียงAdobe SWF ADPCMและเนลลีโมเซอร์ อาซาโอะ
Adobe / AldusภาพTIFF , PSD , [ 54 ]และDNG
Xiph.Orgวิดีโอธีโอร่า
เสียงSpeex , [ 55 ] Vorbis , OpusและFLAC
คำบรรยายอ็อกก์ ไรท์
โซนี่เสียงการเข้ารหัสเสียงแบบแปลงปรับได้ (ATRAC1, ATRAC3, ATRAC3Plus, [ 56 ]และ ATRAC9 [ 50 ] ) [ 45 ]และ PSX ADPCM
เอ็นทีทีเสียงทวินวีคิว
Google / On2 / GIPSวิดีโอDuck TrueMotion 1, Duck TrueMotion 2, Duck TrueMotion 2.0 Real Time, VP3 , VP4 , [ 57 ] VP5 , [ 45 ] VP6 , [ 45 ] VP7 , VP8 , [ 58 ] VP9 [ 33 ]และ WebP แบบเคลื่อนไหว
เสียงDK ADPCM Audio 3/4 , On2 AVCและiLBC (ผ่าน libilbc)
ภาพWebP [ 59 ]
Epic Games / RAD Game Toolsวิดีโอวิดีโอ Smackerและวิดีโอ Bink
เสียงเสียงบิงค์
มิดเดิลแวร์ CRIเสียงADX ADPCMและ HCA
นินเทนโด / เนิร์ดวิดีโอวิดีโอโมบิคลิป
เสียงGCADPCM (หรือ ADPCM THP), FastAudio และ ADPCM IMA MOFLEX
กลุ่มSynaptics / DSPเสียงทรูสปีช
อิเล็กทรอนิกส์ อาร์ตส์ / ไครทีเรียน เกมส์ / แบล็ค บ็อกซ์ เกมส์ / เวสต์วูด สตูดิโอส์วิดีโอRenderWare TXD, [ 60 ] Madcow, CMV, TGV, TGQ, TQI, Midivid VQ (MVDV), MidiVid 3.0 (MV30), Midivid Archival (MVHA) และ Vector Quantized Animation (VQA)
เสียงตัวแปร ADPCM ของ Electronic Arts
เน็ตพีบีเอ็มภาพPBM, PGM, PPM, PNM, PAM, PFM และ PHM
กลุ่ม ความร่วมมือ MIT/X / เดอะโอเพ่นกรุ๊ปภาพXBM , [ 53 ] XPMและxwd
HPE / SGI / Silicon Graphicsวิดีโอวิดีโอ Silicon Graphics RLE 8 บิต[ 49 ] Silicon Graphics MVC1/2 [ 49 ]
ภาพภาพจากซิลิคอนกราฟิก
ออราเคิล / ซัน ไมโครซิสเต็มส์ภาพซันแรสเตอร์
ไอบีเอ็มวิดีโอไอบีเอ็ม อัลติโมชั่น
เอวิด เทคโนโลยี / ทรูวิชั่นวิดีโอAvid 1:1x, Avid Meridien, [ 53 ] Avid DNxHD , Avid DNx444, [ 56 ]และDNxHR
ภาพทาร์กา[ 49 ]
ออโต้เดสก์ / อาลีอัสวิดีโอAutodesk Animator Studio CodecและFLIC
ภาพอลิอาโล พิกซ์
แอคติวิชั่น บลิซซาร์ด / แอคติวิชั่น / อินโฟคอมเสียงเอดีพีซีเอ็มซอร์ค
โคนามิ / ฮัดสัน ซอฟต์วิดีโอวิดีโอ HVQM4
เสียงโคนามิ MTAF และ ADPCM IMA HVQM4
กราสส์แวลลีย์ / คานาปัสวิดีโอHQ, HQA, HQX และ Lossless
วิซร์ท / นิวเทควิดีโอสปีดคิว
ภาพภาพไบนารี Vizrt [ 48 ]
มูลนิธิ Academy Software / ILMภาพOpenEXR [ 53 ]
บริษัทโมสโมทอรี่วิดีโอAPNG [ 59 ]
แมทร็อกซ์วิดีโอMatrox Uncompressed SD (M101) / HD (M102)
เอดีเอ็ม / เอทีไอวิดีโอATI VCR1/VCR2
อัสวิดีโอตัวแปลงสัญญาณ ASUS V1/V2
คอมโมดอร์วิดีโอตัวแปลงสัญญาณ CDXL
โกดักภาพโฟโต้ซีดี
แบล็กแมจิก ดีไซน์ / ซินเทลภาพซินเทล อาร์ดับบลิว
Houghton Mifflin Harcourt / The Learning Company / ZSoft Corporationภาพพีซีเอ็กซ์
มหาวิทยาลัยแห่งชาติออสเตรเลียภาพX-Face [ 49 ]
กลุ่มผู้สนใจพิเศษด้านบลูทูธเสียงSBCและ mSBC
ควอลคอมม์ / ซีเอสอาร์เสียงQCELP , aptXและaptX HD
Open Mobile Alliance / WAP Forumภาพบิตแมปไร้สาย

มิวเซอร์

รูปแบบเอาต์พุต (รูปแบบคอนเทนเนอร์และวิธีการอื่นๆ ในการสร้างสตรีมเอาต์พุต) ใน FFmpeg เรียกว่า "muxer" FFmpeg รองรับรูปแบบต่างๆ ดังต่อไปนี้:

รูปแบบพิกเซล

พิมพ์ สี บรรจุระนาบจานสี
โดยไม่มีอัลฟ่าด้วยอัลฟ่าโดยไม่มีอัลฟ่าด้วยอัลฟ่าโครมา-อินเตอร์ลีฟด้วยอัลฟ่า
ขาวดำไบนารี (ขาวดำ 1 บิต)โมโนแบล็ค, โมโนไวท์
โทนสีเทา8/9/10/12/14/16bpp16/32bpp
อาร์จีบีRGB 1:2:1 (สี 4 บิต)4bpp
RGB 3:3:2 ( สี 8 บิต )8bpp
RGB 5:5:5 ( สีสันสดใส )16bpp
RGB 5:6:5 (สีสันสดใส)16bpp
อาร์จีอาร์/บีจีอาร์24/30 [หน้า 1 ] /48bpp32 [หน้า 2 ] /64bpp8 บิต -> 32 บิตต่อพิกเซล
GBR [หน้า 3 ]8/9/10/12/14/16bpc8/10/12/16bpc
RGB Floatอาร์จีบี32bpc16/32bpc
สหราชอาณาจักร32bpc32bpc
ยูยูวีYVU 4:1:0(9bpp (YVU9)) [หน้า 4 ]
ยูวี 4:1:09bpp
ยูวี 4:1:18bpc (UYYVYY)8bpc(8bpc (NV11))
YVU 4:2:0(8bpc (YV12)) [หน้า 4 ]8 (NV21)
ยูวี 4:2:08 [หน้า 5 ] /9/10/12/14/16bpc8/9/10/16bpc8 (NV12)/10 (P010)/12 (P012)/16bpc (P016)
YVU 4:2:2(8bpc (YV16)) [หน้า 4 ](8bpc (NV61))
ยูวี 4:2:28 (YUYV [หน้า 6 ]และ UYVY)/10 (Y210)/12bpc (Y212) [หน้า 7 ]8 [หน้า 8 ] /9/10/12/14/16bpc8/9/10/12/16bpc8 (NV16)/10 (NV20 และ P210)/16bpc (P216)
ยูวี 4:4:08/10/12bpc
YVU 4:4:4(8bpc (YV24)) [หน้า 4 ]8bpc (NV42)
ยูวี 4:4:48 (VUYX)/10 [หน้า 9 ] /12bpc [หน้า 10 ]8 [หน้า 11 ] / 16bpc (AYUV64) [หน้า 12 ]8 [หน้า 13 ] /9/10/12/14/16bpc8/9/10/12/16bpc8 (NV24)/10 (P410)/ 16bpc (P416)
เอ็กซ์วายซีXYZ 4:4:4 [หน้า 14 ]12bpc
ไบเออร์BGGR/RGGB/GBRG/GRBG8/16bpp
  1. ^ส่วนประกอบสี 10 บิต พร้อมการเติมขอบ 2 บิต (X2RGB10)
  2. ^รองรับ RGBx (rgb0) และ xBGR (0bgr) ด้วยเช่นกัน
  3. ^ใช้ในตัวแปลงสัญญาณที่เน้น YUV เช่น H.264
  4. ^ a b c d YVU9, YV12, YV16 และ YV24 รองรับเป็น โคเด็ก วิดีโอแบบ rawใน FFmpeg
  5. ^ I420 หรือ YUV420P
  6. ^หรือเรียกอีกอย่างว่า YUY2 ใน Windows
  7. ^ UYVY 10bpc ที่ไม่มีการเติมข้อมูล (padding) รองรับเป็น โคเด็ก แบบ bitpackedใน FFmpeg UYVY 10bpc ที่มีการเติมข้อมูล 2 บิต รองรับเป็น โคเด็ก v210ใน FFmpeg 16bpc (Y216) รองรับเป็น โคเด็ก targa_y216ใน FFmpeg
  8. ^ I422 หรือ YUV422P
  9. ^ XV30 หรือ XVYU2101010
  10. ^ XV36
  11. ^วูยา หรือ อายูฟ
  12. ^ไม่รองรับ 10bpc (Y410), 12bpc (Y412) และ Y416 (16bpc)
  13. ^ I444 หรือ YUV444P
  14. ^ใช้ใน JPEG2000

FFmpeg ไม่รองรับ IMC1-IMC4, AI44, CYMK, RGBE , Log RGB และรูปแบบอื่นๆ นอกจากนี้ยังไม่รองรับARGB 1:5:5:5 , 2:10:10:10หรือ รูปแบบ บิตฟิลด์ BMP อื่นๆ ที่ไม่ค่อยได้ใช้กันทั่วไป

โปรโตคอลที่รองรับ

มาตรฐานแบบเปิด

ตัวกรองที่รองรับ

FFmpeg รองรับฟิลเตอร์ต่อไปนี้เป็นต้น[ 71 ]

เสียง

วิดีโอ

รูปแบบการทดสอบที่รองรับ

รูปแบบ LUT ที่รองรับ

สื่อและอินเทอร์เฟซที่รองรับ

FFmpeg รองรับอุปกรณ์ต่อไปนี้ผ่านไลบรารีภายนอก[ 73 ]

สื่อ

อินเทอร์เฟซทางกายภาพ

อินพุต/เอาต์พุตเสียง

วิดีโอไอโอ

การจับภาพหน้าจอและการส่งออก

คนอื่น

  • ภาพ ASCII (สร้างจากไลบรารี libcaca; แสดงผลลัพธ์เท่านั้น)

แอปพลิเคชัน

FFmpeg มีโคเดกมากกว่า 100 ตัว[ 74 ]ซึ่งส่วนใหญ่ใช้เทคนิคการบีบอัดแบบใดแบบหนึ่ง เทคนิคการบีบอัดดังกล่าวหลายอย่างอาจอยู่ภายใต้การเรียกร้องทางกฎหมายที่เกี่ยวข้องกับสิทธิบัตรซอฟต์แวร์ [ 75 ] การเรียกร้องดังกล่าวอาจบังคับใช้ได้ในประเทศต่างๆ เช่น สหรัฐอเมริกา ซึ่งได้นำสิทธิบัตรซอฟต์แวร์มาใช้ แต่ถือว่าไม่สามารถบังคับใช้ได้หรือเป็นโมฆะในประเทศสมาชิกของสหภาพยุโรปเป็นต้น[ 76 ]สิทธิบัตรสำหรับโคเดกเก่าๆ หลายตัว รวมถึง AC3 และโคเดก MPEG-1 และ MPEG-2 ทั้งหมด ได้หมดอายุลงแล้ว

FFmpeg ได้รับอนุญาตภายใต้ใบอนุญาต LGPL แต่หาก FFmpeg เวอร์ชันใดเวอร์ชันหนึ่งถูกเชื่อมโยงกับไลบรารี GPL ใดๆ (โดยเฉพาะx264 ) ไบนารีทั้งหมดจะได้รับอนุญาตภายใต้ใบอนุญาต GPL

โปรเจกต์ที่ใช้ FFmpeg

FFmpeg ถูกใช้โดยซอฟต์แวร์ต่างๆ เช่นBlender , Cinelerra - GG Infinity , HandBrake , Kodi , MPC-HC , Plex , Shotcut , VirtualDub2 ( เวอร์ชันดัดแปลงของ VirtualDub ), [ 77 ] VLC media player , xineและYouTube [ 78 ] [ 79 ]มันจัดการการเล่นวิดีโอและเสียงในChromium (และโปรแกรมที่ให้บริการเช่นGoogle ChromeและMicrosoft Edge ) [ 79 ]และ Firefox เวอร์ชัน Linux [ 80 ] มีการพัฒนาGUI front-end สำหรับ FFmpeg รวมถึง Multimedia Xpert, [ 81 ] XMedia Recode และ ShutterEncoder

FFmpeg ถูกใช้โดยffdshow , FFmpegInterop, ปลั๊กอิน GStreamer FFmpeg , LAV Filters และOpenMAX ILเพื่อขยายขีดความสามารถในการเข้ารหัสและถอดรหัสของแพลตฟอร์มมัลติมีเดียแต่ละแพลตฟอร์ม

ในฐานะส่วนหนึ่งของ ภารกิจ Mars 2020ของNASA FFmpeg ถูกใช้โดยยานสำรวจ Perseveranceบนดาวอังคารเพื่อบีบอัดภาพและวิดีโอก่อนที่จะส่งภาพไปยังโลก[ 82 ]

แอปพลิเคชันฝังตัว

นอกจากนี้ FFmpeg ยังถูกนำไปใช้ในแอปพลิเคชันฝังตัว (embedded applications ) โดยสามารถใช้ร่วมกับฮาร์ดแวร์แบบกำหนดเองเพื่อลดความซับซ้อนในการจัดการเวอร์ชันและการพึ่งพา และยังช่วยให้เกิดการแยกส่วนระบบปฏิบัติการข้ามผู้ผลิตระบบปฏิบัติการและโปรเซสเซอร์ที่แตกต่างกันหลายรายอีกด้วย

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=FFmpeg&oldid=1359146209 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ FFmpeg

FFmpeg เป็น โครงการ ซอฟต์แวร์โอเพนซอร์สฟรี ที่ประกอบด้วยชุด ไลบรารี และ โปรแกรม สำหรับจัดการไฟล์ และสตรีมวิดีโอ เสียง และมัลติมีเดียอื่นๆ หัวใจ หลักคือเครื่องมือ บรรทัดคำสั่ง...

ประวัติโครงการ

โครงการนี้เริ่มต้นโดย Fabrice Bellard [ 11 ] (โดยใช้ นามแฝง "Gérard Lantau") ในปี 2000 และนำโดย Michael Niedermayer ตั้งแต่ปี 2004 จนถึงปี 2015 [ 12 ] นักพัฒนา FFmpeg บางคนก็เป็นส่วนหนึ่งของโครงการ MPlayer ด้วย

การพัฒนาโคเดค

ภายในโครงการ FFmpeg ได้มีการสร้างรูป แบบการเข้ารหัสวิดีโอ สอง รูปแบบ พร้อมตัวแปลงสัญญาณที่เกี่ยวข้องและ รูปแบบคอนเทนเนอร์ หนึ่งรูปแบบ ตัวแปลงสัญญาณวิดีโอสองตัวคือ FFV1 แบบไม่สูญเสียข้อมูล และตัวแปลงสัญญาณ Snow แบบไม่สูญเสียข้อมูลและแบบสูญเสียข้อมูล การพัฒนา...

เครื่องมือบรรทัดคำสั่ง

ffmpeg เป็นเครื่องมือบรรทัดคำสั่งที่แปลงรูปแบบเสียงหรือวิดีโอ นอกจากนี้ยังสามารถจับภาพและเข้ารหัสแบบเรียลไทม์จากแหล่งฮาร์ดแวร์และซอฟต์แวร์ต่างๆ [ 39 ] เช่น การ์ดจับภาพทีวี ffplay เป็นโปรแกรมเล่นมีเดียแบบง่ายที่ใช้ ไลบรารี SDL และ FFmpeg ffprobe...