Pertanyaan Asli
Saya ingin dapat menghasilkan file MP3 baru (valid sepenuhnya) dari file MP3 yang ada untuk digunakan sebagai pratinjau - gaya coba-sebelum-Anda-beli. File baru hanya boleh berisi n detik pertama dari lagu tersebut.
Sekarang, saya tahu saya hanya bisa "memotong aliran" dalam n detik (dihitung dari bitrate dan ukuran header) saat mengirimkan file, tetapi ini agak kotor dan PITA nyata pada jalur VBR. Saya ingin dapat menghasilkan file MP3 yang sesuai.
Ada yang punya ide?
Jawaban
Keduanya mp3split
dan ffmpeg
keduanya merupakan solusi yang baik. Saya memilih ffmpeg karena biasanya diinstal di server linux dan juga mudah tersedia untuk windows . Berikut beberapa parameter baris perintah yang lebih baik untuk menghasilkan pratinjau dengan ffmpeg
-t <seconds>
potong setelah jumlah detik tertentu-y
memaksa file menimpa-ab <bitrate>
atur bitrate misalnya -ab 96k-ar <rate Hz>
setel laju pengambilan sampel misalnya -ar 22050 untuk 22,05kHz-map_meta_data <outfile>:<infile>
salin metadata lagu dari infile ke outfile
alih-alih menyetel -ab dan -ar, Anda dapat menyalin setelan trek asli, seperti yang disarankan Tim Farley, dengan:
-acodec copy
Jawaban:
Saya juga merekomendasikan ffmpeg, tetapi baris perintah yang disarankan oleh John Boker memiliki efek samping yang tidak diinginkan: ini mengkodekan ulang file ke bitrate default (yaitu 64 kb / s dalam versi yang saya miliki di sini setidaknya). Ini mungkin memberi pelanggan Anda kesan yang salah tentang kualitas file suara Anda, dan ini juga membutuhkan waktu lebih lama untuk melakukannya.
Berikut adalah baris perintah yang akan dipotong menjadi 30 detik tanpa transcoding:
Sakelar -acodec memberi tahu ffmpeg untuk menggunakan codec "copy" khusus yang tidak ditranskode. Cepat kilat.
CATATAN: perintah telah diperbarui berdasarkan komentar dari Oben Sonne
sumber
ffmpeg
Versi terbaru (setidaknya sejak 0.10.6) menafsirkan opsi secara berbeda berdasarkan posisi. Opsi terkait-input harus muncul sebelum-i ...
dan opsi keluaran-keluaran harus muncul setelahnya-i ...
. Artinya sekarangffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3
akan menjadi jawaban yang benar.-ss hh:mm:ss[.xxx]
. Contoh:ffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3
akan memotong hingga 30 detik mulai dari 00h 00m 15s 500ms .ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3
maka itu berfungsi dengan sempurnaJika Anda ingin MENGHAPUS 30 detik pertama (dan menyimpan sisanya), gunakan ini:
sumber
mencoba:
sumber
Perintah ini juga bekerja dengan sempurna. Saya memotong file musik saya dari 20 menjadi 40 detik.
sumber
Anda dapat menggunakan mp3cut:
Ini di ubuntu repo, jadi hanya:
sudo apt-get install cutmp3
.sumber
Anda mungkin ingin mencoba Mp3Splt .
Saya telah menggunakannya sebelumnya dalam layanan C # yang hanya membungkus proses mp3splt.exe win32. Saya berasumsi hal serupa dapat dilakukan dalam skenario Linux / PHP Anda.
sumber
Saya mendapat kesalahan saat melakukan hal yang sama
Perbaikan bagi saya adalah:
sumber
medipack adalah aplikasi baris perintah yang sangat sederhana sebagai pembungkus
ffmpeg
.Anda dapat mencapai pemangkasan video Anda menggunakan perintah ini:
Anda dapat melihat opsi subperintah trim sebagai:
Anda juga dapat menjelajahi opsi lain menggunakan
medipack -h
Anda dapat mengunjungi https://github.com/srbcheema1/medipack dan contoh checkout di README.
sumber
ffmpeg -i input -ss <start time> -to <end time> output
-t
yang dapat digunakan sebagai alternatif-e
yang berarti seandainya saya memangkas video 4 menit 36 detik berikutnya, saya tidak perlu khawatir menambahkan waktu-waktu itu secara manual, juga saya telah memberikan kemudahan serupa saat memotong video, lihat contoh di README Anda akan mengerti mengapa CLI-nya lebih mudah daripada ffmpeg sederhana. Saya setuju bahwa ini tidak terlalu kuat tetapi untuk orang normal alatnya yang praktis.ffmpeg
memiliki-to
pilihan yang-t
mungkin Anda lakukan.-vf "crop=iw*0.1:ih*0.1:0:0"