Brief:Panduan terperinci ini menunjukkan cara menginstal ffmpeg di Ubuntu dan distribusi Linux lainnya. Ini juga menunjukkan beberapa perintah ffmpeg yang berguna untuk penggunaan praktis.
ffmpeg adalah utilitas CLI (berbasis baris perintah) untuk memproses file media. Ini adalah kerangka kerja dengan banyak fitur dan, karena lisensi sumber terbuka, ini adalah dasar untuk banyak aplikasi yang tersebar luas seperti VLC, YouTube, iTunes, dan banyak lagi. Sejumlah editor video Linux menggunakan ffmpeg di bawah GUI.
Yang lebih saya sukai dari ffmpeg adalah dapat digunakan sendiri untuk menyelesaikan banyak tugas pemrosesan dengan cara yang sangat sederhana (dengan satu atau dua perintah). Namun, ini adalah program yang sangat kuat yang dapat digunakan dengan cara yang lebih kompleks dan bahkan menggantikan alur kerja pengeditan.
Dalam tutorial ffmpeg ini, saya akan menunjukkan cara menginstal ffmpeg dan saya akan membahas kegunaannya yang berbeda. Saya bahkan akan membahas beberapa fitur yang lebih kompleks.
Berikut adalah bagian dari panduan ini:
- Menginstal ffmpeg
- Penggunaan Dasar ffmpeg
- Penggunaan ffmpeg Tingkat Lanjut
- Dasar-dasar filter
Saya akan menjelaskan semuanya secara mendetail sehingga Anda dapat memahami apa yang sedang terjadi bahkan jika Anda baru mengenal dunia Linux.
Saya akan menggunakan Ubuntu 18.04 , tetapi perintah ini juga dapat digunakan untuk distribusi lain.
Catatan: Meskipun saya telah meneliti ffmpeg secara menyeluruh dan menguji semua yang akan saya sebutkan di artikel ini, saya tidak mengedit video (atau media lain) setiap hari. Jika Anda memiliki saran, kiat, atau koreksi, beri tahu saya di komentar!
Ayo lakukan!
Menginstal ffmpeg di Ubuntu &Linux lainnya
Memasang ffmpeg adalah proses langsung. Ini adalah aplikasi populer dan tersedia di sebagian besar distribusi Linux melalui pengelola paket.
Instal ffmpeg di Ubuntu
Di Ubuntu, ffmpeg tersedia di repositori Universe jadi pastikan untuk mengaktifkan repositori universe. dan kemudian perbarui daftar paket dan instal ffmpeg. Anda dapat melakukan semua ini menggunakan perintah di bawah ini di terminal:
sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg
Itu harusnya! Anda dapat memverifikasi pemasangan hanya dengan mengetik:
ffmpeg
Ini akan menampilkan beberapa teks yang menjelaskan ffmpeg your Anda konfigurasi (termasuk versi ).
Seperti yang Anda lihat dari tangkapan layar di atas, versi terpasang adalah 3.4.4 . Namun, versi terbaru dari ffmpeg saat penulisan artikel ini 4.1 . Untuk memasang 4.x . apa pun versi, Anda harus menggunakan ffmpeg ppa . Klik untuk memperluas bagian berikutnya untuk melihat detail pemasangan ffmpeg melalui PPA.
Instal ffmpeeg terbaru di distro berbasis Ubuntu dengan PPA
Ada PPA tidak resmi yang dapat Anda gunakan untuk menginstal rilis ffmpeg terbaru. Cukup gunakan perintah ini:
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg -y
Instal ffmpeg di distribusi berbasis Arch
Untuk menginstal ffmpeg di distribusi berbasis Arch, gunakan perintah berikut:
sudo pacman -S ffmpeg
Instal ffmpeg di distribusi berbasis Fedora
Untuk menginstal ffmpeg di distribusi Linux berbasis Fedora, Anda dapat menggunakan perintah ini:
sudo dnf install ffmpeg
Cara menggunakan ffmpeg:Dasar-dasar
Dengan ffmpeg diinstal, saya akan membahas perintah dasar untuk membantu Anda mulai menggunakan alat canggih ini.
0. Perintah ffmpeg
Bentuk dasar perintah ffmpeg adalah:
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
Anda harus ingat bahwa semua opsi file hanya berlaku untuk file yang mengikutinya (Anda harus menulisnya lagi untuk file berikutnya).
File apa pun yang tidak didahului oleh -i dianggap sebagai file keluaran. Ffmpeg menggunakan input dan output sebanyak yang Anda berikan. Anda juga dapat menggunakan nama yang sama untuk file input dan output, tetapi Anda harus menambahkan -y tag sebelum nama file keluaran.
Catatan
Anda tidak boleh mencampur masukan dan keluaran; tentukan file input terlebih dahulu, lalu tentukan file output.
1. Dapatkan informasi file media
Penggunaan pertama ffmpeg adalah menampilkan informasi tentang file media. Ini dapat dilakukan dengan tidak memasukkan file output apa pun. Cukup ketik:
ffmpeg -i file_name
Ini berfungsi untuk file audio dan video:
ffmpeg -i video_file.mp4
ffmpeg -i audio_file.mp3
Meskipun berguna, perintah ini akan menampilkan terlalu banyak informasi yang tidak relevan dengan file Anda (informasi tentang ffmpeg). Untuk menghilangkannya, tambahkan -hide_banner bendera:
ffmpeg -i video_file.mp4 -hide_banner
ffmpeg -i audio_file.mp3 -hide_banner
Seperti yang Anda lihat, perintah sekarang hanya menampilkan detail mengenai file media yang Anda tentukan (encoder, stream, dll.).
2. Konversi File Media
Cara lain yang sangat berguna untuk menggunakan ffmpeg adalah untuk konversi yang tidak merepotkan antara format media yang berbeda. Anda hanya perlu menentukan file input dan output, karena ffmpeg akan mendapatkan format yang diperlukan dari ekstensi file. Ini berfungsi untuk konversi video-ke-video dan audio-ke-audio.
Berikut beberapa contohnya:
ffmpeg -i video_input.mp4 video_output.avi
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac
Anda bahkan dapat menentukan lebih banyak file keluaran:
ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg
Ini akan mengonversi file input ke semua format yang ditentukan.
Untuk melihat daftar semua format yang didukung, gunakan:
ffmpeg -formats
Sekali lagi, Anda dapat menambahkan -hide_banner untuk menghilangkan informasi tentang aplikasi.
Anda dapat menentukan -qscale 0 parameter sebelum file output untuk menjaga kualitas file video:
ffmpeg -i video_input.wav -qscale 0 video_output.mp4
Selain itu, Anda dapat menentukan codec yang ingin Anda gunakan, tambahkan -c:a (untuk audio ) dan -c:v (untuk video ) diikuti dengan nama codec, atau salin jika Anda ingin menggunakan codec yang sama dengan file aslinya:
ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi
Catatan: ini mungkin membuat ekstensi file agak menipu, jadi berhati-hatilah.
3. Ekstrak Audio dari Video
Untuk mengekstrak audio dari file video, Anda melakukan konversi sederhana dan menambahkan -vn bendera:
ffmpeg -i video.mp4 -vn audio.mp3
Perhatikan bahwa perintah ini akan menggunakan kecepatan bit dari file aslinya. Sebaiknya atur sendiri; Anda dapat menggunakan -ab (kecepatan bit audio):
ffmpeg -i video.mp4 -vn -ab 128k audio.mp3
Beberapa kecepatan bit umum adalah 96k, 128k, 192k, 256k, 320k (bitrate tertinggi yang didukung oleh mp3).
Opsi umum lainnya adalah -ar (frekuensi audio :22050, 441000, 48000), -ac (jumlah saluran audio ), -f (format audio , meskipun biasanya secara otomatis terdeteksi). -ab bisa juga diganti dengan -b:a . Misalnya:
ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3
4. Bisukan Audio dalam Video
Mirip dengan tugas terakhir, untuk mencapai ini, kami akan menambahkan tag sederhana:-an (bukan -vn ).
ffmpeg -i video_input.mp4 -an -video_output.mp4
Catatan: The -an tag akan membuat semua opsi audio untuk file keluaran itu tidak berguna, karena tidak akan ada audio dalam hasil operasi.
5. Ekstrak Gambar dari Video
Ini mungkin berguna bagi banyak orang. Misalnya, Anda mungkin memiliki serangkaian gambar (misalnya tayangan slide) dan Anda ingin mendapatkan semua gambar dari itu. Cukup masukkan:
ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png
Mari kita uraikan sejenak.
-r menentukan kecepatan bingkai (berapa banyak bingkai yang diekstraksi menjadi gambar dalam satu detik, default :25), -f menentukan format keluaran (image2 sebenarnya singkatan dari image2 sequence.
Parameter terakhir (file keluaran) memiliki penamaan yang agak menarik:ia menggunakan %3d pada akhirnya. Ini hanya memberi nomor pada gambar Anda dengan 3 digit (000, 001, dll.). Anda juga dapat menggunakan %2d (format 2 digit) atau bahkan %4d (format 4 digit) jika Anda mau. Jangan ragu untuk bereksperimen dan menggunakan apa pun yang cocok untuk Anda!
Catatan: Ada juga cara untuk mengubah sekumpulan gambar menjadi video/slideshow. Saya akan membahasnya di Penggunaan Lanjutan bagian .
6. Ubah Resolusi Video atau Rasio Aspek
Tugas sederhana lainnya untuk ffmpeg . Yang harus Anda lakukan untuk mengubah ukuran video ditentukan resolusi baru setelah -s bendera:
ffmpeg -i video_input.mov -s 1024x576 video_output.mp4
Selain itu, Anda mungkin ingin menentukan -c:a untuk memastikan codec audio dari file keluaran adalah yang benar:
ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov
Anda juga dapat mengubah rasio aspek menggunakan -aspek :
ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4
Catatan: Sekali lagi, metode lain yang sedikit lebih kuat akan disebutkan di Penggunaan Lanjutan bagian.
7. Tambahkan Gambar Poster ke Audio
Ini adalah cara yang bagus untuk mengubah audio menjadi video , menggunakan satu foto (seperti sampul album) untuk audio. Ini adalah fitur yang sangat berguna ketika Anda ingin mengunggah file audio ke situs yang tidak mengizinkan apa pun selain video/gambar (YouTube dan Facebook adalah dua contoh situs tersebut).
Ini contohnya:
ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
Cukup ubah codec (-c:v menentukan video codec, -c:a menentukan audio codec) dan nama file Anda.
Catatan: Anda tidak harus menggunakan -eksperimen ketat jika Anda menggunakan versi yang lebih baru (4.x ).
8. Tambahkan Subtitel ke Video
Sama-sama berguna dan mudah dilakukan dengan ffmpeg adalah menambahkan subtitel ke video (misalnya film). Masukkan berikut ini:
ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4
Tentu saja, Anda dapat menentukan codec apa pun yang Anda inginkan (dan opsi tambahan lainnya yang terkait dengan audio/video). Anda dapat membaca artikel ini tentang mengedit subtitle di Linux, secara grafis.
9. Kompres File Media
Mengompresi file sangat mengurangi ukuran file, menghemat banyak ruang. Ini bisa menjadi penting untuk mentransfer file. Dengan ffmpeg , ada beberapa metode untuk mengurangi ukuran file.
Catatan: Mengompresi file terlalu banyak akan mengurangi kualitas file yang dihasilkan.
Pertama-tama, untuk audio file, cukup kurangi kecepatan bit (menggunakan -b:a atau -ab ):
ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3 ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3
Sekali lagi, beberapa nilai bit rate yang berbeda adalah:96k, 112k, 128k, 160k, 192k, 256k, 320k. Semakin tinggi kecepatan bit, semakin tinggi ukuran dan kualitas file.
Untuk video file, Anda memiliki lebih banyak pilihan. Salah satu caranya adalah dengan mengurangi kecepatan bit video (menggunakan -b:v ):
ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4
Catatan: Kecepatan bit video berbeda dari kecepatan bit audio (nilai yang jauh lebih tinggi).
Anda dapat mengatur -crf bendera (Faktor Tingkat Konstan ). crf . yang lebih rendah berarti bit rate yang lebih tinggi. Juga, menggunakan libx264 sebagai kodek video membantu. Berikut adalah pengurangan ukuran yang sangat efisien dengan pengurangan kualitas yang sangat kecil:
ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4
Sebuah crf dari 20 hingga 30 adalah hal biasa, tetapi jangan ragu untuk bermain-main dengan nilai tertentu.
Mengurangi kecepatan bingkai mungkin berhasil dalam beberapa kasus (walaupun mungkin sangat mudah membuat video terasa lamban):
ffmpeg -i video_input.mp4 -r 24 video_output.mp4
-r menentukan kecepatan bingkai (dalam hal ini 24 ).
Anda juga dapat mencoba mengurangi ukuran video (sudah dijelaskan caranya). Kiat tambahan adalah mengompres audio juga, menjadikannya stereo dan mengurangi kecepatan bit . Misalnya:
ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4
Catatan: -ketat -2 dan -ac 2 merawat bagian stereo. Saya sudah membahas bagian yang mengurangi kecepatan bit .
10. Potong File Media (Dasar)
Untuk memotong file dari awal Anda harus menentukan durasi menggunakan -t :
ffmpeg -i input_video.mp4 -t 5 output_video.mp4
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav
Seperti yang Anda lihat, ini berfungsi untuk video dan audio file. Kedua perintah di atas melakukan hal yang sama:simpan 5 detik pertama dari file input ke file output. Saya telah menggunakan cara yang berbeda untuk memasukkan durasi :satu angka (jumlah detik) dan HH:MM:SS (jam, menit, detik). Versi kedua bertindak lebih seperti waktu akhir .
Anda dapat melangkah lebih jauh dengan menentukan waktu mulai dengan -ss , dan bahkan waktu berakhir dengan -ke :
ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg
Anda dapat melihat waktu mulai (-ss HH:MM:SS ), durasi (-t durasi ) dalam hitungan detik, waktu berakhir (-ke HH:MM:SS ), dan waktu mulai (-s durasi ) dalam hitungan detik (dimulai setelah durasi detik).
Semua ini adalah perintah yang valid dan Anda dapat bekerja dengan bagian mana pun dari file media yang menggunakannya.
Cara menggunakan ffmpeg:Penggunaan Lanjutan
Sekarang saya akan membahas fitur yang sedikit lebih canggih (seperti casting layar, menggunakan perangkat, dll.). Langsung saja ke poin pertama!
1. Pisahkan File Media
Saya sudah membahas memotong file. Apa yang harus Anda lakukan untuk berpisah file menjadi beberapa bagian adalah untuk menentukan beberapa trim (menentukan waktu mulai , waktu berakhir atau durasi sebelum setiap file keluaran).
Perhatikan contoh ini:
ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4
Sintaksnya cukup sederhana. Saya menetapkan -t 00:00:30 sebagai durasi untuk bagian pertama (bagian pertama akan terdiri dari 30 detik pertama dari video asli). Selanjutnya, saya menetapkan bahwa saya ingin sisanya menjadi bagian dari video kedua (mulai dari akhir bagian terakhir, 00:00:30 ).
Ini dapat dilakukan untuk sebanyak mungkin bagian yang Anda inginkan! Bersenang-senang bermain dengan fitur ini, karena sangat kuat. Ingatlah bahwa ini juga berfungsi dengan audio.
2. Menggabungkan File Media
ffmpeg juga dapat melakukan proses sebaliknya:menyatukan beberapa bagian.
Untuk melakukannya, Anda harus membuat file teks baru dan mulai mengedit menggunakan editor pilihan Anda.
Karena saya suka menggunakan terminal, saya akan menggunakan sentuh dan vim . Tidak masalah apa yang Anda sebut file ini. Saya akan memanggil saya join.txt dan buat file menggunakan sentuh :
touch videos_to_join.txt
Sekarang, saya akan mengeditnya menggunakan vim :
vim videos_to_join.txt
Anda dapat menggunakan alat apa pun yang Anda inginkan (nano, gedit, dll.), inilah yang paling mudah saya gunakan.
Di sini, masukkan jalur lengkap ke semua file yang ingin Anda bergabung (mereka akan digabungkan dalam urutan yang Anda tulis di sini), satu per baris. Pastikan mereka memiliki ekstensi yang sama (mis. mp4 ). Ini punya saya:
/home/ubuntu/Desktop/video_1.mp4
/home/ubuntu/Desktop/video_2.mp4
/home/ubuntu/Desktop/video_3.mp4
Simpan file yang baru saja Anda edit. Metode ini berfungsi untuk file audio atau video apa pun.
Sekarang masukkan berikut ini:
ffmpeg -f concat -i join.txt output.mp4
Catatan: File keluaran saya adalah output.mp4 , tapi itu karena semua file masukan saya memiliki mp4 ekstensi.
Ini harus bergabung semua file yang Anda tulis di join.txt (atau bagaimanapun Anda menamai file itu) menjadi satu file keluaran tunggal.
3. Gabungkan Gambar menjadi Video
Ini adalah bagaimana Anda dapat menyusun slideshow atau sejenisnya. Saya akan menunjukkan cara menambahkan audio juga.
Hal pertama yang saya sarankan lakukan adalah memastikan foto yang ingin Anda kumpulkan berada di direktori yang sama. Saya akan meletakkan milik saya di direktori bernama foto_saya . Ekstensi direkomendasikan untuk gambar adalah .png dan .jpg . Apa pun yang Anda pilih, pastikan semua gambar memiliki ekstensi yang sama (jika tidak, gunakan ffmpeg mungkin memiliki efek yang tidak diinginkan). Anda cukup mengubah .png file ke .jpg atau sebaliknya (lihat Penggunaan Dasar ).
Format (-f ) dari konversi kita harus image2pipe . Untuk masukan, Anda harus memberikan tanda hubung (– ). Apa image2pipe memungkinkan Anda lakukan adalah pipa (menggunakan | di terminal) hasil dari perintah seperti cat ke ffmpeg alih-alih memasukkan semua nama satu per satu. Itulah yang akan saya lakukan. Agar ini berfungsi, kami juga harus menyebutkan bahwa kami menginginkan codec video untuk disalin (-c:v salin ) (untuk menggunakan gambar dengan benar):
cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv
Jika Anda memutar file ini, Anda mungkin berpikir hanya beberapa gambar yang ditambahkan ke tayangan slide. Sebenarnya, semua gambar Anda telah ditambahkan, tetapi ffmpeg siklus melalui mereka secepat mungkin. Ini berarti 1 bingkai per foto; ffmpeg (secara default) berjalan sekitar 23 fps .
Untuk mengubahnya, Anda harus menentukan kecepatan bingkai (-kecepatan bingkai ) yang Anda inginkan:
cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv
Dalam contoh saya, saya menyetel kecepatan bingkai ke 1 , itu berarti bahwa setiap bingkai (itu juga berarti setiap gambar) muncul selama 1 detik .
Untuk menambahkan audio , seperti lagu latar, kita harus menentukan file audio sebagai file masukan (-i audio_file ) dan salin codec audio (-c:salinan ). Untuk codec , Anda dapat menyalin codec audio dan video secara bersamaan dengan -c copy . Pastikan Anda mengatur codec dengan benar sebelum menentukan file output. Anda juga dapat menyetel kecepatan bingkai agar semua gambar Anda tersinkronisasi dengan durasi audio yang ingin Anda gunakan. Untuk mendapatkannya, bagi jumlah gambar dengan durasi audio (dalam detik) . Sebagai contoh saya, saya memiliki file audio berdurasi 22 detik dan 9 gambar. 9 / 22 kira-kira 0,40, jadi itulah yang akan saya gunakan untuk kecepatan bingkai saya:
cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv
4. Rekam Layar Anda
Siaran layar dengan ffmpeg bukanlah pekerjaan yang sulit. Format (-f ) yang perlu Anda gunakan adalah x11grab . Ini akan menangkap XSERVER . Anda . Sebagai masukan Anda harus menentukan nomor tampilan layar (layar utama biasanya 0:0 ). Namun, ini hanya akan menangkap bagian kiri atas dari layar. Anda harus menambahkan ukuran layar (-s ). Milik saya 1920×1080 . Ukuran layar harus disebutkan sebelum masukan :
ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4
Tekan q atau CTRL+C kapan saja untuk berhenti screencast .
Trik bonus: Anda dapat membuat ukuran file keluaran layar penuh dengan memasukkan ini setelah untuk ukuran (bukan 1920×1080 atau resolusi set lainnya):
-s $(xdpyinfo | grep dimensions | awk '{print $2;}')
Berikut perintah lengkapnya:
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 output.mp4
5. Rekam Webcam Anda
Masukan rekaman dari kamera web . Anda (atau perangkat lain, seperti kamera usb) bahkan lebih mudah. Di Linux, perangkat adalah toko di /dev sebagai /dev/video0, /dev/video1, dll. :
ffmpeg -i /dev/video0 output.mkv
Sekali lagi, q atau CTRL+C untuk menghentikan perekaman .
6. Rekam Audio Anda
Linux menangani audio terutama melalui ALSA dan pulseaudio . ffmpeg dapat merekam keduanya, tapi saya akan membahas pulseaudio , karena distribusi berbasis Debian menyertakannya secara default. Sintaksnya sedikit berbeda untuk kedua metode tersebut.
Untuk pulseaudio , Anda harus memaksa (-f ) juga dan tentukan default sebagai masukan (-saya default ):
ffmpeg -f alsa -i default output.mp3
Catatan: Dalam setelan suara distribusi Anda, pastikan perangkat perekam default adalah yang ingin Anda rekam.
Saya bermain gitar cukup banyak dan saya memiliki antarmuka audio sehingga saya dapat merekamnya. Saya mendapat kejutan yang menyenangkan ketika ffmpeg merekam gitar saya tanpa masalah.
Tips Bonus untuk Merekam
Untuk semua jenis rekaman, Anda juga dapat menentukan codec , tentu saja (sudah dibahas). Anda dapat memilih kecepatan bingkai tertentu (-r ). Anda dapat menggabungkan merekam audio dengan webcam/rekaman layar juga!
ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv
Alih-alih merekam audio, Anda dapat dengan mudah menambahkan sebuah file audio sebagai masukan untuk direkam di atas screencast/webcam Anda:
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4
Catatan: ffmpeg merekam dalam potongan-potongan kecil, sehingga rekaman yang sangat kecil mungkin tidak dapat disimpan. Saya sarankan merekam sedikit lebih lama dan memotongnya setelah itu (jika Anda hanya ingin beberapa detik), hanya untuk memastikan file benar-benar akan ditulis ke disk Anda.
Penggunaan dasar Filter di ffmpeg
Filter adalah fitur yang sangat kuat dari ffmpeg . Ada banyak filter tersedia untuk Anda gunakan, membuat ffmpeg benar-benar mampu menangani pengeditan . apa pun kebutuhan. Karena ada begitu banyak filter dan artikel ini sudah lengkap, saya hanya akan membahas beberapa filter sederhana.
Struktur dasar untuk menggunakan filter adalah:
ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4 ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav
Seperti yang Anda lihat, saya menentukan filter video (-vf , kependekan dari -filter:v ) dan filter audio (-af , kependekan dari -filter:a ). Filter sebenarnya ditulis di dalam tanda kutip ganda (“ ) dan dapat dirantai dengan memisahkannya dengan koma (, ). Anda dapat menentukan filter sebanyak yang Anda inginkan (saya telah menulis dll untuk mencatat filter tambahan, itu sebenarnya bukan bagian dari perintah).
Bentuk umum dari filter adalah:
filter=setting_2=value_2:setting_2=value_2
Setelan filter yang berbeda dan nilainya dipisahkan oleh titik dua .
Anda juga dapat menjalankan operasi matematika sebagai nilai untuk setelan yang berbeda .
Catatan: Cakupan lebih rinci dari konstanta yang berbeda untuk digunakan dalam ekspresi dan pengaturan yang berbeda dapat ditemukan di resmi dokumentasi filter ffmpeg .
Saya akan membahas keduanya video dan audio filter. Mari kita lihat beberapa contohnya!
1. Penskalaan Video
Ini adalah filter yang sangat sederhana. Satu-satunya setelan adalah lebar dan tinggi :
ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4
Saya menyebutkan bahwa Anda dapat menggunakan operasi matematika untuk nilai juga:
ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv
Perintah ini menyetel ukuran keluaran menjadi setengah (1/2 ) dari ukuran masukan (di_w , di_h ).
2. Pemangkasan Video
Adapun filter penskalaan , setelan adalah lebar dan tinggi dari file yang dihasilkan. Secara opsional, Anda dapat menentukan koordinat untuk pojok kiri atas potongan (default: tengah video masukan):
ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv
Sebagaimana dicatat, potongan kedua akan dipotong di tengah file input (karena saya belum menentukan x dan y koordinat untuk sudut kiri atas). Perintah pertama akan dipotong dari sudut kiri atas (x=0:y=0 ).
Berikut adalah contoh yang menggunakan ekspresi matematika sebagai nilai :
ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv
Perintah ini menyetel ukuran keluaran ke 3/4 dari ukuran masukan (di_w , di_h ).
3. Rotasi Video
Anda juga dapat memutar video searah jarum jam dengan nilai (dalam radian ). Untuk mempermudah, Anda dapat menentukan nilai dalam derajat dan ubah menjadi radian dengan menggandakan nilai tersebut dengan PI/180 :
ffmpeg -i input.avi -vf "rotate=90*PI/180"
ffmpeg -i input.mp4 -vf "rotate=PI"
Perintah pertama akan berputar video searah jarum jam 90 derajat . Perintah kedua akan berputar video terbalik (PI rad =180 derajat).
4. Pemetaan Ulang Saluran Audio
Ini dapat membantu jika Anda entah bagaimana hanya mendapatkan audio di telinga kanan atau sejenisnya. Anda dapat membuat audio terdengar dari kedua telinga (dalam kasus khusus ini) seperti ini:
ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3
Peta . ini kanan (1 ) saluran audio ke kiri (0 ) dan kanan (1 ) saluran audio. (angka kiri mewakili masukan , angka yang benar mewakili keluaran ).
5. Mengalikan Volume Audio
Anda dapat menggandakan volume audio oleh nyata bilangan (bilangan bulat atau tidak). Anda hanya perlu menentukan pengganda :
ffmpeg -i input.wav -af "volume=1.5" output.wav
ffmpeg -i input.ogg -af "volume=0.75" output.ogg
Perintah pertama menguatkan volume 1,5 waktu. Perintah kedua membuat audio 1/4 (0,25) kali lebih tenang .
Kiat Bonus:Penyesuaian Kecepatan Pemutaran
Saya akan menyertakan keduanya video (tidak memengaruhi audio) dan audio filter untuk tugas ini.
1. Video
Filter untuk video adalah setelan (PTS =cap waktu presentasi). Ini bekerja dengan cara yang agak menarik. Karena kami sebenarnya memodifikasi PTS , koefisien yang lebih besar berarti hasil yang lebih lambat dan sebaliknya:
ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4
Seperti yang baru saja saya jelaskan, perintah pertama gandakan kecepatan pemutaran dan perintah kedua melambat video hingga 1/2 dari kecepatan .A
2. Audio
Filter untuk ini adalah tempo . Ada satu peringatan kecil:itu hanya dapat mengambil nilai antara 0,5 (setengah kecepatan) dan 2 (kecepatan dua kali lipat). Untuk menyiasatinya, Anda dapat merangkai tempo filter:
ffmpeg -i input.wav -af "atempo=0.75" output.wav
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3
The first command slows the audio by 1/4 of the original speed. The second command speeds up the audio 4 times (2*2).
Catatan: For changing video and audio playback speed with the same command you’ll have to look into filtergraphs .
Menutup
In this comprehensive guide I covered the installation, basic usage, advanced usage and basics of filters.
I hope that this can be a helpful resource for anyone looking to try out ffmpeg , for someone that wants to use ffmpeg for multiple tasks or even just for someone who is willing to get more familiar with the extensive features of this amazing utility.
Let us know if you found this article useful in the comments below and tell us what are you using ffmpeg for! We look forward to any additions of any kind. Thanks for reading our blog and keep an eye out for an article covering more complex filtering . Selamat menikmati!