Jump to content

FFmpeg

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning
FFmpeg
Original author(s)Fabrice Bellard
Bobby Bingham (libavfilter)[1]
Developer(s)FFmpeg team
Initial releaseDecember 20, 2000; 25 years ago (2000-12-20)[2]
Repositorygit.ffmpeg.org/ffmpeg.git
Written inC and Assembly[3]
Operating systemVarious, including Windows, macOS, and Linux (executable programs are only available from third parties, as the project only distributes source code)[4][5]
Platformx86, ARM, PowerPC, MIPS, RISC-V, DEC Alpha, Blackfin, AVR32, SH-4, and SPARC; may be compiled for other desktop computers
TypeMultimedia framework
LicenseLGPL-2.1-or-later, GPL-2.0-or-later
Unredistributable if compiled with any software with a license incompatible with the GPL[6]
Websiteffmpeg.org

FFmpeg은 비디오, 오디오, 및 기타 멀티미디어 파일과 스트림을 처리하는 데 라이브러리프로그의 모음으로 구성된 자유와 오픈-소스 소프트웨어 프로젝트입니다. 핵심에서 비디오와 오디오 파일을 처리하도록 설계된 명령-줄 ffmpeg 도구 자체가 있습니다. 그것은 형식 트랜스-코딩, 기본 편집 (트리밍과 연쇄), 비디오 스케일링, 비디오 사후-프로덕션 효과, 및 표준 준수 (SMPTE, ITU)에 널리 사용됩니다.

FFMPEG은 역시 다른 도구: ffplay, 간단한 미디어 플레이어, 및 ffprobe, 미디어 정보를 표시하기 위한 명령 줄 도구를 포함합니다. 포함된 라이브러리 중에는 많은 상업용 및 자유 소프트웨어 제품에 의해 사용되는 오디오/비디오 코덱 라이브러리 libavcodec, 오디오/비디오 컨테이너 mux와 demux 라이브러리 libavformat (Lavf), 및 GStreamer-계열 필터그래프를 통한 필터를 향상시키고 편집하기 위한 라이브러리 libavfilter가 포함되어 있습니다.[7]

FFmpeg는 다른 많은 소프트웨어 프로젝트의 워크-플로우의 일부이고, 라이브러리는 VLC와 같은 소프트웨어 미디어 플레이어의 핵심 부분이고, YouTubeBilibili의 핵심 처리에 포함되었습니다.[8] 많은 오디오와 비디오 파일 형식에 대한 인코더과 디코더가 포함되어 있어, 공통 및 드문 미디어 파일의 트랜스-코딩에 매우 유용하게 만듭니다.

FFmpeg는 어떤 옵션이 활성화되었는지에 따라 LGPL-2.1-or-later 또는 GPL-2.0-or-later에 아래에서 게시됩니다.[9]

Introduction

간혹, 음악 파일 또는 비디오 파일을 변환할 필요가 있습니다. 이때, 여러 도구 중에서 이 도구를 이용하기도 합니다.

비디오 파일 합치기

연결하려는 비디오 파일을 목록화하는, 예를 들어, mylist.txt 파일을 만듭니다:

file video_file1.mp4
file video_file2.mp4
file video_file3.mp4

그런-다음 다음 명령으로 합칠 수 있습니다:

  • ffmpeg -f concat -i mylist.txt -c copy new_filename.mp4

Installation

데비안 저장소에서 설치할 수 있습니다:

  • sudo nala install ffmpeg

History

그 프로젝트는 2000년 Fabrice Bellard[9] (가명 "Gérard Lantau"를 사용)에 의해 시작되었고, 2004년부터 2015년까지 Michael Niedermayer에 의해 주도되었습니다.[10] 일부 FFmpeg 개발자도 MPlayer 프로젝트의 일부였습니다.

그 프로젝트의 이름은 MPEG 비디오 표준 그룹과 "fast forward"의 "FF"와 함께 영감을 얻었으므로, FFmpeg는 "Fast Forward Moving Picture Experts Group"을 나타냅니다.[11] 로고는 MPEG 비디오 코덱이 엔트로피 인코딩을 처리하는 방법을 보여주는 지그재그 스캔 패턴을 나타냅니다.[12]

2011년 3월 13일, FFmpeg 개발자 그룹은 Libav라는 이름으로 프로젝트를 포크하기로 결정했습니다.[13][14][15] 그 행사는 프로젝트 관리 문제와 관련이 있었으며, 여기에서 개발자들은 FFmpeg의 리더십에 동의하지 않았습니다다.[16][17][18]

2014년 1월 10일, 두 명의 Google 직원이 지난 2년 동안 퍼즈 테스을 수단으로 FFmpeg에서 1000개가 넘는 버그가 수정되었다고 발표했습니다.[19]

2018년 1월, FFmpeg의 오랜 구성 요소인 ffserver 명령-줄 프로그램이 제거되었습니다.[20] 개발자들은 이전에 내부 응용 프로그램 프로그래밍 인터페이스의 사용으로 인해 높은 유지 보수 노력을 인용하는 프로그램을 더 이상 사용하지 않았습니다.[21]

