सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।
फ्लटर के लिए FFmpeg किट पूर्ण जीपीएल-संगत एफएफमेव बाइंडिंग प्रदान करता है, जिसमें अपडेटेड कार्यक्षमता होती है, जो एंड्रॉइड, आईओएस और मैकओएस पर शक्तिशाली वीडियो और ऑडियो प्रोसेसिंग की अनुमति देता है। यह डेवलपर्स को फ्लटर ऐप्स में एफएफमेव कमांड्स को सीधे निष्पादित करने की अनुमति देता है, जिसमें फॉर्मेट कनवर्जन, ट्रिमिंग, मर्जिंग और स्ट्रीमिंग जैसे कार्य शामिल हैं। यह पैकेज सक्रिय रूप से बनाए रखा जाता है और फ्लटर के पारिस्थितिकी तंत्र के साथ बिना किसी बाधा के एकीकृत होता है। इसका विश्वसनीय क्रॉस-प्लेटफॉर्म समर्थन उन बहुमाध्यम एप्लिकेशन के लिए आदर्श है जिन्हें उन्नत मीडिया मैनिपुलेशन की आवश्यकता होती है।
उपयोग
वीडियो फॉर्मेट कन्वर्जन
ऑडियो निकालना और संपादित करना
वीडियो ट्रिमिंग और मर्जिंग
लाइव स्ट्रीम प्रोसेसिंग
मीडिया फ़ाइल विश्लेषण
मुख्य विशेषताएँ
पूर्ण FFmpeg कमांड समर्थन
क्रॉस-प्लेटफॉर्म संगतता (Android, iOS, macOS)
अद्यतन बाइंडिंग के साथ GPL सुसंगतता
कुशल मीडिया प्रसंस्करण
निर्मित प्रगति और त्रुटि कॉलबैक
इनके लिए उपयुक्त
मल्टीमीडिया ऐप्स
वीडियो संपादन टूल्स
स्ट्रीमिंग एप्लिकेशन्स
मीडिया कन्वर्टर्स
सामग्री प्रबंधन प्रणाली
विचार योग्य बातें
FFmpeg बाइनरी के कारण बड़ा एप्प साइज
FFmpeg CLI की समझ की आवश्यकता है
GPL के साथ संभावित लाइसेंस समस्याएँ
प्रदर्शन उपकरण हार्डवेयर पर निर्भर करता है
जटिल संचालन को अनुकूलन की आवश्यकता हो सकती है
मूल README
संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।
🎬 FFmpegKit for Flutter — Full-GPL
Run FFmpeg & FFprobe on Android, iOS, macOS, Windows and Linux from a single Dart API.
A maintained fork of the original FFmpegKit, updated for the Android V2 embedding and Flutter 3+.
✨ Features
🧰 Full toolkit — both FFmpeg and FFprobe, with per-session logs, statistics and callbacks.
📱 Five platforms — Android, iOS, macOS, Windows (x86_64), and Linux (x86_64) behind one API.
🎞️ FFmpeg v8.1.2 with VideoToolbox hardware acceleration on iOS & macOS.
🗂️ Android SAF — process Storage Access Framework URIs directly.
There are eightffmpeg-kit packages — pick the smallest one that covers the codecs and features you need. GPL-licensed codecs (x264, x265, xvidcore, vid.stab) are only in the -gpl packages.
Windows: prebuilt FFmpeg 8.1.2 libraries (x86_64) are downloaded automatically at build time. For local development against a self-built bundle, set FFMPEGKIT_LOCAL_DIR (env or CMake cache variable) to the bundle directory before flutter run/build windows.
Linux: prebuilt FFmpeg 8.1.2 libraries (x86_64) are downloaded automatically at build time, exactly as on Windows; FFMPEGKIT_LOCAL_DIR works the same way. In addition to Flutter's standard Linux prerequisites (clang, cmake, ninja-build, pkg-config, libgtk-3-dev), the plugin needs libjson-glib-dev:
FFmpegKit.execute('-i file1.mp4 -c:v mpeg4 file2.mp4').then((session) async {
final sessionId = session.getSessionId();
final command = session.getCommand();
final state = await session.getState();
final returnCode = await session.getReturnCode();
final duration = await session.getDuration();
final output = await session.getOutput();
final logs = await session.getLogs();
final statistics = await (session asFFmpegSession).getStatistics();
});
Async execution with callbacks
FFmpegKit.executeAsync('-i file1.mp4 -c:v mpeg4 file2.mp4', (Session session) async {
// CALLED WHEN SESSION IS EXECUTED
}, (Log log) {
// CALLED WHEN SESSION PRINTS LOGS
}, (Statistics statistics) {
// CALLED WHEN SESSION GENERATES STATISTICS
});
FFprobe & media information
FFprobeKit.getMediaInformation('<file path or url>').then((session) async {
final information = await session.getMediaInformation();
});
Cancel sessions
FFmpegKit.cancel(); // stop all sessionsFFmpegKit.cancel(sessionId); // stop a specific session
Android — Storage Access Framework (SAF)
// Reading a fileFFmpegKitConfig.selectDocumentForRead('*/*').then((uri) {
FFmpegKitConfig.getSafParameterForRead(uri!).then((safUrl) {
FFmpegKit.executeAsync("-i ${safUrl!} -c:v mpeg4 file2.mp4");
});
});
// Writing to a fileFFmpegKitConfig.selectDocumentForWrite('video.mp4', 'video/*').then((uri) {
FFmpegKitConfig.getSafParameterForWrite(uri!).then((safUrl) {
FFmpegKit.executeAsync("-i file1.mp4 -c:v mpeg4 ${safUrl}");
});
});
Global callbacks & fonts
FFmpegKitConfig.enableLogCallback((log) { final message = log.getMessage(); });
FFmpegKitConfig.enableStatisticsCallback((statistics) { final size = statistics.getSize(); });
FFmpegKitConfig.setFontDirectoryList(["/system/fonts", "/System/Library/Fonts", "<folder with fonts>"]);
📄 License
Licensed under LGPL 3.0 by default. This package additionally includes GPL v3.0-licensed components (x264, x265, xvidcore, vid.stab) and is therefore effectively GPL v3.0.