Apakah ada perbedaan antara kedua perintah ini untuk mengekstraksi audio dari video?
ffmpeg -i input.mp4 -c copy -map 0:a output.wav
ffmpeg -i input.mp4 -vn -acodec copy output.wav
Apakah ada perbedaan antara kedua perintah ini untuk mengekstraksi audio dari video?
ffmpeg -i input.mp4 -c copy -map 0:a output.wav
ffmpeg -i input.mp4 -vn -acodec copy output.wav
Jawaban:
Jika file mp4 Anda hanya berisi satu trek audio, maka kedua perintah memiliki hasil yang sama.
Setidaknya ada satu perbedaan utama, dalam kasus di mana mp4 Anda berisi beberapa track / stream audio (saya tidak merujuk ke beberapa saluran dalam aliran).
Wadah WAV hanya memungkinkan untuk satu trek audio, jadi jika Anda menggunakannya -map 0:a
berpotensi akan menyalin lebih dari satu trek audio ke file WAV Anda yang akan menghasilkan kesalahan seperti:
Stream mapping:
Stream #0:2 -> #0:0 (copy)
Stream #0:3 -> #0:1 (copy)
Stream #0:4 -> #0:2 (copy)
Stream #0:5 -> #0:3 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Perintah Anda yang tidak menentukan pemetaan tidak akan menampilkan kesalahan, karena secara default, ffmpeg hanya menampilkan satu trek dari setiap jenis jika pemetaan tidak ditentukan.
Selain itu, Anda tidak perlu menentukan -vn
kapan menggunakan -acodec copy
dan menentukan wadah WAV, karena ffmpeg secara otomatis tidak akan mencoba memasukkan video ke dalam WAV.