프로젝트는 평균 매 3개월마다 새로운 릴리스를 게시합니다. 릴리스 버전은 웹 사이트에서 다운로드할 수 있고, 반면에 FFmpeg 개발자는 Git 버전 제어 시스템을 사용하여 소스 코드에서 최신 빌드를 사용하여 소스에서 소프트웨어를 컴파일하는 것을 추천합니다.[22]

Codec history

해당 코덱과 하나의 컨테이너 형식을 갖춘 두 개의 비디오 코딩 형식이 지금까지 FFmpeg 프로젝트 내에서 생성되어 왔습니다. 두 개의 비디오 코덱은 무손실 FFV1과 무손실 및 손실 Snow 코덱입니다. Snow의 개발이 중단되었지만, 비트-스트림 형식은 아직 확정되지 않았으며, 그것을 2011년 이후 실험적으로 만듭니다. NUT라고 불리는 멀티미디어 컨테이너 형식은 더 이상 적극적으로 개발되지 않지만, 여전히 유지 관리됩니다.[23]

2010년 여름, FFmpeg 개발자 Fiona Glaser, Ronald Bultje, 및 David Conrad는 ffvp8 디코더를 발표했습니다. 테스트를 통해, 그들은 ffvp8이 Google 자체 libvpx 디코더보다 빠르다고 판단했습니다.[24][25] 버전 0.6을 시작으로, FFmpeg는 WebMVP8도 지원했습니다.[26]

2013년 10월, 네이티브 VP9[27] 디코드 및 OpenHevc, 오픈 소스 High Efficiency Video Coding (HEVC) 디코더는 FFmpeg에 추가되었습니다.[28] 2016년에 네이티브 AAC 인코더는 안정적으로 고려되어, VisualOnFAAC에서 두 개의 외부 AAC 인코더에 대한 지지를 제거했습니다. FFmpeg 3.0 ("Einstein"이라는 별명) Fraunhofer FDK AAC 인코더에 대한 빌드 지원을 유지했습니다.[29] 버전 3.4 이후, "Cantor" FFmpeg는 FITS 이미지 형식을 지원했습니다.[30] 2018년 11월 이후, 버전 4.1 "al-Khwarizmi"에서 AV1WebM을 포함하여 MP4Matroska에서 혼합될 수 있습니다.[31][32]

Components

Command-line tools

  • ffmpeg은 오디오 또는 비디오 형식을 변환하는 명령-줄 도구입니다. 그것은 역시 TV 캡처 카드와 같은 다양한 하드웨어와 소프트웨어 소스에서 실시간으로 캡처하고 인코딩할 수 있습니다.[33]
  • ffplaySDL과 FFmpeg 라이브러리를 활용하는 간단한 미디어 플레이어입니다.
  • ffprobe는 미디어 정보 (text, CSV, XML, JSON)를 표시하는 명령-줄 도구입니다. MediaInfo도 참조하십시오.

Libraries

  • libswresample은 오디오 표본화 루틴을 포함하는 라이브러리입니다.
  • libavresampleffmpeg에서 libswresample과 유사한 Libav 프로젝트에서 오디오 재표본화 루틴을 포함하는 라이브러리입니다.
  • libavcodec은 모든 네이티브 FFmpeg 오디오/비디오 인코더와 디코더를 포함하는 라이브러리입니다. 대부분의 코덱은 최상의 성능과 높은 코드 재사용을 보장하기 위해 처음부터 개발되었습니다.
  • libavformat (Lavf)는 오디오/비디오 컨테이너 형식에 대해 demuxers와 muxers를 포함하는 라이브러리입니다.[34]
  • libavutil는 FFmpeg의 다른 부분에 공통적인 루틴을 포함하는 도우미 라이브러리입니다. 이 라이브러리는 해시 기능, 암호, LZO 압축기, 및 Base64 인코더/디코더를 포함합니다.
  • libpostproc은 이전 H.263 기반 비디오 후처리 루틴을 포함하는 라이브러리입니다.
  • libswscale는 비디오 이미지 스케일링colorspace/pixelformat 변환 루틴을 포함하는 라이브러리입니다.
  • libavfilter는 vhook을 대체하여 디코더와 인코더 사이에서 비디오/오디오를 수정 또는 검사 (디버깅용)하도록 허용합니다. 필터는 MPlayeravisynth를 포함한 많은 프로젝트에서 포팅되어 왔습니다.
  • libavdevice는 내부 및 외부 장치를 통한 오디오/비디오 io를 포함하는 라이브러리입니다.

Supported hardware

CPUs

FFmpeg는 비디오와 오디오 압축 알고리즘과 압축-압축 알고리즘의 소프트웨어 구현을 포함합니다. 이것들은 x86 (IA-32x86-64), PPC (PowerPC), ARM, DEC Alpha, SPARC, 및 MIPS를 포함하여 다양한 명령어 모음에서 컴파일되고 실행될 수 있습니다.[35]

Special purpose hardware

오디오/비디오 압축과 압축-해제를 위한 다양한 응용 프로그램-지정 통합 회로 (ASIC)가 있습니다. 이들 ASIC는 호스트 CPU에서 계산을 부분적으로 또는 완전히 오프로드할 수 있습니다. 알고리즘의 완전한 구현 대신, API만 그러한 ASIC를 사용해야 합니다.[36]

