Saya memiliki banyak file mp3 dengan berbagai panjang. Saya ingin memotongnya hingga 50% -60% panjangnya. Katanya, mulai 1 menit hingga 30 detik. Itu harus sepele menggunakan ffmpeg. Tapi, saya tidak tahu bagaimana menentukan panjang asli sebagai basis untuk diproses menggunakan ffmpeg.
Adakah yang punya ide?
\n
untuk mencetak baris baru juga.> mp3info -p "%S\n" sample.mp3
// total waktu dalam detikffmpeg
akan mencetak semua yang diketahui tentang file tersebut jika Anda tidak memberikan argumen lain. Gunakangrep
untuk menghapus semuanya kecuali "Durasi":Anda juga bisa menggunakannya
mplayer
. Grep untuk baris "ID_LENGTH =":sumber
TOTLENGTH=0; for f in *.mp3; do LENGTH=$(mplayer -ao null -identify -frames 0 "$f" 2>&1 | awk -F= '/ID_LENGTH/ {print $2}' | awk -F. '{print $1}'); TOTLENGTH=$(($TOTLENGTH + $LENGTH)); done; echo $TOTLENGTH
untuk mencetak total panjang audio di semua file, dalam hitungan detik. Ini mungkin dapat dilakukan dengan lebih efisien, tetapi karena saya menulisnya sekali saja, itu cukup baik untuk kebutuhan saya. (Doa awk kedua menghapus desimal, jadi hasilnya tidak 100% akurat, tapi sekali lagi, cukup bagus untuk kebutuhan saya.)Estimating duration from bitrate, this may be inaccurate
. Saya pikir jawaban ini hanya valid dengan Constant Bitrate MP3.Menariknya, aplikasi EXIFTool memberikan durasi MP3 sebagai baris terakhir!
sumber
Cara lain untuk mendapatkan durasi hanya menggunakan
ffmpeg
dangrep
:sumber
Solusi menggunakan
ffmpeg
strike me sedikit rapuh, karena mereka mengurai output yang tidak cukup dirancang sebagai antarmuka. Namun mereka mungkin akan terus bekerja selama beberapa tahun.ffmpeg
dilengkapi dengan alatffprobe
untuk mendapatkan informasi tentang file audio (banyak format, termasuk mp3), dan dapat menghasilkan output yang dapat dibaca mesin. Perintah berikut mendapatkan durasi lagu.sumber
ffprobe -show_entries stream=duration -of compact=p=0:nk=1 -v fatal song.mp3
Saya pribadi menggunakan Mplayer untuk mengekstrak informasi, sebagian besar karena saya sudah menginstalnya dan tidak perlu repot untuk menginstal perangkat lunak baru yang tidak perlu. Keuntungannya adalah tidak terbatas pada file mp3 pada khususnya, dan harus bekerja dengan file media apa pun yang dapat ditangani Mplayer. Satu liner berikut akan mengembalikan panjang trek dalam hitungan detik.
sumber
Anda dapat menggunakan ffmpeg untuk mendapatkan durasi file. Cukup gunakan:
sumber
Saya memiliki masalah yang sama dan menemukan perintah mplayer (goldPseudo) bekerja dengan baik, tetapi saya kemudian menemukan bahwa jika Anda membuka album di RhythmBox Anda akan melihat baris statusnya memberikan jumlah trek, total waktu bermain dan ukuran disk.
sumber
Berikut ini adalah penggunaan sederhana saya merujuk di atas.
Saya mengirim nilai itu ke variabel mp3_full_length
Terima kasih banyak orang! Saya menggunakan ide dan pengetahuan Anda. Terima kasih telah membaca, Semoga harimu menyenangkan! ;)
sumber