Mengenal FFMPEG Library Multimedia – FFmpeg, kependekan dari Fast-forward MPEG, adalah kerangka kerja multimedia sumber terbuka dan gratis, yang mampu mendekode, menyandikan, mentranskode, mux, demux, streaming, memfilter, dan memutar hampir semua jenis file multimedia yang telah dibuat hingga saat ini.
FFMPEG juga mendukung beberapa format lama. FMMPEG ditulis menggunakan bahasa C/C++ sehingga dapat dikompilasi dan dijalankan di berbagai sistem operasi seperti Linux, Mac OS X, Microsoft Windows, BSD, Solaris, dll.
Bila di Computer Vision yang kita kenal ada OpenCV, untuk Audio menggunakan Audacity, maka dalam urusan multimedia kita akan mengenal FFMPEG yang mempunyai fitur seperti Kompres Video, Kompres Audio, Pangkas Video, Putar Video, Pangkas Video, Menambahkan filter ke video, Membalikkan Video, Membuat video gerak cepat dan lambat, Fade in fade out, Gabung audio dan video, Membuat video dari gambar, Mengonversi video dari satu format ke format lain, Mengekstrak Gambar dari Video atau Suara dari Video, frame Gif, dan banyak lagi.
Hal menarik adari FFMPEG yaitu banyak digunakan dalam framework ratusan proyek perangkat lunak terkait media lainnya, dan sering digunakan di belakang layar. Juga, Ini adalah bagian internal dari perangkat lunak seperti pemutar media VLC, YouTube, Plex, iTunes, Pintasan, Blender, Kodi, HandBrake, menangani pemutaran video dan audio di Google Chrome, dan Firefox versi Linux.
Perpustakaan FFmpeg
Contents
FFMPEG dibangun dari beberapa library utama yaitu
- libavutil adalah perpustakaan utilitas untuk membantu pemrograman media serbaguna. Seperti kalkulasi matematika terdiri dari generator angka arbitrer, kapasitas aritmatika ekstra, struktur data, kriptografi, dan utilitas multimedia inti.
- libavcodec adalah perpustakaan yang menyediakan encoder dan decoder untuk codec video/audio, streaming subtitle, dan beberapa saluran bitstream.
- libavformat adalah perpustakaan yang menyediakan kerangka kerja multiplexing dan demultiplexing untuk codec video/audio, aliran subtitle
- libavdevice adalah perpustakaan yang berisi perangkat I/O untuk mendapatkan dari dan mengirim ke berbagai sistem pemrograman I/O multimedia, termasuk Video4Linux, ALSA, dan VfW.
- libavfilter menyediakan kerangka kerja pemfilteran media yang berisi beberapa filter dan sink.
- libswscale melakukan tugas penskalaan gambar dan transformasi format piksel yang sangat ditingkatkan.
- libswresample adalah pustaka yang berkinerja sangat optimal tetapi seperti mengubah bit rate, perubahan tata letak saluran, misalnya dari stereo ke mono, dan operasi konversi format sampel.
Mengenal FFMPEG Library Multimedia yang perlu kalian tahu yaitu
Remuxing
Remuxing adalah proses lossless yang digunakan untuk mengubah format wadah dari file yang diberikan (misalnya mp4 ke avi atau sebaliknya).
Transcoding
Transcoding adalah proses mengonversi file dari satu format pengkodean ke format pengkodean lainnya sehingga konten dapat dilihat pada perangkat pemutaran yang berbeda.
Transrating
Transrating adalah proses di mana file video dan file audio dikonversi ke bit rate yang dikurangi dengan tetap mempertahankan format media aslinya.
Transizing
Transsizing mengacu pada mengubah ukuran gambar video, dan berguna jika resolusi output berbeda dari resolusi media.
Tergantung pada persyaratan, seseorang dapat memilih remuxing atau transcoding.
Sebagai contoh:
Untuk mengonversi satu format ke format lain — Remuxing
Untuk memotong video atau memutar streaming langsung — Transcoding
Untuk mengurangi kecepatan bit — Transrating
Untuk mengubah resolusi — Transizing
Cara menggunakan FFMPEG
FFMPEG dibuat dalam versi console based. library FFMPEG tersedia di banyak OS karena sifatnya yang opensource, kalian bisa download di https://www.ffmpeg.org/download.html#build-windows atau langsung saja bagi pengguna windows 64 bit https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n4.4-latest-win64-gpl-4.4.zip
Setelah kalian download maka lakukan saja extract ke C:\ffmpeg-n4.4-latest-win64-gpl-4.4\bin dan lakukan setting path Set Path di Windows . Buka command prompt dan ketikanffmpeg
untuk mencoba apakah sudah dikenali oleh system?
ffmpeg version n4.4.2-3-gd4b7b3c03e-20220907 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --disable-vulkan --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220907 libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
Convert *.webm ke *.mp3
Misalkan saja, kita punya file *.webm yang akan di konversi ke *.mp3, maka perintah yang digunakan untuk convert yaitu
ffmpeg -i file.webm file.mp3
outputnya yaitu
Input #0, matroska,webm, from 'file.webm': Metadata: encoder : google/video-file Duration: 00:08:56.14, start: -0.007000, bitrate: 136 kb/s Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default) File 'file.mp3' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame)) Press [q] to stop, [?] for help Output #0, mp3, to 'file.mp3': Metadata: TSSE : Lavf58.76.100 Stream #0:0(eng): Audio: mp3, 48000 Hz, stereo, fltp (default) Metadata: encoder : Lavc58.134.100 libmp3lame size= 3840kB time=00:04:06.96 bitrate= 127.4kbits/s speed=41.1x
Untuk memastikan convert nya berhasil atau tidak, play saja file tersebut pakai VLC atau media player yang lainnya. Bila ingin overwrite file yang sudah ada, ketikan saja -y
ffmpeg -y -i file.webm file.mp3
Implementasi penggunaan Mengenal FFMPEG Library Multimedia bisa kalian baca Converter Youtube ke Mp3 tanpa iklan
Berikut tampilkan di Mac OS