Berbagi teknologi

Gunakan FFmpeg untuk merekam video kamera di Android dan menyimpannya ke file MP4 lokal

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Dalam pengembangan aplikasi seluler, terkadang Anda perlu menggunakan kamera perangkat untuk merekam video, dan Anda ingin dapat mengontrol kualitas, format, dan durasi video secara akurat selama proses perekaman. Sebagai alat pemrosesan multimedia yang kuat, FFmpeg menyediakan berbagai fungsi dan opsi untuk membantu kami mencapai kebutuhan tersebut.

Tambahkan dependensi

Di platform Android, Anda dapat menggunakan com.arthenica:mobile-ffmpeg-full perpustakaan untuk mencapai tujuan ini.

implementation 'com.arthenica:mobile-ffmpeg-full:4.4'
  • 1

Alamat Gudang:https://github.com/tanersener/mobile-ffmpeg

Untuk mengetahui kegunaan ffmpeg lainnya, lihat contoh dokumen alamat di atas

Perintah untuk merekam video menggunakan FFmpeg

FFmpeg.execute("-f android_camera -video_size 1280x720 -i 0:0 -r 25 -b:v 1.5M -pixel_format yuv420p -t 00:01:00 /sdcard/recorded_video.mp4");
  • 1

Arti dan fungsi parameter:

  • -f android_camera: Menentukan format input sebagai android_camera, memberitahu FFmpeg untuk mendapatkan streaming video dari kamera perangkat Android.

  • -video_size 1280x720 : Mengatur resolusi masukan video ke 1280x720 piksel. Hal ini tergantung pada resolusi yang didukung oleh kamera Anda, sesuai kebutuhan.

  • -i 0:0 : Tentukan file atau perangkat input. Di sini, 0:0 berarti FFmpeg akan mengambil input video dari kamera bawaan sistem Android. 0 mewakili nomor perangkat (biasanya kamera), 0 mewakili indeks aliran input (biasanya aliran video).

  • -r 25 : Mengatur kecepatan bingkai video keluaran ke 25 bingkai per detik (fps). Menentukan berapa banyak frame yang ditampilkan video per detik.

  • -b:v 1.5M : Mengatur bitrate video menjadi 1,5 Mbps (1,5 megabit per detik). Bitrate menentukan kualitas dan ukuran file video, dengan bitrate yang lebih tinggi biasanya berarti kualitas video yang lebih tinggi dan ukuran file yang lebih besar.

  • -pixel_format yuv420p : Atur format piksel ke YUV420P. YUV420P adalah format piksel yang banyak digunakan untuk pengkodean dan transmisi video, di mana Y mewakili komponen luminansi (Luma) dan U dan V mewakili komponen chrominance (Chroma).

  • -t 00:01:00 :Atur durasi rekaman video menjadi 1 menit (00:01:00). FFmpeg akan berhenti merekam setelah waktu yang ditentukan.

  • /sdcard/recorded_video.mp4 : Tentukan jalur dan nama file dari file keluaran. Di sini, video akan disimpan sebagai file berformat MP4, dan pathnya adalah /sdcard/recorded_video.mp4. Tulis saja jalur sebenarnya sesuai kebutuhan Anda, pastikan Anda memiliki izin untuk membaca dan menulis.

Melihat

Jangan mengubah urutan parameter di FFmpeg sesuka hati, jika tidak, pengaturan parameter tidak valid dan parameter default akan digunakan, seperti -video_size 1280x720 Jika ditempatkan-i 0:0Kalau nanti tidak akan berhasil, jadi ingat!

-t 00:01:00 Ini merekam selama satu menit dan berakhir secara otomatis ketika waktunya habis. Tentu saja, jika Anda ingin terus merekam, hapus saja parameter ini dan panggil ketika Anda ingin mengakhirinya.FFmpeg.cancelItu dia

-b:v 1.5M Itu dapat dikonfigurasi secara fleksibel sesuai kebutuhan.Semuanya tergantung pada kondisi sebenarnya.Semakin besar nilainya, semakin besar pula videonya.

🆗,就这些雷,我替大家踩了,下班。