Saya mencoba perintah berikut untuk mengekstrak audio dari video:
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
tapi saya mendapatkan output berikut
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input
Apakah ada yang bisa membantu?
Untuk menyandikan MP3 berkualitas tinggi dari AVI, gunakan -q: a untuk laju bit variabel:
Jika Anda ingin mengekstrak sebagian audio dari video gunakan opsi -ss untuk menentukan cap waktu mulai, dan opsi -t untuk menentukan durasi pengkodean, misalnya dari 3 menit dan 5 detik selama 45 detik:
Stempel waktu harus dalam format HH: MM: SS.xxx atau dalam detik.
Jika Anda tidak menentukan opsi -t itu akan pergi ke akhir.
Contoh kerja:
sumber
-q:a
nilai: trac.ffmpeg.org/wiki/Encode/MP3 Zero adalah pengaturan VBR berkualitas tinggi, yang biasanya menghasilkan bitrate rata-rata di bagian atas rentang CBR yang waras (di mana 320 kbit / s adalah maksimum, mungkin sedikit di luar titik di mana kompresi lossless menjadi lebih tepat).-map a
?-vn
tidak.Baris perintah sudah benar dan berfungsi pada file video yang valid. Saya akan memastikan bahwa Anda telah menginstal perpustakaan yang benar untuk bekerja dengan mp3, instal probe lumpuh dengan codec audio lain.
Biasanya
atau
akan memberikan informasi yang cukup sehingga Anda tahu lebih banyak.
sumber
ffmpeg -i sample.avi
akan memberi Anda info format audio / video untuk file Anda. Pastikan Anda memiliki pustaka yang tepat yang dikonfigurasi untuk mengurai aliran input. Pastikan juga file tersebut tidak rusak.sumber
Untuk menyandikan mp3 audio ffmpeg.org menunjukkan contoh berikut:
Saya mengekstrak audio dari video hanya dengan mengganti
input.wav
dengan nama file video. The2
berarti 190 kb / sec. Anda dapat melihat tingkat kualitas lainnya di tautan saya di atas.sumber
Inilah yang baru saja saya gunakan:
Penjelasan opsi:
-map 0:3
berarti saya ingin streaming ke-3 dari file video. Letakkan N Anda di sana - file video sering kali memiliki beberapa stream audio; Anda dapat menghilangkannya atau menggunakan-map 0:a
untuk mengambil aliran audio default. Jalankanffprobe my.mkv
untuk melihat stream apa yang dimiliki file video.sumber
Tebakan saja:
seharusnya
Sepertinya itu bisa menjadi masalah, tapi mungkin ffmpeg cukup pintar untuk memperbaikinya.
sumber
Jika audio yang dibungkus dengan avi bukan format mp3 untuk memulai, Anda mungkin perlu menentukan
-acodec mp3
sebagai parameter tambahan. Atau apa pun codec mp3 Anda (pada sistem Linux, mungkin-acodec libmp3lame
). Anda juga bisa mendapatkan efek yang sama, platform-agnostik, dengan menetapkan-f mp3
"memaksa" format ke mp3, meskipun tidak semua versi ffmpeg masih mendukung peralihan itu. Mileage Anda Mungkin Bervariasi.sumber
Untuk mengekstrak tanpa konversi, saya menggunakan entri menu konteks - sebagai tindakan khusus pengelola file di Linux - untuk menjalankan yang berikut (setelah memeriksa jenis audio yang berisi video; contoh untuk video yang berisi
ogg
audio):yang didasarkan pada perintah ffmpeg
ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT
.Saya menggunakannya
-map 0:1
tanpa masalah, tetapi, seperti yang dikatakan dalam komentar oleh @LordNeckbeard, "Stream0:1
tidak dijamin untuk selalu berupa audio. Menggunakannya-map 0:a
bukan-map 0:1
akan menghindari ambiguitas."sumber
0:1
tidak dijamin selalu berupa audio. Menggunakan-map 0:a
bukannya-map 0:1
akan menghindari ambiguitas.mediainfo
menentukan trek audio, dan memilihnya seperti ini: di-map 0:a:1
mana a: 1 adalah indeks trek audio kedua, thx!-c:a copy
membuatnya lebih cepat!Untuk orang yang mencari cara yang lebih sederhana untuk mengekstrak audio dari file video sambil mempertahankan parameter file video asli, Anda dapat menggunakan:
Misalnya, menjalankan:
mengekstrak
mp3
file audio darimov
file video.sumber
Menggunakan
-b:a
bukan-ab
seperti yang-ab
sudah ketinggalan zaman sekarang, juga pastikan jalur file input Anda sudah benar.Untuk mengekstrak audio dari video saya telah menggunakan perintah di bawah ini dan berfungsi dengan baik.
Sini,
-y
- Timpa file keluaran tanpa bertanya.-i
- FFmpeg membaca dari sejumlah "file" input yang ditentukan oleh-i
opsi-vn
- Nonaktifkan rekaman video-ar
- mengatur laju pengambilan sampel untuk streaming audio jika disandikan-ac
- Atur jumlah saluran audio.-b:a
- Atur bitrate audio-f
- formatLihat ini untuk contoh lengkap proyek android FFmpeg saya di GitHub.
sumber