프로젝트 소개

ffmpeg-kit-extended는 모바일 및 데스크톱 플랫폼용 FFmpeg, FFprobe, FFplay 9.0.1 API를 감싸는 포괄적인 Flutter 및 React Native 플러그인입니다. Dart FFI를 사용해 네이티브 FFmpeg 라이브러리에 직접 바인딩하여 Android, iOS, macOS, Linux, Windows 전반에서 고성능 미디어 조작, 정보 검색, 오디오/동영상 재생을 제공합니다. 주요 기능은 다음과 같습니다: - 통합 표면 API를 통한 크로스 플랫폼 동영상 재생(Android Surface, iOS/macOS CVPixelBuffer/Metal, Linux OpenGL, Windows) - UI 스레드를 차단하지 않는 비동기 및 병렬 명령 실행 - 실시간 재생 모니터링을 위한 위치 및 동영상 크기의 실시간 스트리밍 - 전체 세션 수명 주기 관리(시작, 취소, 세션 목록 조회) - 로그, 통계, 완료 이벤트에 대한 상세 콜백 - 버전, 빌드 날짜, 사용 가능한 muxer, demuxer, 인코더, 디코더, 필터를 조회하는 패키지 인트로스펙션 API - 사용자 정의 네이티브 라이브러리 로딩 및 구성 지원 - 함께 제공되는 ffmpeg-kit-builders 저장소를 통한 배포 가능한 사용자 정의 빌드 사전 번들 빌드는 base(코어 전용), audio, video, video_hw(하드웨어 가속 동영상), full(플랫폼과 호환되는 모든 라이브러리)의 다섯 가지 등급으로 제공됩니다. full 번들에는 데스크톱 플랫폼에서 libopenvino, libtensorflow, libonnxruntime, libtorch, whisper, pocketsphinx와 같은 AI 라이브러리가 포함됩니다. 코덱(libx264, libx265, libvpx, libaom, libdav1d 등), 스트리밍(libsrt, librist, librtmp), 하드웨어 가속(Vulkan, OpenCL, CUDA, VAAPI, VideoToolbox, MediaFoundation), 플랫폼별 프레임워크(AVFoundation, MediaCodec, JNI) 전반에 걸쳐 광범위한 외부 라이브러리를 지원합니다. 플랫폼 지원 행렬: - Android(API 26+): armv7, arm64, x86_64; Flutter 및 React Native - iOS 13+ / tvOS 13+: arm64; Flutter 및 React Native(tvOS Flutter는 지원되지 않음) - macOS 13+: arm64, x86_64; Flutter 및 React Native - Linux(glibc 2.28+): x86_64; Flutter 전용 - Windows 8+: x86_64; Flutter 및 React Native 번들 크기는 플랫폼과 등급에 따라 다릅니다(예: Android base 약 30-38MB, full 약 113-170MB; iOS base 약 50-55MB, full 약 112-147MB). GPL 라이선스 라이브러리에는 표시가 되어 있으며, 완화된 라이선스를 원하면 LGPL 번들이 권장됩니다. 이 플러그인은 pub.dev(ffmpeg_kit_extended_flutter)와 npm(ffmpeg-kit-extended)에 게시되어 있습니다.