Giới thiệu Thư viện MobileFFmpeg cho Android

1. MobileFFmpeg là gì ?
MobileFFmpeg là một thư viện mạnh mẽ và linh hoạt được sử dụng trong phát triển ứng dụng di động Android
2. FFmpeg dùng để làm gì?
Mã hóa video sang các định dạng khác nhau, cắt và nối video, thay đổi độ phân giải, thêm hiệu ứng và rất nhiều tác vụ xử lý khác.
tuỳ chỉnh các tham số xử lý như bitrate, tỷ lệ khung hình, chất lượng âm thanh vv…
3. Cách sử dụng FFmpeg cho android?
*Add MobileFFmpeg dependency to your build.gradle
dependencies {
implementation ‘com.arthenica:mobile-ffmpeg-full:4.4’
}
*Vd:
int rc = FFmpeg.execute(“-i file1.mp4 -c:v mpeg4 file2.mp4”);
if (rc == RETURN_CODE_SUCCESS) {
Log.i(Config.TAG, “Command execution completed successfully.”);
} else if (rc == RETURN_CODE_CANCEL) {
Log.i(Config.TAG, “Command execution cancelled by user.”);
} else {
Log.i(Config.TAG, String.format(“Command execution failed with rc=%d and the output below.”, rc));
Config.printLastCommandOutput(Log.INFO);
}

• -i file1.mp4: Đây là tùy chọn -i được sử dụng để chỉ định đường dẫn và tên file đầu vào. Trong trường hợp này, file đầu vào được đặt tên là “file1.mp4”. FFmpeg sẽ sử dụng file này như là nguồn dữ liệu để thực hiện các tác vụ xử lý tiếp theo.
• -c:v mpeg4: Đây là tùy chọn -c:v để chỉ định mã hóa video. Trong trường hợp này, mã hóa video được đặt là “mpeg4”. Điều này cho biết FFmpeg sẽ sử dụng mã hóa MPEG-4 để nén video trong quá trình xử lý.
• file2.mp4: Đây là đường dẫn và tên file đầu ra. Trong ví dụ này, file đầu ra được đặt tên là “file2.mp4”. FFmpeg sẽ tạo ra một file mới có tên này sau khi xử lý video.
* Dưới đây là một số tùy chọn thông dụng trong lệnh FFmpeg:

• -i : Chỉ định đường dẫn và tên file đầu vào.
• -c:v : Chỉ định mã hóa video. Ví dụ: libx264 (H.264), mpeg4, vp9, hevc (H.265).
• -c:a : Chỉ định mã hóa âm thanh. Ví dụ: aac, mp3, opus.
• -s : Chỉ định độ phân giải video. Ví dụ: 1920×1080, 1280×720.
• -r : Chỉ định tỷ lệ khung hình (fps) của video.
• -ss : Chỉ định thời gian bắt đầu từ đầu vào. Ví dụ: “00:01:30” (1 phút 30 giây).
• -t : Chỉ định thời lượng (duration) của video hoặc âm thanh. Ví dụ: “10” (10 giây).
• -b:v : Chỉ định bitrate (tốc độ bit) của video.
• -b:a : Chỉ định bitrate của âm thanh.
• -vf : Áp dụng bộ lọc video. Ví dụ: scale=640:480, crop=480:320
• -af : Áp dụng bộ lọc âm thanh. Ví dụ: volume=2.0, silencedetect.
• -format : Chỉ định định dạng file đầu ra. Ví dụ: mp4, avi, mkv.
• -map : Chỉ định stream (luồng) cụ thể để xử lý trong file đầu vào. Ví dụ: 0:v (video), 1:a (audio).
• -preset : Chỉ định preset (cài đặt trước) cho mã hóa. Ví dụ: ultrafast, medium, slow.
• -crf : Chỉ định Constant Rate Factor (CRF) cho chất lượng video. Giá trị thường nằm trong khoảng từ 18 đến 28.