อ่าน 15 นาที
FFmpeg
FFmpeg เป็น โครงการ ซอฟต์แวร์โอเพนซอร์สฟรี ที่ประกอบด้วยชุด ไลบรารี และ โปรแกรม สำหรับจัดการไฟล์ และสตรีมวิดีโอ เสียง และมัลติมีเดียอื่นๆ หัวใจ หลักคือเครื่องมือ บรรทัดคำสั่ง...
FFmpeg
| FFmpeg | |
|---|---|
ใช้ FFmpeg ในการแปลงไฟล์จากรูปแบบ PNGไปเป็นรูปแบบ WebP | |
| ผู้เขียนต้นฉบับ | Fabrice Bellard Bobby Bingham (libavfilter) [ 1 ] |
| นักพัฒนา | ทีม FFmpeg |
| ปล่อย | 20 ธันวาคม พ.ศ. 2543 [ 2 ] |
| เวอร์ชันเสถียร | 8.1.2 [ 3 ] |
| เขียนเป็น | 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เป็น โครงการ ซอฟต์แวร์โอเพนซอร์สฟรีที่ประกอบด้วยชุดไลบรารีและโปรแกรม สำหรับจัดการไฟล์ และสตรีมวิดีโอ เสียง และมัลติมีเดียอื่นๆหัวใจ หลักคือเครื่องมือ บรรทัดคำสั่ง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 รองรับรูปแบบต่างๆ ดังต่อไปนี้:
- AIFF
- เอเอสเอฟ
- AVIและข้อมูลจากAviSynth
- บีเอฟไอ[ 61 ]
- แคลิฟอร์เนียเอฟ
- เอฟแอลวี
- ภาพเคลื่อนไหว GIF
- GXF , General eXchange Format, SMPTE 360M
- HLS , การสตรีมสดผ่าน HTTP
- IFF [ 62 ]
- รูปแบบไฟล์มีเดียพื้นฐาน ISO (รวมถึงQuickTime , 3GPและMP4 )
- Matroska (รวมถึงWebM )
- แม็กซี่ XA [ 63 ]
- MPEG-DASH [ 64 ]
- สตรีมโปรแกรม MPEG
- สตรีมข้อมูล MPEG (รวมถึงAVCHD )
- MXF , รูปแบบการแลกเปลี่ยนวัสดุ, SMPTE 377M
- สตรีมเว็บแคม MSN [ 65 ]
- น็อต[ 29 ]
- อ็อกก์
- OMA [ 66 ]
- RL2 [ 67 ]
- ฟังก์ชัน Segment สำหรับสร้างสตรีมวิดีโอแบบแบ่งส่วน
- การสตรีมที่ราบรื่น
- TXD [ 60 ]
- ดับเบิลยูทีวี
รูปแบบพิกเซล
| พิมพ์ | สี | บรรจุ | ระนาบ | จานสี | |||
|---|---|---|---|---|---|---|---|
| โดยไม่มีอัลฟ่า | ด้วยอัลฟ่า | โดยไม่มีอัลฟ่า | ด้วยอัลฟ่า | โครมา-อินเตอร์ลีฟ | ด้วยอัลฟ่า | ||
| ขาวดำ | ไบนารี (ขาวดำ 1 บิต) | โมโนแบล็ค, โมโนไวท์ | — | — | — | — | — |
| โทนสีเทา | 8/9/10/12/14/16bpp | — | — | 16/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 ] /48bpp | 32 [หน้า 2 ] /64bpp | — | — | — | 8 บิต -> 32 บิตต่อพิกเซล | |
| GBR [หน้า 3 ] | — | — | 8/9/10/12/14/16bpc | 8/10/12/16bpc | — | — | |
| RGB Float | อาร์จีบี | 32bpc | 16/32bpc | — | — | — | — |
| สหราชอาณาจักร | — | — | 32bpc | 32bpc | — | — | |
| ยูยูวี | YVU 4:1:0 | — | — | (9bpp (YVU9)) [หน้า 4 ] | — | — | — |
| ยูวี 4:1:0 | — | — | 9bpp | — | — | — | |
| ยูวี 4:1:1 | 8bpc (UYYVYY) | — | 8bpc | — | (8bpc (NV11)) | — | |
| YVU 4:2:0 | — | — | (8bpc (YV12)) [หน้า 4 ] | — | 8 (NV21) | — | |
| ยูวี 4:2:0 | — | — | 8 [หน้า 5 ] /9/10/12/14/16bpc | 8/9/10/16bpc | 8 (NV12)/10 (P010)/12 (P012)/16bpc (P016) | — | |
| YVU 4:2:2 | — | — | (8bpc (YV16)) [หน้า 4 ] | — | (8bpc (NV61)) | — | |
| ยูวี 4:2:2 | 8 (YUYV [หน้า 6 ]และ UYVY)/10 (Y210)/12bpc (Y212) [หน้า 7 ] | — | 8 [หน้า 8 ] /9/10/12/14/16bpc | 8/9/10/12/16bpc | 8 (NV16)/10 (NV20 และ P210)/16bpc (P216) | — | |
| ยูวี 4:4:0 | — | — | 8/10/12bpc | — | — | — | |
| YVU 4:4:4 | — | — | (8bpc (YV24)) [หน้า 4 ] | — | 8bpc (NV42) | — | |
| ยูวี 4:4:4 | 8 (VUYX)/10 [หน้า 9 ] /12bpc [หน้า 10 ] | 8 [หน้า 11 ] / 16bpc (AYUV64) [หน้า 12 ] | 8 [หน้า 13 ] /9/10/12/14/16bpc | 8/9/10/12/16bpc | 8 (NV24)/10 (P410)/ 16bpc (P416) | — | |
| เอ็กซ์วายซี | XYZ 4:4:4 [หน้า 14 ] | 12bpc | — | — | — | — | — |
| ไบเออร์ | BGGR/RGGB/GBRG/GRBG | 8/16bpp | — | — | — | — | — |
- ^ส่วนประกอบสี 10 บิต พร้อมการเติมขอบ 2 บิต (X2RGB10)
- ^รองรับ RGBx (rgb0) และ xBGR (0bgr) ด้วยเช่นกัน
- ^ใช้ในตัวแปลงสัญญาณที่เน้น YUV เช่น H.264
- ^ a b c d YVU9, YV12, YV16 และ YV24 รองรับเป็น โคเด็ก วิดีโอแบบ rawใน FFmpeg
- ^ I420 หรือ YUV420P
- ^หรือเรียกอีกอย่างว่า YUY2 ใน Windows
- ^ UYVY 10bpc ที่ไม่มีการเติมข้อมูล (padding) รองรับเป็น โคเด็ก แบบ bitpackedใน FFmpeg UYVY 10bpc ที่มีการเติมข้อมูล 2 บิต รองรับเป็น โคเด็ก v210ใน FFmpeg 16bpc (Y216) รองรับเป็น โคเด็ก targa_y216ใน FFmpeg
- ^ I422 หรือ YUV422P
- ^ XV30 หรือ XVYU2101010
- ^ XV36
- ^วูยา หรือ อายูฟ
- ^ไม่รองรับ 10bpc (Y410), 12bpc (Y412) และ Y416 (16bpc)
- ^ I444 หรือ YUV444P
- ^ใช้ใน JPEG2000
FFmpeg ไม่รองรับ IMC1-IMC4, AI44, CYMK, RGBE , Log RGB และรูปแบบอื่นๆ นอกจากนี้ยังไม่รองรับARGB 1:5:5:5 , 2:10:10:10หรือ รูปแบบ บิตฟิลด์ BMP อื่นๆ ที่ไม่ค่อยได้ใช้กันทั่วไป
โปรโตคอลที่รองรับ
มาตรฐานแบบเปิด
- RFCของ IETF :
- IETF I-Ds : [ 68 ]
- SFTP (ผ่าน libssh)
- Microsoft OSP :
- เซเนเล็ค
- มาตรฐาน OASIS :
- AMQP 0-9-1 (ผ่าน librabbitmq)
- มาตรฐานของ SRT Alliance :
- SRT (ผ่าน libsrt)
ตัวกรองที่รองรับ
FFmpeg รองรับฟิลเตอร์ต่อไปนี้เป็นต้น[ 71 ]
เสียง
- การสุ่มตัวอย่างซ้ำ (aresample)
- ตัวกรองแบบผ่าน/หยุด
- ตัวกรองความถี่ต่ำ (lowpass)
- ตัวกรองความถี่สูง (highpass)
- ตัวกรองแบบออลพาส (allpass)
- ตัวกรองแบบผ่านย่านความถี่Butterworth (bandpass)
- ตัวกรองแบบแบนด์สต็อป Butterworth (bandreject)
- ตัวกรองการตอบสนองแบบอิมพัลส์จำกัดตามอำเภอใจ (afir)
- ตัวกรองการตอบสนองแบบอิมพัลส์อนันต์ตามอำเภอใจ (AIIR)
- อีควอไลเซอร์
- ตัวปรับสมดุลพีค (อีควอไลเซอร์)
- อีควอไลเซอร์มัลติแบนด์แบบ Butterworth/ Chebyshev Type I/Type II (anequalizer)
- ตัวกรองเสียง เบสแบบLow Shelving
- ฟิลเตอร์ High Shelving (เสียงแหลม)
- อีควอไลเซอร์ Xbox 360
- ตัวปรับสมดุล FIR (ตัวปรับสมดุลไฟ)
- ตัวกรองไบควอด (ไบควอด)
- ลบ/เพิ่มค่าชดเชย DC (dcshift)
- การประเมินการแสดงออก
- การประเมินการแสดงออก ในโดเมนเวลา (aeval)
- การประเมินการแสดงออกของ โดเมนความถี่ (afftfilt)
- พลวัต
- ตัวจำกัด (alimiter)
- คอมเพรสเซอร์ (คอมเพรสเซอร์)
- ตัวขยายช่วงไดนามิก (คริสตัลไลเซอร์)
- คอมเพรสเซอร์แบบไซด์เชน (sidechaincompress)
- คอมแพนเดอร์ (compand)
- แผ่นกันเสียงรบกวน (หินอาเกต)
- เกตลดเสียงรบกวนแบบไซด์เชน (side-chain noise gate)
- ความบิดเบี้ยว
- บิตครัชเชอร์ (อะครัชเชอร์)
- การเน้นย้ำ (aemphasis)
- ขยาย/ปรับระดับเสียง
- ปริมาตร (ปริมาตร)
- ตัวปรับระดับเสียงแบบไดนามิก (dynaudnorm)
- ตัวปรับระดับเสียง EBU R 128 (loudnorm)
- การปรับสัญญาณ
- การปรับความกว้างของคลื่นไซน์ (เทรโมโล)
- การปรับเฟสแบบไซน์ (ไวเบรโต)
- เฟเซอร์ (อะเฟเซอร์)
- ท่อนประสานเสียง (ท่อนประสานเสียง)
- แฟลงเจอร์ (แฟลงเจอร์)
- เครื่องกระตุ้นชีพจร (เครื่องกระตุ้นชีพจร)
- เสียงสะท้อน/เสียงก้อง
- เสียงสะท้อน (เอคโค่)
- การกำหนดเส้นทาง/ การแพนกล้อง
- การขยายภาพสเตอริโอ (stereowiden)
- เพิ่มความแตกต่างของช่องสัญญาณ (เอ็กซ์ตร้าสเตอริโอ)
- M/Sเป็น L/R (stereotools)
- การกำหนดแผนผังช่อง (channelmap)
- การแบ่งช่องสัญญาณ (channelsplit)
- การแพนช่อง (แพน)
- การรวมช่องสัญญาณ (amerge)
- การเข้าร่วมช่อง (เข้าร่วม)
- สำหรับหูฟัง
- สเตอริโอเป็นไบนาอูรัล (ขี้หู, ย้ายมาจาก SoX) [ 72 ]
- Bauer Stereo to Binaural (bs2b, via libbs2b)
- ครอสฟีด (ครอสฟีด)
- แปลงสัญญาณหลายช่องเป็นสัญญาณสองช่อง (Sofalizer, ต้องใช้ libnetcdf)
- ล่าช้า
- ความล่าช้า (ดีเลย์)
- ความล่าช้าเนื่องจากระยะทาง (ความล่าช้าชดเชย)
- จางหายไป
- เฟดเดอร์ (เฟด)
- ครอสเฟดเดอร์ (ครอสเฟด)
- การยืดเวลาเสียงและการปรับระดับเสียง
- การยืดเวลา (atempo)
- การยืดเวลาและการเปลี่ยนระดับเสียง (rubberband, ผ่าน librubberband)
- การแก้ไข
- ตัดแต่ง (atrim)
- การเว้นช่วงเงียบ (apad)
- ตัวลบเสียงเงียบ (silenceremove)
- แสดงข้อมูลเฟรม/ช่องสัญญาณ
- แสดงข้อมูลเฟรม (ashowinfo)
- แสดงข้อมูลช่อง (astats)
- แสดงช่วงความเงียบ (silencedetect)
- แสดงระดับเสียง (ตรวจจับระดับเสียง)
- เครื่องสแกน ReplayGain (replaygain)
- แก้ไขข้อมูลเฟรม/ช่องสัญญาณ
- ตั้งค่ารูปแบบเอาต์พุต (รูปแบบ)
- กำหนดจำนวนตัวอย่าง (asetnsamples)
- ตั้งค่าอัตราการสุ่มตัวอย่าง (asetrate)
- มิกเซอร์ (อามิกซ์)
- การซิงโครไนซ์ (asyncts)
- ตัวถอดรหัสข้อมูล HDCD (hdcd)
- ปลั๊กอิน
- ไม่ต้องทำอะไร (ยกเลิก)
วิดีโอ
- การแปลง
- การตัดพืช (crop, cropdetect)
- การจางหาย (เฟด)
- การปรับขนาด (scale)
- แผ่นรอง (pad)
- การหมุน (rotate)
- การสลับตำแหน่ง (Transpose)
- คนอื่น:
- การแก้ไขเลนส์ (lenscorrection)
- การกรองข้อมูล ด้วย OpenCV (ocv)
- การแก้ไขมุมมอง (มุมมอง)
- การแก้ไขตามเวลา
- อัตราเฟรม (fps, อัตราเฟรม)
- การวนซ้ำ (ลูป)
- การตัดแต่ง (ตัดแต่ง)
- การดีอินเทอร์เลซ (bwdif, idet, kerndeint, nnedi, yadif, w3fdif)
- เทเลซีนผกผัน
- การกรอง
- การเบลอ (boxblur, gblur, avgblur, sab, smartblur)
- ตัวกรอง คอนโวลูชัน
- การคอนโวลูชัน (convolution)
- การตรวจจับขอบ (edge detection)
- ตัวกรองโซเบล (sobel)
- ตัวกรอง Prewitt (prewitt)
- การมาสก์แบบไม่คมชัด (unsharp)
- การลดสัญญาณรบกวน (atadenoise, bitplanenoise, dctdnoiz, owdenoise, removegrain)
- การลบโลโก้ (delogo, Removelogo)
- คำบรรยาย ( ASS , คำบรรยาย)
- การแก้ไขช่องอัลฟา (การแยกอัลฟา, การรวมอัลฟา)
- การคีย์ภาพ (โครมาคีย์, คัลเลอร์คีย์, ลูมาคีย์)
- การตรวจจับเฟรม
- การตรวจจับเฟรมสีดำ (blackdetect, blackframe)
- การเลือกภาพย่อ (ภาพย่อ)
- การผสานเฟรม (blend, tblend, overlay)
- ระบบป้องกันการสั่นไหวของวิดีโอ (vidstabdetect, vidstabtransform)
- การปรับสีและระดับ
- การปรับสมดุลและระดับสี (การปรับสมดุลสี, ระดับสี)
- การผสมช่องสัญญาณ (colorchannelmixer)
- พื้นที่สี (colorspace)
- การปรับค่าพารามิเตอร์ (เส้นโค้ง, สมการ)
- ฮิสโตแกรมและการแสดงภาพข้อมูล
- CIE Scope (ciescope)
- Vectorscope (เวกเตอร์สโคป)
- เครื่องตรวจสอบรูปคลื่น (waveform)
- ฮิสโตแกรมสี (ฮิสโตแกรม)
- การวาดภาพ
- โอซีอาร์
- มาตรการคุณภาพ
- ตารางค้นหา
- lut, lutrgb, lutyuv, lut2, lut3d, haldclut
รูปแบบการทดสอบที่รองรับ
- แถบสี SMPTE (smptebars และ smptehdbars)
- แถบสี EBU (pal75bars และ pal100bars)
รูปแบบ LUT ที่รองรับ
- รูปแบบ LUT ของ cineSpace
- ลูกบาศก์ของอิริดา
- Adobe After Effects 3dl
- DaVinci Resolve dat
- แพนโดรา เอ็ม3ดี
สื่อและอินเทอร์เฟซที่รองรับ
FFmpeg รองรับอุปกรณ์ต่อไปนี้ผ่านไลบรารีภายนอก[ 73 ]
สื่อ
- แผ่นซีดี (ผ่าน libcdio; ป้อนข้อมูลเท่านั้น)
อินเทอร์เฟซทางกายภาพ
- IEEE 1394 (หรือที่รู้จักในชื่อ FireWire; ผ่าน libdc1394 และ libraw1394; รับข้อมูลเข้าเท่านั้น)
- IEC 61883 (ผ่าน libiec61883; เฉพาะข้อมูลขาเข้า)
- เด็คลิงก์
- ชิปจับภาพวิดีโอ Brooktree (ผ่านไดรเวอร์ bktr; เฉพาะอินพุต)
อินพุต/เอาต์พุตเสียง
- สถาปัตยกรรมเสียงขั้นสูงของลินุกซ์ (ALSA)
- ระบบเสียงเปิด (OSS)
- พัลส์ออดิโอ
- ชุดเชื่อมต่อเสียง JACK (JACK; เฉพาะอินพุต)
- OpenAL (สำหรับป้อนข้อมูลเท่านั้น)
- sndio
- Core Audio (สำหรับmacOS )
- AVFoundation (ป้อนข้อมูลเท่านั้น)
- AudioToolbox (เฉพาะเอาต์พุต)
วิดีโอไอโอ
- วิดีโอ4ลินุกซ์ 2
- วิดีโอสำหรับ Windows (สำหรับป้อนข้อมูลเท่านั้น)
- Windows DirectShow
- กล้อง Android (สำหรับป้อนข้อมูลเท่านั้น)
การจับภาพหน้าจอและการส่งออก
- เลเยอร์ 2 ของ DirectMedia แบบง่าย (เฉพาะเอาต์พุต)
- OpenGL (แสดงผลอย่างเดียว)
- เฟรมบัฟเฟอร์ของลินุกซ์ (fbdev)
- อินเทอร์เฟซอุปกรณ์กราฟิก (GDI; สำหรับป้อนข้อมูลเท่านั้น)
- ระบบ X Window (X11; ผ่านXCB ; ป้อนข้อมูลเท่านั้น)
- ส่วนขยายวิดีโอ X (XV; ผ่านXlib ; ส่งออกอย่างเดียว)
- การตั้งค่าโหมดเคอร์เนล (ผ่าน libdrm; ป้อนข้อมูลเท่านั้น)
คนอื่น
- ภาพ 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 ) โดยสามารถใช้ร่วมกับฮาร์ดแวร์แบบกำหนดเองเพื่อลดความซับซ้อนในการจัดการเวอร์ชันและการพึ่งพา และยังช่วยให้เกิดการแยกส่วนระบบปฏิบัติการข้ามผู้ผลิตระบบปฏิบัติการและโปรเซสเซอร์ที่แตกต่างกันหลายรายอีกด้วย
ดูเพิ่มเติม
- MPlayerเป็นโครงการที่คล้ายกัน
- รายชื่อซอฟต์แวร์และเครื่องมือประกอบ
- รายชื่อโคเดกโอเพนซอร์ส
- รายชื่อโปรแกรมตัดต่อวิดีโอ
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ 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...