TeknoCerdas.com – Salam cerdas untuk kita semua. Seperti pada judul, tulisan ini adalah tutorial bagaimana menambahkan atau mixing file audio ke dalam file video menggunakan tools open soure populer yaitu FFmpeg.
Tulisan ini tidak membahas cara instalasi FFmpeg dan mengasumsikan bahwa FFmpeg sudah terinstal di komputer anda.
Daftar Isi
Mendownload File Video
File video yang digunakan adalah video berformat MP4 berdurasi 10 detik dan berukuran 3.3MB. Video diambil dari website Pixabay. Link dari video adalah sebagai berikut.
https://pixabay.com/videos/fishing-fish-fisherman-water-44534/
Kunjungi alamat URL diatas kemudian download file video yang dimaksud pada satu direktori atau folder. Simpan video tersebut dengan nama video.mp4
.
Cek informasi dari video menggunakan ffprobe
.
$ ffprobe video.mp4
ffprobe version 3.3.2 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
[...CUT...]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41isomavc1
creation_time : 2020-07-17T21:05:22.000000Z
Duration: 00:00:09.86, start: 0.000000, bitrate: 2795 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 2539 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc (default)
Metadata:
creation_time : 2020-07-17T21:05:22.000000Z
handler_name : L-SMASH Video Handler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 253 kb/s (default)
Metadata:
creation_time : 2020-07-17T21:05:22.000000Z
handler_name : L-SMASH Audio Handler
Meskipun file video diatas tidak memiliki suara namun dapat dilihat jika terdapat stream audio #0:1 pada file. Audio ini akan kita buang dan kita ganti dengan audio baru.
Mendownload File Audio
File audio yang digunakan adalah audio berformat MP3 berdurasi 1 menit 36 detik dan berukuran 2.9MB. Audio diambil dari website mixkit.co. Berikut adalah URL dari audio yang digunakan.
https://mixkit.co/free-stock-music/tag/ukulele/
Judul lagu: Summer’s Here by Ahjay Stelino
Donwload file audio tersebut kemudian letakkan satu direktori bersama dengan file video yang telah didownload sebelumnya. Simpan file audio tersebut dengan nama audio.mp3
.
Cek informasi dari file audio dengan perintah `ffprobe`.
$ ffprobe audio.mp3
ffprobe version 3.3.2 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
[...CUT...]
Input #0, mp3, from 'audio.mp3':
Metadata:
encoded_by : Pro Tools
originator_reference: laak!dGtQVhaaaGk
date : 2019-02-1
time_reference : 158826150
encoder : Lavf58.12.100
Duration: 00:01:36.13, start: 0.025057, bitrate: 256 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 256 kb/s
Metadata:
encoder : Lavc58.18
Dari informasi diatas dapat dilihat jika bitrate dari file mp3 tersebut adalah 256 kb/s. Bitrate ini nanti akan kita turunkan menjadi 128 kb/s pada video akhir.
Menambahkan Audio pada File Video
Cara menambahkan atau menggabungkan audio ke file video dengan FFmpeg cukup mudah. Sekarang pastikan kedua file video dan audio ada direktori yang sama.
$ ls -l
-rw-r--r--@ 1 rioastamal staff 2.9M Oct 1 01:55 sound.mp3
-rw-r--r--@ 1 rioastamal staff 3.3M Oct 1 00:48 video.mp4
Dapat dilihat jika ada dua file yaitu video.mp4
dan sound.mp3
. Perintah untuk menggabungkan audio ke video adalah sebagai berikut.
$ ffmpeg -i video.mp4 -i audio.mp3 \
-c:v copy -c:a aac -b:a 128k \
-map 0:v:0 -map 1:a:0 -shortest output.mp4
Penjelasan perintah diatas adalah:
-i video.mp4 -i audio.mp3
Inputan file video dan audio yang digunakan-c:v copy
Codec yang digunakan pada video adalah “copy” artinya tidak ada proses encoding tetapi hanya menyalin frame. Sehingga kualitas gambar tidak berkurang.-c:a aac
Codec audio yang digunakan adalah AAC. Proses encoding dari MP3 ke AAC dilakukan untuk file audio.-b:a 128k
Bitrate yang digunakan untuk audio yaitu 128 kb/s diturunkan aslinya yaitu 256 kb/s.-map 0:v:0
Pada inputan pertama yang diambil adalah video saja yaitu index ke 0.-map 1:a:0
Pada inputan kedua yang diambil adalah audio saja yaitu index ke 0.-shortest
Durasi yang dijadikan patokan adalah terpendek. Dalam hal ini adalah video karena 10 detik. Sedangkan audio berdurasi 1:36.output.mp4
adalah nama file output hasil mixing audio dan video dari ffmpeg.
Berikut ini adalah output dari mixing file audio dan video menggunakan FFmpeg.
Untuk melihat detail informasi dari file output.mp4
dapat digunakan perintah ffprobe
.
$ ffprobe output.mp4
[...CUT...]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.71.100
Duration: 00:00:09.84, start: 0.000000, bitrate: 2674 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 2539 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
handler_name : SoundHandler
Dapat dilihat Stream 0:0 yaitu video adalah sama dengan versi originalnya. Pada audio yaitu Stream 0:1 sudah berubah yang awalnya adalah audio kosong. Kemudian diganti dengan sound dari audio.mp3 dengan bitrate yang diturunkan menjadi 128 kb/s.