Saya memiliki 228 file mp4 (2.6GB) dan ingin mengekstrak audio dari mereka (mp3 atau ogg). Saya ingin mengekstraknya secara batch - sebaiknya dengan bash. Saya tidak yakin apakah semua file menggunakan codec audio yang sama seperti yang direkam pada tahun yang berbeda, mulai dari 2006-2012.
Saya ingin mengulang semuanya, memilih nama file, mendeteksi codec audio dan menggunakan ffmpeg untuk mengekstrak audio.
Apa itu mungkin?
Jawaban:
Anda mengatakan ingin "mengekstrak audio dari mereka (mp3 atau ogg)". Tetapi bagaimana jika audio dalam file mp4 bukan salah satunya? Anda harus tetap transcode. Jadi mengapa tidak membiarkan deteksi format audio hingga ffmpeg?
Untuk mengonversi satu file:
Untuk mengonversi banyak file:
Anda tentu saja dapat memilih parameter ffmpeg untuk pengkodean audio yang Anda sukai, untuk mengatur hal-hal seperti bitrate dan sebagainya.
Gunakan
-acodec libmp3lame
dan ubah ekstensi dari.ogg
menjadi.mp3
untuk pengodean mp3.Jika yang Anda inginkan adalah benar-benar mengekstrak audio, Anda cukup "menyalin" trek audio ke file menggunakan
-acodec copy
. Tentu saja, perbedaan utama adalah bahwa transcoding lambat dan cpu-intensif, sementara menyalin sangat cepat karena Anda hanya memindahkan byte dari satu file ke file lainnya. Berikut cara menyalin hanya trek audio (dengan asumsi itu dalam format mp3):Perhatikan bahwa dalam kasus ini, format audiofile memiliki harus konsisten dengan apa yang wadah memiliki (yaitu jika audio format AAC, Anda harus mengatakan
audiofile.aac
). Anda dapat menggunakanffprobe
perintah untuk melihat codec yang Anda miliki, ini dapat memberikan beberapa informasi:Cara yang mungkin untuk menguraikan codec audio secara otomatis dan memberi nama file audio yang sesuai adalah:
Catatan: file output dibuat di sub-direktori
output
yang dibuatnya di awal (jika perlu). Untuk codec lain selain mp3 dan vorbis, mengkonversi audio ke ogg. Ubuntu 14.04 tidak memiliki ffmpeg dalam repositori standar, tetapi Anda dapat menambahkan ppa: mc3man / trusty-media repositori dan menginstal paket ffmpeg untuk mendapatkan perangkat lunak yang diperlukan. Lihat di sini untuk detailnya.sumber
ffprobe "$file" 2>&1 |sed -rn 's/.*Audio: (...), .*/\1/p'
; melakukan perbaikan itu.This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
ffmpeg
atauffprobe
tidak tersedia untuk Ubuntu 14.04 atau lebih baru.ffmpeg
kembali ke Ubuntu pada 15,04 , dan sepertinya Libav chaffavconv
danavprobe
telah dihapus pada 15.10 .Seperti yang dikatakan Nicolas Raoul, ini perlu diperbarui. Inilah baris yang sama yang diberikan roadmr tetapi menggunakan avconv sebagai gantinya:
for vid in *.mp4; do avconv -i "$vid" "${vid%.mp4}.mp3"; done
sumber