Cara menggabungkan file audio dan video dalam ffmpeg


Jawaban:


260

Menggabungkan video dan audio, dengan pengodean ulang audio

Lihat contoh ini, diambil dari entri blog ini tetapi diperbarui untuk sintaksis yang lebih baru. Itu harus menjadi sesuatu dengan efek:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

Di sini, kami mengasumsikan bahwa file video belum mengandung aliran audio apa pun, dan Anda ingin memiliki format output yang sama (di sini, MP4) sebagai format input.

Perintah di atas mentranskode audio, karena MP4 tidak dapat membawa stream audio PCM. Anda dapat menggunakan codec audio lain yang diinginkan jika diinginkan. Lihat Panduan Pengkodean AAC untuk info lebih lanjut.

Jika aliran audio atau video Anda lebih lama, Anda dapat menambahkan -shortestopsi sehingga ffmpeg akan berhenti melakukan pengkodean setelah satu file berakhir.

Menyalin audio tanpa pengodean ulang

Jika wadah keluaran Anda dapat menangani (hampir) codec apa pun - seperti MKV - maka Anda cukup menyalin streaming audio dan video:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Mengganti aliran audio

Jika video input Anda sudah mengandung audio, dan Anda ingin menggantinya, Anda harus memberi tahu ffmpeg aliran audio mana yang akan diambil:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

The mappilihan membuat ffmpeg hanya menggunakan aliran video pertama dari input pertama dan stream audio pertama dari input kedua untuk file output.


Saya mencobanya tetapi ffmpeg membeku saat penggabungan
Sandy

4
Saya tidak berpikir wadah mp4 dapat memiliki aliran audio wav. Cobaffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
Luke

1
Saya menggunakan ini dan itu mengganti audio asli dari audio input. Bagaimana jika saya ingin menggabungkan audio input dengan audio input video?
Iqbal Malik

Baris perintah yang sangat manis ...
Chandra Nakka

Hebat, saya menggunakan ffmpeg -i video.mp4 -i audio.wav \ -c: v copy -c: aac-output eksperimental yang ketat.mp4 untuk menggabungkan MP3 dengan file Wav ... => mp4 5 menit, dihasilkan 30 detik ..Terima kasih
sonida

12

Karena saya tidak diperbolehkan menulis komentar pada jawaban pertama dengan reputasi saya, sebuah tambahan di sini, karena saya mempunyai masalah ini ketika menyandikan webms.
Jika aliran audio Anda misalnya lebih panjang dari aliran video , Anda harus memotongnya atau Anda akan memiliki bingkai video terakhir sebagai gambar diam dan audio berjalan.

Untuk memotong aliran mana pun, Anda dapat menggunakan -ss [hh: mm: ss] -t [ss] sebelum masing-masing dari -i "file.ext".
-ss [...] akan menentukan titik awal untuk memotong
-t [...] akan menentukan panjang segmen dalam detik

Contoh:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

4
Anda juga bisa menggunakannya -shortestuntuk memotong bagian akhirnya.
nyuszika7h

5

-buka perintah promt (windows + r -> cmd-> enter)

-Kemudian pergi ke dalam folder di mana Anda memiliki file audio dan video

terapkan cmd ini

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Masukkan .... Anda akan mendapatkan file baru bernama outPutFime.mp4 (file gabungan audio dan video)


2
Ini benar-benar tidak perlu untuk menggambarkan cara menggunakan baris perintah di sini. Ini cukup banyak tersirat bahwa pengguna akan dapat mengetahuinya. Terutama karena penanya ditentukan FFmpeg. Semua sama, -shortesttag ini sangat bagus. Jauh lebih sederhana dari pada jawaban @ user136036.
Kat

3
Ini akan menyandikan ulang semuanya, yang mungkin bukan yang diinginkan.
mivk


'ffmpeg' tidak dikenali sebagai perintah internal atau eksternal,
UniCoder

Anda harus menambahkan ffmpeg ke PATH wikihow.com/Install-FFmpeg-on-Windows
Arete


1

Coba gunakan mencoder (Ya itu berbasis ffmpeg, tetapi Anda tidak pernah tahu). Saya menggunakan -audiofileargumen. Saya biasanya menggunakan ffmpeg, jadi ikuti saran ini dengan sedikit garam.

Dan, jika Anda menggunakan Windows, Mediacoder (bukan open source lagi sayangnya) berfungsi ... itu pada dasarnya sebuah frontend untuk banyak encoders gnu dan beberapa yang tidak bebas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.