Firm ASIC purpose supported by FFmpeg Details
AMD UVD decoding Yes via VDPAU API and VAAPI
VCE encoding Yes via VAAPI, considered experimental[37]
Amlogic Amlogic Video Engine decoding ?
BlackMagic DeckLink encoding/decoding Yes real-time ingest and playout
Broadcom Crystal HD decoding Yes
Qualcomm Hexagon encoding/decoding Yes hwaccel[38]
Intel Intel Clear Video decoding Yes (libmfx, VAAPI)
Intel Quick Sync Video encoding/decoding Yes (libmfx, VAAPI)
Nvidia PureVideo / NVDEC decoding Yes via the VDPAU API as of FFmpeg v1.2 (deprecated)
via CUVID API as of FFmpeg v3.1[39]
NVENC encoding Yes as of FFmpeg v2.6

다음과 같은 API도 지원됩니다: DirectX 비디오 가속기 (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 루틴, 또는 SIMD CPU 코드로 이어질 수 있습니다.[40]

Supported codecs and formats

Image formats

FFmpeg는 많은 공통적이고 일부 덜 공통적 이미지 형식을 지원합니다.

PGMYUV 이미지 형식은 바이너리 (P5) PGM Netpbm 형식의 홈-브루 변형입니다. FFmpeg는 역시 PGM 및 PPM 형식의 16-비트 깊이와 알파 채널을 갖는 또는 관계 없는 바이너리 (P7) PAM 형식, pix_fmts monob, gray, gray16be, rgb24, rgb48be, ya8, rgba, rgb64be에 대해 깊이 8 비트 또는 16 비트를 지원합니다.

Supported formats

FFmpeg 내에서 생성되고 개발된 FFV1 및 Snow 형식 외에도, 그 프로젝트는 다음과 같은 형식을 지원합니다:

Group Format type Format name
ISO/IEC/ITU-T Video MPEG-1 Part 2, H.261 (Px64),[41] H.262/MPEG-2 Part 2, H.263,[41] MPEG-4 Part 2, H.264/MPEG-4 AVC, HEVC/H.265[28] (MPEG-H Part 2), MPEG-4 VCB (a.k.a. VP8), Motion JPEG, IEC DV video and CD+G
Audio MP1, MP2, MP3, AAC, HE-AAC, MPEG-4 ALS, G.711 μ-law, G.711 A-law, G.721 (a.k.a. G.726 32k), G.722, G.722.2 (a.k.a. AMR-WB), G.723 (a.k.a. G.726 24k and 40k), G.723.1, G.726, G.729, G.729D, IEC DV audio and Direct Stream Transfer
Subtitle MPEG-4 Timed Text (a.k.a. 3GPP Timed Text)
Image JPEG, Lossless JPEG, JPEG-LS, JPEG 2000, JPEG XL,[42] PNG, CCITT G3 and CCITT G4
Alliance for Open Media Video AV1[43]
Image AVIF[44]
EIA Subtitle EIA-608
CEA Subtitle CEA-708
SMPTE Video SMPTE 314M (a.k.a. DVCAM and DVCPRO), SMPTE 370M (a.k.a. DVCPRO HD), VC-1 (a.k.a. WMV3), VC-2 (a.k.a. Dirac Pro), VC-3 (a.k.a. AVID DNxHD)
Audio SMPTE 302M
Image DPX
ATSC/ETSI/DVB Audio Full Rate (GSM 06.10), AC-3 (Dolby Digital), Enhanced AC-3 (Dolby Digital Plus) and DTS Coherent Acoustics (a.k.a. DTS or DCA)
Subtitle DVB Subtitling (ETSI 300 743)
DVD Forum/Dolby Audio MLP / Dolby TrueHD
Subtitle DVD-Video subtitles
Xperi/DTS, Inc/QDesign Audio DTS Coherent Acoustics (a.k.a. DTS or DCA), DTS Extended Surround (a.k.a. DTS-ES), DTS 96/24, DTS-HD High Resolution Audio, DTS Express (a.k.a. DTS-HD LBR), DTS-HD Master Audio, QDesign Music Codec 1 and 2
Blu-ray Disc Association Subtitle PGS (Presentation Graphics Stream)
3GPP Audio AMR-NB, AMR-WB (a.k.a. G.722.2)
3GPP2 Audio QCELP-8 (a.k.a. SmartRate or IS-96C), QCELP-13 (a.k.a. PureVoice or IS-733) and Enhanced Variable Rate Codec (EVRC. a.k.a. IS-127)
World Wide Web Consortium Video Animated GIF[45]
Subtitle WebVTT
Image GIF, and SVG (via librsvg)
IETF Video FFV1
Audio iLBC (via libilbc), Opus and Comfort noise
International Voice Association Audio DSS-SP
SAC Video AVS video, AVS2 video[46] (via libdavs2), and AVS3 video (via libuavs3d)
Microsoft Video Microsoft RLE, Microsoft Video 1, Cinepak, Microsoft MPEG-4 v1, v2 and v3, Windows Media Video (WMV1, WMV2, WMV3/VC-1), WMV Screen and Mimic codec
Audio Windows Media Audio (WMA1, WMA2, WMA Pro and WMA Lossless), XMA (XMA1 and XMA2),[47] MSN Siren, MS-GSM and MS-ADPCM
Subtitle SAMI
Image Windows Bitmap, WMV Image (WMV9 Image and WMV9 Image v2), DirectDraw Surface, and MSP[48]
Interactive Multimedia Association Audio IMA ADPCM
Intel / Digital Video Interactive Video RTV 2.1 (Indeo 2), Indeo 3, 4 and 5,[41] and Intel H.263
Audio DVI4 (a.k.a. IMA DVI ADPCM), Intel Music Coder, and Indeo Audio Coder
RealNetworks Video RealVideo Fractal Codec (a.k.a. Iterated Systems ClearVideo), 1, 2, 3 and 4
Audio RealAudio v1 – v10, and RealAudio Lossless[49]
Subtitle RealText
Apple / Spruce Technologies Video Cinepak (Apple Compact Video), ProRes, Sorenson 3 Codec, QuickTime Animation (Apple Animation), QuickTime Graphics (Apple Graphics), Apple Video, Apple Intermediate Codec and Pixlet[50]
Audio ALAC
Image QuickDraw PICT
Subtitle Spruce subtitle (STL)
Adobe Flash Player (SWF) Video Screen video, Screen video 2, Sorenson Spark and VP6
Audio Adobe SWF ADPCM and Nellymoser Asao
Adobe / Aldus Image TIFF, PSD,[50] and DNG
Xiph.Org Video Theora
Audio Speex,[51] Vorbis, Opus and FLAC
Subtitle Ogg Writ
Sony Audio Adaptive Transform Acoustic Coding (ATRAC1, ATRAC3, ATRAC3Plus,[52] and ATRAC9[46])[41] and PSX ADPCM
NTT Audio TwinVQ
Google / On2 / GIPS Video Duck TrueMotion 1, Duck TrueMotion 2, Duck TrueMotion 2.0 Real Time, VP3, VP4,[53] VP5,[41] VP6,[41] VP7, VP8,[54] VP9[27] and animated WebP
Audio DK ADPCM Audio 3/4, On2 AVC and iLBC (via libilbc)
Image WebP[55]
Epic Games / RAD Game Tools Video Smacker video and Bink video
Audio Bink audio
CRI Middleware Audio ADX ADPCM, and HCA
Nintendo / NERD Video Mobiclip video
Audio GCADPCM (a.k.a. ADPCM THP), FastAudio, and ADPCM IMA MOFLEX
Synaptics / DSP Group Audio Truespeech
Electronic Arts / Criterion Games / Black Box Games / Westwood Studios Video RenderWare TXD,[56] Madcow, CMV, TGV, TGQ, TQI, Midivid VQ (MVDV), MidiVid 3.0 (MV30), Midivid Archival (MVHA), and Vector Quantized Animation (VQA)
Audio Electronic Arts ADPCM variants
Netpbm Image PBM, PGM, PPM, PNM, PAM, PFM and PHM
MIT/X Consortium/The Open Group Image XBM,[49] XPM and xwd
HPE / SGI / Silicon Graphics Video Silicon Graphics RLE 8-bit video,[45] Silicon Graphics MVC1/2[45]
Image Silicon Graphics Image
Oracle/Sun Microsystems Image Sun Raster
IBM Video IBM UltiMotion
Avid Technology / Truevision Video Avid 1:1x, Avid Meridien,[49] Avid DNxHD, Avid DNx444,[52] and DNxHR
Image Targa[45]
Autodesk / Alias Video Autodesk Animator Studio Codec and FLIC
Image Alias PIX
Activision Blizzard / Activision / Infocom Audio ADPCM Zork
Konami / Hudson Soft Video HVQM4 Video
Audio Konami MTAF, and ADPCM IMA HVQM4
Grass Valley / Canopus Video HQ, HQA, HQX and Lossless
Vizrt / NewTek Video SpeedHQ
Image Vizrt Binary Image[44]
Academy Software Foundation / ILM Image OpenEXR[49]
Mozilla Corporation Video APNG[55]
Matrox Video Matrox Uncompressed SD (M101) / HD (M102)
AMD/ATI Video ATI VCR1/VCR2
Asus Video ASUS V1/V2 codec
Commodore Video CDXL codec
Kodak Image Photo CD
Blackmagic Design / Cintel Image Cintel RAW
Houghton Mifflin Harcourt / The Learning Company / ZSoft Corporation Image PCX
Australian National University Image X-Face[45]
Bluetooth Special Interest Group Audio SBC, and mSBC
Qualcomm / CSR Audio QCELP, aptX, and aptX HD
Open Mobile Alliance / WAP Forum Image Wireless Bitmap

Muxers

FFmpeg에서 출력 형식 (컨테이너 형식과 출력 스트림 생성 방법)은 "muxers"라고 합니다. FFmpeg는 무엇보다도 다음을 지원합니다:

Pixel formats

Type Color Packed Planar Palette
Without alpha With alpha Without alpha With alpha Chroma-interleaved With alpha
Monochrome Binary (1-bit monochrome) monoblack, monowhite
Grayscale 8/9/10/12/14/16bpp 16/32bpp
RGB RGB 1:2:1 (4-bit color) 4bpp
RGB 3:3:2 (8-bit color) 8bpp
RGB 5:5:5 (High color) 16bpp
RGB 5:6:5 (High color) 16bpp
RGB/BGR 24/30[p 1]/48bpp 32[p 2]/64bpp 8bit->32bpp
GBR[p 3] 8/9/10/12/14/16bpc 8/10/12/16bpc
RGB Float RGB 32bpc 16/32bpc
GBR 32bpc 32bpc
YUV YVU 4:1:0 (9bpp (YVU9))[p 4]
YUV 4:1:0 9bpp
YUV 4:1:1 8bpc (UYYVYY) 8bpc (8bpc (NV11))
YVU 4:2:0 (8bpc (YV12))[p 4] 8 (NV21)
YUV 4:2:0 8[p 5]/9/10/12/14/16bpc 8/9/10/16bpc 8 (NV12)/10 (P010)/12 (P012)/16bpc (P016)
YVU 4:2:2 (8bpc (YV16))[p 4] (8bpc (NV61))
YUV 4:2:2 8 (YUYV[p 6] and UYVY)/10 (Y210)/12bpc (Y212)[p 7] 8[p 8]/9/10/12/14/16bpc 8/9/10/12/16bpc 8 (NV16)/10 (NV20 and P210)/16bpc (P216)
YUV 4:4:0 8/10/12bpc
YVU 4:4:4 (8bpc (YV24))[p 4] 8bpc (NV42)
YUV 4:4:4 8 (VUYX)/10[p 9]/12bpc[p 10] 8[p 11] / 16bpc (AYUV64)[p 12] 8[p 13]/9/10/12/14/16bpc 8/9/10/12/16bpc 8 (NV24)/10 (P410)/ 16bpc (P416)
XYZ XYZ 4:4:4[p 14] 12bpc
Bayer BGGR/RGGB/GBRG/GRBG 8/16bpp
  1. ^ 10-bit color components with 2-bit padding (X2RGB10)
  2. ^ RGBx (rgb0) and xBGR (0bgr) are also supported
  3. ^ used in YUV-centric codecs such like H.264
  4. ^ a b c d YVU9, YV12, YV16, and YV24 are supported as rawvideo codec in FFmpeg.
  5. ^ I420 a.k.a. YUV420P
  6. ^ aka YUY2 in Windows
  7. ^ UYVY 10bpc without a padding is supported as bitpacked codec in FFmpeg. UYVY 10bpc with 2-bits padding is supported as v210 codec in FFmpeg. 16bpc (Y216) is supported as targa_y216 codec in FFmpeg.
  8. ^ I422 a.k.a. YUV422P
  9. ^ XV30 a.k.a. XVYU2101010
  10. ^ XV36
  11. ^ VUYA a.k.a. AYUV
  12. ^ 10bpc (Y410), 12bpc (Y412), and Y416 (16bpc) are not supported.
  13. ^ I444 a.k.a. YUV444P
  14. ^ used in JPEG2000

FFmpeg은 IMC1-IMC4, AI44, CYMK, RGBE, Log RGB, 및 기타 형식을 지원하지 않습니다. 그것은 역시 여진히 ARGB 1:5:5:5, 2:10:10:10, 또는 공통적으로 사용되지 않는 다른 BMP 비트-필드 형식을 지원하지 않습니다.

Supported protocols

Open standards

Supported filters

FFmpeg supports, among others, the following filters.[67]

Audio

Video

  • Transformations
    • Cropping (crop, cropdetect)
    • Fading (fade)
    • Scaling (scale)
    • Padding (pad)
    • Rotation (rotate)
    • Transposition (transpose)
    • Others:
      • Lens correction (lenscorrection)
      • OpenCV filtering (ocv)
      • Perspective correction (perspective)
  • Temporal editing
    • Framerate (fps, framerate)
    • Looping (loop)
    • Trimming (trim)
  • Deinterlacing (bwdif, idet, kerndeint, nnedi, yadif, w3fdif)
  • Inverse Telecine
  • Filtering
  • Denoising (atadenoise, bitplanenoise, dctdnoiz, owdenoise, removegrain)
  • Logo removal (delogo, removelogo)
  • Subtitles (ASS, subtitles)
  • Alpha channel editing (alphaextract, alphamerge)
  • Keying (chromakey, colorkey, lumakey)
  • Frame detection
    • Black frame detection (blackdetect, blackframe)
    • Thumbnail selection (thumbnail)
  • Frame Blending (blend, tblend, overlay)
  • Video stabilization (vidstabdetect, vidstabtransform)
  • Color and Level adjustments
    • Balance and levels (colorbalance, colorlevels)
    • Channel mixing (colorchannelmixer)
    • Color space (colorspace)
    • Parametric adjustments (curves, eq)
  • Histograms and visualization
  • Drawing
  • OCR
  • Quality measures
  • Lookup Tables
    • lut, lutrgb, lutyuv, lut2, lut3d, haldclut

Supported test patterns

Supported LUT formats

Supported media and interfaces

FFmpeg는 외부 라이브러리를 통해 다음 장치를 지원합니다.[69]

Media

Physical interfaces

  • IEEE 1394 (a.k.a. FireWire; via libdc1394 and libraw1394; input only)
  • IEC 61883 (via libiec61883; input only)
  • DeckLink
  • Brooktree video capture chip (via bktr driver; input only)

Audio IO

Video IO

Screen capture and output

Others

Applications

FFmpeg은 100개가 넘는 코덱을 포함하고 있으며,[70] 그 중 대부분은 한 종류 또는 또 다른 종류의 압축 기술을 사용합니다. 많은 그러한 압축 기술은 소프트웨어 특허와 관련된 법적 주장의 대상이 될 수 있습니다.[71] 그러한 주장은 소프트웨어 특허를 구현해 온 미국과 같은 국가에서는 시행될 수 있지만, 유럽 연합의 회원국에서는 시행 불가능하거나 무효로 고려됩니다.[72] AC3과 모든 MPEG-1 및 MPEG-2 코덱을 포함한 많은 오래된 코덱에 대한 특허가 만료되어 왔습니다.

FFmpeg는 LGPL 라이센스에 따라 라이센스가 부여되지만, FFmpeg의 특정 빌드가 임의의 GPL 라이브러리 (특히 x264)에 연결되었으면, 전체 바이너리는 GPL에 따라 라이센스가 부여됩니다.

Projects using FFmpeg

FFmpeg은 Blender, Cinelerra-GG Infinity, HandBrake, Kodi, MPC-HC, Plex, Shotcut, VirtualDub2 (a VirtualDub 포크),[73] VLC media player, xine, 및 YouTube와 같은 소프트웨어에 의해 사용됩니다.[74][75] 그것은 Google Chrome[74] Firefox의 리눅스 버전에서 비디오와 오디오 재생을 처리합니다.[76] FFmpeg에 대해 GUI 프런트-엔드가 Multimedia Xpert[77] 및 XMedia Recode를 포함하여 개발되어 왔습니다.

FFmpeg는 ffdshow, FFmpegInterop, GStreamer FFmpeg 플러그-인, LAV 필터 및 OpenMAX IL에서 관련 멀티미디어 플랫폼의 인코딩과 디코딩 기능을 확장하기 위해 사용됩니다.

NASAMars 2020 임무의 일환으로, FFmpeg는 피트-길이가 지구로 전송되기 전에 이미지와 비디오 압축을 위해 Mars의 Perseverance rover에 의해 사용됩니다.[78]

See also

References

  1. ^ "Bobby announces work on libavfilter as GsOC project". 2008-02-09. Archived from the original on 2021-10-07. Retrieved 2021-10-07.
  2. ^ "Initial revision - git.videolan.org/ffmpeg.git/commit". git.videolan.org. 2000-12-20. Archived from the original on 2013-12-25. Retrieved 2013-05-11.
  3. ^ "Developer Documentation". ffmpeg.org. 2011-12-08. Archived from the original on 2012-02-04. Retrieved 2012-01-04.
  4. ^ "Platform Specific Information". FFmpeg.org. Archived from the original on 25 February 2020. Retrieved 25 February 2020.
  5. ^ "Download". ffmpeg.org. FFmpeg. Archived from the original on 2011-10-06. Retrieved 2012-01-04.
  6. ^ FFmpeg can be compiled with various external libraries, some of which have licenses that are incompatible with the FFmpeg's primary license, the GNU GPL.
  7. ^ "Libavfilter Documentation". ffmpeg.org. Archived from the original on 2021-10-07. Retrieved 2021-10-07.
  8. ^ ijkplayer, bilibili, 2021-10-05, archived from the original on 2021-10-05, retrieved 2021-10-05
  9. ^ Niedermayer, Michael (31 July 2015). "[FFmpeg-devel] FFmpegs future and resigning as leader". Archived from the original on 2015-08-15. Retrieved 2015-09-22.
  10. ^ Bellard, Fabrice (18 February 2006). "FFmpeg naming and logo". FFmpeg developer mailing list. FFmpeg website. Archived from the original on 26 April 2012. Retrieved 24 December 2011.
  11. ^ Carlsen, Steve (1992-06-03). "TIFF 6.0 specification" (PS). Aldus Corporation. p. 98. Retrieved 2016-08-14. Zig-Zag Scan[dead link] Alt URL Archived 2012-07-03 at the Wayback Machine
  12. ^ Libav project site, archived from the original on 2012-01-03, retrieved 2012-01-04
  13. ^ Ronald S. Bultje (2011-03-14), Project renamed to Libav, archived from the original on 2016-11-07, retrieved 2012-01-04
  14. ^ A group of FFmpeg developers just forked as Libav, Phoronix, 2011-03-14, archived from the original on 2011-09-15, retrieved 2012-01-04
  15. ^ What happened to FFmpeg, 2011-03-30, archived from the original on 2018-09-02, retrieved 2012-05-19
  16. ^ FFMpeg turmoil, 2011-01-19, archived from the original on 2012-01-12, retrieved 2012-01-04
  17. ^ "The FFmpeg/Libav situation". blog.pkh.me. Archived from the original on 2012-07-01. Retrieved 2015-09-22.
  18. ^ "FFmpeg and a thousand fixes". googleblog.com. January 10, 2014. Archived from the original on 22 October 2016. Retrieved 21 October 2016.
  19. ^ "ffserver – FFmpeg". trac.ffmpeg.org. Archived from the original on 2018-02-04. Retrieved 2018-02-03.
  20. ^ "ffserver program being dropped". ffmpeg.org. 2016-07-10. Archived from the original on 2016-07-16. Retrieved 2018-02-03.
  21. ^ "ffmpeg.org/download.html#releases". ffmpeg.org. Archived from the original on 2011-10-06. Retrieved 2015-04-27.
  22. ^ a b "NUT". Multimedia Wiki. 2012. Archived from the original on 2014-01-03. Retrieved 2014-01-03.
  23. ^ Glaser, Fiona (2010-07-23), Diary Of An x264 Developer: Announcing the world's fastest VP8 decoder, archived from the original on 2010-09-30, retrieved 2012-01-04
  24. ^ FFmpeg Announces High-Performance VP8 Decoder, Slashdot, 2010-07-24, archived from the original on 2011-12-21, retrieved 2012-01-04
  25. ^ "FFmpeg Goes WebM, Enabling VP8 for Boxee & Co". newteevee.com. 2010-06-17. Archived from the original on 2010-06-20. Retrieved 2012-01-04. ...with VLC, Boxee, MythTV, Handbrake and MPlayer being some of the more popular projects utilizing FFmpeg...
  26. ^ a b "Native VP9 decoder is now in the Git master branch". Launchpad. 2013-10-03. Archived from the original on 2013-10-22. Retrieved 2013-10-21.
  27. ^ a b "FFmpeg Now Features Native HEVC/H.265 Decoder Support". Softpedia. 2013-10-16. Archived from the original on 2014-06-15. Retrieved 2013-10-16.
  28. ^ FFmpeg (2016-02-15). "February 15th, 2016, FFmpeg 3.0 "Einstein"". Archived from the original on 2016-07-16. Retrieved 2016-04-02.
  29. ^ FFmpeg (2017-10-15). "October 15th, 2017, FFmpeg 3.4 "Cantor"". Archived from the original on 2016-07-16. Retrieved 2019-05-10.
  30. ^ FFmpeg (2018-11-06). "November 6th, 2018, FFmpeg 4.1 "al-Khwarizmi"". Archived from the original on 2016-07-16. Retrieved 2019-05-10.
  31. ^ Jan Ozer (2019-03-04). "Good News: AV1 Encoding Times Drop to Near-Reasonable Levels". StreamingMedia.com. Archived from the original on 2021-05-14. Retrieved 2019-05-10.
  32. ^ This video of Linux desktop (X11) was captured by ffmpeg and encoded in realtimeTemplate:Circular reference
  33. ^ "FFmpeg: Lavf: I/O and Muxing/Demuxing Library". ffmpeg.org. Archived from the original on 3 December 2016. Retrieved 21 October 2016.
  34. ^ "FFmpeg Automated Testing Environment". Fate.multimedia.cx. Archived from the original on 2016-04-10. Retrieved 2012-01-04.
  35. ^ "FFmpeg Hardware Acceleration". ffmpeg.org Wiki. Archived from the original on 2016-12-04. Retrieved 2016-11-12.
  36. ^ "Hardware/VAAPI – FFmpeg". trac.ffmpeg.org. Archived from the original on 2017-10-16. Retrieved 2017-10-16.
  37. ^ "HEVC Video Encoder User Manual" (PDF). Qualcomm Developer Network. Archived (PDF) from the original on 2021-04-16. Retrieved 2021-02-23.
  38. ^ "FFmpeg Changelog". GitHub. Archived from the original on 2017-03-21. Retrieved 2016-11-12.
  39. ^ "HWAccelIntro – FFmpeg". trac.ffmpeg.org. Archived from the original on 2016-12-04. Retrieved 2016-11-12.
  40. ^ a b c d e f "Changelog". FFmpeg trunk SVN. FFmpeg. 17 April 2007. Retrieved 26 April 2007.[permanent dead link]
  41. ^ "FFmpeg Lands JPEG-XL Support". www.phoronix.com. Archived from the original on 2022-07-24. Retrieved 2022-04-26.
  42. ^ "git.ffmpeg.org Git - ffmpeg.git/commit". git.ffmpeg.org. Archived from the original on 2018-04-23. Retrieved 2018-04-23.
  43. ^ a b FFmpeg 5.1 Released With Many Improvements To This Important Multimedia Project Archived 2022-08-07 at the Wayback Machine. Phoronix. July 22, 2022
  44. ^ a b c d e FFmpeg 1.1 Brings New Support, Encoders/Decoders Archived 2022-08-08 at the Wayback Machine. Phoronix. January 7, 2013
  45. ^ a b FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 Archived 2022-08-08 at the Wayback Machine. Phoronix. November 6, 2018
  46. ^ FFmpeg 3.0 Released, Supports VP9 VA-API Acceleration Archived 2022-08-08 at the Wayback Machine. Phoronix. February 15, 2016
  47. ^ FFmpeg 4.4 Released With AV1 VA-API Decoder, SVT-AV1 Encoding Archived 2022-08-08 at the Wayback Machine. Phoronix. April 9, 2021
  48. ^ a b c d FFmpeg 0.11 Has Blu-Ray Protocol, New Encoders Archived 2022-08-08 at the Wayback Machine. Phoronix. May 26, 2012
  49. ^ a b FFmpeg 3.3 Brings Native Opus Encoder, Support For Spherical Videos Archived 2022-08-08 at the Wayback Machine. Phoronix. April 17, 2017
  50. ^ FFmpeg 5.0 Released For This Popular, Open-Source Multimedia Library Archived 2022-08-08 at the Wayback Machine. Phoronix. January 14, 2022
  51. ^ a b FFmpeg 2.2 Release Adds The Libx265 Encoder Archived 2022-08-08 at the Wayback Machine. Phoronix. March 23, 2014
  52. ^ FFmpeg 4.2 Released With AV1 Decoding Support, GIF Parser Archived 2022-08-08 at the Wayback Machine. Phoronix. August 6, 2019
  53. ^ FFmpeg 0.6 Released With H.264, VP8 Love Archived 2022-08-08 at the Wayback Machine. Phoronix. June 16, 2010
  54. ^ a b FFmpeg 2.5 Brings Animated PNG, WebP Decoding Support Archived 2022-08-08 at the Wayback Machine. Phoronix. December 4, 2014
  55. ^ a b "FFmpeg development mailing list". FFmpeg development. FFmpeg. 7 May 2007. Archived from the original on 11 August 2007. Retrieved 24 December 2010.
  56. ^ vitor (13 April 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. Retrieved 14 April 2008.[permanent dead link]
  57. ^ vitor (30 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. Retrieved 30 March 2008.[permanent dead link]
  58. ^ "FFmpeg: MaxisXADemuxContext Struct Reference". FFmpeg development. FFmpeg website. Archived from the original on 17 March 2024. Retrieved 17 March 2024.
  59. ^ Michael Niedermayer, Timothy Gu (2014-12-05). "RELEASE NOTES for FFmpeg 2.5 "Bohr"". VideoLAN. Archived from the original on 2014-12-08. Retrieved 2014-12-05.
  60. ^ ramiro (18 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. Archived from the original on 17 August 2008. Retrieved 18 March 2008.
  61. ^ banan (8 June 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. Archived from the original on 14 January 2009. Retrieved 8 June 2008.
  62. ^ faust3 (21 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. Archived from the original on 25 April 2008. Retrieved 21 March 2008.{{cite web}}: CS1 maint: numeric names: authors list (link)
  63. ^ van Kesteren, Anne (2010-09-01). "Internet Drafts are not Open Standards". annevankesteren.nl. Self-published. Archived from the original on 2010-09-02. Retrieved 2015-03-22.
  64. ^ Real Time Streaming Protocol 2.0 (RTSP) Archived 2023-10-25 at the Wayback Machine P.231
  65. ^ "rtsp: Support tls-encapsulated RTSP - git.videolan.org Git - ffmpeg.git/commit". videolan.org. Archived from the original on 18 October 2016. Retrieved 21 October 2016.
  66. ^ "FFmpeg Filters". ffmpeg.org. Archived from the original on 2017-03-28. Retrieved 2017-03-27.
  67. ^ How it works earwax.ca
  68. ^ "FFmpeg Devices Documentation". ffmpeg.org. Archived from the original on 2021-10-25. Retrieved 2021-10-25.
  69. ^ "Codecs list". ffmpeg.org. Archived from the original on 2012-01-06. Retrieved 2012-01-01.
  70. ^ "Legal information on FFmpeg's website". ffmpeg.org. Archived from the original on 2012-01-03. Retrieved 2012-01-04.
  71. ^ "The European Patent Convention". www.epo.org. European Patent Office. 2020-11-29. Archived from the original on 2021-11-19. Retrieved 2021-11-24.
  72. ^ "VirtualDub2". Archived from the original on 2020-08-07. Retrieved 2020-08-15.
  73. ^ a b "FFmpeg-based Projects". ffmpeg.org. Archived from the original on 2016-02-20. Retrieved 2012-01-04..
  74. ^ "Google's YouTube Uses FFmpeg | Breaking Eggs And Making Omelettes". Multimedia.cx. 2011-02-08. Archived from the original on 2012-08-14. Retrieved 2012-08-06.
  75. ^ "Firefox Enables FFmpeg Support By Default". Phoronix. 2015-11-15. Archived from the original on 2017-09-25. Retrieved 2015-11-18.
  76. ^ "Multimedia Xpert". Atlas Informatik. Archived from the original on 2023-04-04. Retrieved 2022-05-26.
  77. ^ Maki, J. N.; Gruel, D.; McKinney, C.; Ravine, M. A.; Morales, M.; Lee, D.; Willson, R.; Copley-Woods, D.; Valvo, M.; Goodsall, T.; McGuire, J.; Sellar, R. G.; Schaffner, J. A.; Caplinger, M. A.; Shamah, J. M.; Johnson, A. E.; Ansari, H.; Singh, K.; Litwin, T.; Deen, R.; Culver, A.; Ruoff, N.; Petrizzo, D.; Kessler, D.; Basset, C.; Estlin, T.; Alibay, F.; Nelessen, A.; Algermissen, S. (2020). "The Mars 2020 Engineering Cameras and Microphone on the Perseverance Rover: A Next-Generation Imaging System for Mars Exploration". Space Science Reviews. 216 (8). Springer Nature Switzerland AG.: 137. Bibcode:2020SSRv..216..137M. doi:10.1007/s11214-020-00765-9. PMC 7686239. PMID 33268910.