
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.mp4ffprobe 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 HandlerMeskipun 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.mp3ffprobe 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.18Dari 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.mp4Dapat 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.mp4Penjelasan perintah diatas adalah:
-i video.mp4 -i audio.mp3Inputan file video dan audio yang digunakan-c:v copyCodec yang digunakan pada video adalah “copy” artinya tidak ada proses encoding tetapi hanya menyalin frame. Sehingga kualitas gambar tidak berkurang.-c:a aacCodec audio yang digunakan adalah AAC. Proses encoding dari MP3 ke AAC dilakukan untuk file audio.-b:a 128kBitrate yang digunakan untuk audio yaitu 128 kb/s diturunkan aslinya yaitu 256 kb/s.-map 0:v:0Pada inputan pertama yang diambil adalah video saja yaitu index ke 0.-map 1:a:0Pada inputan kedua yang diambil adalah audio saja yaitu index ke 0.-shortestDurasi yang dijadikan patokan adalah terpendek. Dalam hal ini adalah video karena 10 detik. Sedangkan audio berdurasi 1:36.output.mp4adalah 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 : SoundHandlerDapat 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.
