ffmpeg - ganti audio dalam video

48

Bagaimana cara mengganti audio dalam file video menggunakan file audio menggunakan ffmpeg?

Saya membayangkan perintahnya seperti:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

Ini sangat mirip dengan Bagaimana cara mengganti aliran audio dalam file video dengan beberapa aliran audio? tetapi pertanyaan itu menangani banyak trek audio, yang sangat menyulitkan, membuatnya tidak jelas bagian mana dari solusi yang cukup untuk pertukaran audio sederhana.

qubodup
sumber

Jawaban:

68

Anda akan ingin menyalin aliran video tanpa pengodean ulang untuk menghemat banyak waktu, tetapi pengodean ulang audio mungkin membantu mencegah ketidakcocokan:

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0memetakan 0aliran video (indeks ) pertama dari input ke 0aliran video (indeks ) pertama di output.

-map 1:a:0memetakan 1aliran audio (indeks ) kedua dari input ke 0aliran audio (indeks ) pertama dalam output.

Jika audio lebih panjang dari video, Anda akan ingin menambahkan -shortestsebelum nama file output.

Tidak menentukan codec audio, akan secara otomatis memilih codec yang berfungsi. Anda dapat menentukan satu dengan misalnya menambahkan -c:a libvorbissetelah -c:v copy.

qubodup
sumber
2
atau langsung -c copyuntuk hanya menyatukan kembali audio dan video tanpa menyandikan ulang aliran apa pun ^^
Francesco Yoshi Gobbo
1
Apakah Anda tahu cara mengonversi audio baru dalam format yang sama (dengan parameter yang sama) seperti di video asli? Maksudku, aku butuh audio baru untuk dikodekan dengan cara yang sama seperti audio yang lama.
Kostanos
Bekerja seperti pesona !!
Tessaracter
@Kostanos tidak secara otomatis tetapi saya ingin. Tolong tanyakan pertanyaan lain. Anda dapat merujuk yang ini untuk mengklarifikasi bahwa milik Anda baru.
qubodup