Parameter optimal untuk pengirisan audio menggunakan FFMpeg

1

Saya berencana menggunakan Perl untuk mengekstrak audio dari file media melalui FFMpeg. Sejauh yang saya tahu, FFMpeg membutuhkan banyak parameter seperti bit-rate, dll yang digunakan untuk mengekstrak audio. Jadi untuk satu video tertentu, kami dapat menyediakan params melalui pengujian, dan FFMpeg akan memberikan kami audio. Tetapi ketika saya perlu menerapkannya ke banyak file media, saya memerlukan beberapa params optimal yang akan selalu mengekstrak audio yang layak dari semua.

Jadi adakah yang bisa memandu saya apa yang seharusnya menjadi params default yang harus saya gunakan untuk memastikan bahwa hampir semua file media memberikan ekstraksi audio yang layak?

SexyBeast
sumber

Jawaban:

3

Anda bisa menggunakan -codec copyatau -c copy(atau -c:a copy). Ini akan menyalin bit stream 100%. Menyalin bit stream memiliki batasan tertentu, di mana Anda hanya dapat memotong bingkai kunci; tapi sejauh yang saya tahu, itu sebagian besar berlaku untuk streaming video daripada audio (codec audio tidak memiliki analog ke bingkai kunci sejauh yang saya tahu). Secara pribadi, saya tidak pernah menemukan masalah memotong audio dengan menyalin bit stream.

ffmpeg -i input.mp3 -c:a copy -ss 10 -t 50 output.mp3

Opsi terbaik Anda berikutnya adalah menggunakan audio PCM yang tidak terkompresi ( -c:a pcm_s16le) atau codec lossless seperti FLAC ( -c:a flac). Ini akan menghasilkan audio yang terdengar identik dengan aslinya. Ini akan memberi Anda file yang lebih besar.

ffmpeg -i input.mp3 -c:a pcm_s16le -ss 10 -t 50 output.wav
ffmpeg -i input.mp3 -c:a flac -ss 10 -t 50 output.flac

Anda dapat menempatkan -sssebelum input untuk mempercepat segalanya, meskipun ini mungkin memberikan pencarian yang kurang akurat. Karena Anda membuat skrip ini, Anda mungkin menemukan beberapa kegunaan untuk -toopsi (lihat dokumentasi ).

Evilsoup
sumber
Bisakah Anda memberi saya perintah lengkap tentang -c:a flac?
SexyBeast
Ya, ketika saya menggunakan -vcodec copy -acodec copy, sering kali irisan lebih panjang dari durasi yang ditentukan. Sepotong 5 detik menghasilkan durasi 15 detik. Ini saya kira karena faktor bingkai ky, karena tidak dapat mengiris bingkai kunci di tengah jalan, ia berjalan di depan sampai bingkai itu selesai. Baik?
SexyBeast
@Cupidvogel ya, itu terdengar seperti masalah keyframe; jika Anda bekerja dengan hanya audio, maka (berdasarkan pengalaman saya sendiri) Anda tidak akan memiliki masalah - tapi saya belum diuji bahwa dengan daftar lengkap dari input.
evilsoup
@Cupidvogel Bingkai kunci tidak bertahan selama beberapa detik. Interval antara frame kunci adalah yang terpenting ( panjang Grup Gambar . Pemotongan yang tepat, seperti kata Evilsoup, tidak selalu mungkin - benar.
slhck