Konversi Mp4 ke Mp3 dengan thumbnail

8

Saya dapat mengkonversi mp4 ke mp3 di ffmpeg, tapi saya tidak yakin bagaimana saya akan menambahkan thumbnail video.

Saat ini ada yang mengonversi dari mp4 ke mp3

ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3

Maka apakah saya harus menjalankan itu melalui ffmpeg lagi dengan perintah ini?

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

atau adakah cara untuk menggunakan filter kompleks untuk mencapai ini satu kali?

Saya tahu ini berfungsi untuk FLV tetapi sepertinya tidak berfungsi untuk mp4

ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3
Nadermx
sumber
Apakah Anda benar-benar ingin orang yang dikonversi secara otomatis mengatur thumbnail? Karena kalau tidak, Anda bisa mengubahnya secara manual tetapi saya tidak yakin apakah Anda setelah itu. Jika Anda bisa melakukannya dengan FLV tetapi tidak dengan MP4 saya hanya akan membuat skrip yang menjalankan kedua perintah.
RamonRobben
@RamonRobben Saya mencoba untuk menghindari menjalankan ffmpeg dua kali
nadermx
Anda dapat mencoba sesuatu seperti ini ffmpeg -i in.mp4 -i test.png -map 0: 0 -map 1: 0 -c copy -id3v2_version 3 -metadata: s: v title = "Album cover" -metadata: s: v comment = "Cover (Front)" out.mp3 Saya sendiri sedang mengunduh ffmpeg untuk memulai pengujian dengannya.
RamonRobben

Jawaban:

3

Jawaban yang lebih baik , dengan penjelasan, memasukkan saran cerdas dari slhck dan Mulvya, tanpa parameter penting.

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3

ffmpeg alat manupulasi audio / video: sudah dipilih oleh OP, sangat cocok untuk pekerjaan ini.

-i video.mp4 File input pertama: video dengan beberapa audio yang ingin kami ekstrak.

-i cover.jpg file input kedua, gambar yang ingin kami tampilkan ketika kami memutar file audio yang dihasilkan.

-acodec libmp3lame kami ingin membuat file .mp3, menggunakan pengode LAME.

-b:a 256kini mengatur bitrate untuk trek audio ke 256Kb / s konstan. Opsi yang lebih cerdas adalah mengkodekan dengan bitrate variabel, menentukan parameter kualitas : -q:a 0meminta kualitas maksimum, sementara -q:a 4seringkali merupakan kompromi yang baik antara kualitas audio yang dirasakan dan bitrate (dan karenanya, ukuran file).

-c:v copyini menunjukkan bahwa aliran video (gambar .jpg) tidak akan dideteksi ulang tetapi harus disalin sebagaimana adanya. Ini berguna untuk menghindari pemrosesan yang tidak perlu dan potensi kehilangan kualitas ketika memasukkan kembali ke format lossy. Dalam kasus kami, tanpa parameter ini gambar akan diterjemahkan dari .jpg dan disandikan ke .png, yang tampaknya adalah format asli yang dipilih secara default. Ini tidak akan mewakili penurunan kualitas karena .png adalah kerugian, tetapi lebih sering daripada tidak akan menyebabkan ukuran file meningkat, karena fakta bahwa .jpg (menjadi lossy) umumnya menawarkan tingkat kompresi yang lebih baik.

-map 0:a:0ini memilih aliran yang akan digunakan dari 0:file input pertama ( ): itu harus stream pertama ( :0) audio ( a) yang dikandungnya.

-map 1:v:0ini memilih streaming pertama ( :0) video ( v) dari 1:file input kedua ( ).

output.mp3 nama parameter ini dipilih secara licik agar sudah menyarankan bahwa ini harus menjadi nama yang akan diberikan ke file audio output (.mp3) dengan gambar yang dimasukkan yang ingin kita buat.

Jawaban asli

Ini membuat file audio (.mp3) dengan gambar statis dengan menyusun video (.mp4) dan gambar (.jpg) dari pernikahan saya:

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3

Lihat dokumentasi ffmpeg tentang memilih stream input -map, yang merupakan opsi yang relevan di sini.

Saya pertama kali menjalankan perintah dengan sederhana -map 0 -map 1dan mendapat info ini:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
  Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))

Jadi saya tahu saya ingin streaming 1(aac audio) dari file yang memiliki nomor indeks 0, yaitu file video; oleh karena itu harus dipilih secara eksplisit dengan -map 0:1 -map 1.

simlev
sumber
Saya sudah mencoba ini, namun hasilnya memberi saya Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
nadermx
Jalankan dengan ´-peta 0-peta 1 and dan lihat apa aliran yang tersedia.
simlev
Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame)) Stream #1:0 -> #0:1 (mjpeg (native) -> png (native))
nadermx
1
@nadermx Anda dapat melakukan masing-masing -map 0:a:0 -map 1:v:0untuk memilih stream audio dan video pertama dari file pertama dan kedua.
slhck
1
Hindari pengkodean input gambar, terutama dengan JPG. -c:v copy.
Gyan
2

Anda dapat menggunakan pemutar media vlc -

Langkah 1: Buka VLC dan pilih "Media". Klik pada konversi / simpan.

Langkah 2: Pada jendela berikutnya yang muncul, pilih "tambah" dan pilih file video (MP4) yang akan dikonversi.

Langkah 3: Selanjutnya, klik panah ke bawah pada "Konversi / Simpan" lalu klik "Konversi".

Langkah 4: Pada jendela berikutnya yang muncul, pastikan tombol "Konversi" dipilih. Lanjutkan untuk memilih jenis file audio yang ingin Anda buat. Dalam kasus kami, file MP3-nya kami konversi.

Langkah 5: Pilih tujuan keluaran, dan kemudian tekan "Mulai". VLC kemudian akan mulai mengkonversi.

untuk menambahkan thumbnail Anda dapat merujuk tautan ini (dijelaskan dengan sangat baik).

AjaiVeer Singh Sandhu
sumber