Rumah >pembangunan bahagian belakang >Tutorial Python >Python memotong segmen mp3 kepada satu setiap 30 saat dan mengurangkan kadar bit fail

Python memotong segmen mp3 kepada satu setiap 30 saat dan mengurangkan kadar bit fail

PHPz
PHPzke hadapan
2023-04-12 09:28:021441semak imbas

MoviePy ialah perpustakaan penyuntingan video berasaskan Python yang menyediakan fungsi untuk mencipta, menyunting, menggabungkan, menggunting dan menukar video. Berikut ialah fungsi utama MoviePy:

Penyuntingan video: MoviePy boleh mengedit video, memisahkan strim video dan audio, menambah dan memadam segmen video dan audio, dsb.

Penggabungan Video: MoviePy boleh menggabungkan berbilang fail video dan audio menjadi satu.

Transkod video: MoviePy boleh menukar format video dan kaedah pengekodan, seperti menukar mp4 kepada avi atau menukar pengekodan H.264 kepada pengekodan H.265, dsb.

Penyuntingan video: MoviePy boleh menambah kesan khas video, animasi, sari kata, dsb. untuk menjadikan video lebih jelas dan kreatif.

Penjanaan video: Gunakan MoviePy untuk mencipta video tersuai, seperti menjana tayangan slaid, animasi, dsb.

Pemprosesan video: MoviePy boleh melakukan beberapa pemprosesan pada video, seperti pemangkasan, penskalaan, putaran dan pelarasan warna.

Ringkasnya, MoviePy menyediakan pembangun Python rangka kerja yang ringkas dan mudah digunakan untuk memproses video tanpa perlu mempelajari perisian penyuntingan video yang kompleks. Ia cukup berkuasa untuk mengendalikan pemprosesan, penyuntingan dan penjanaan video dengan mudah.

Artikel ini terutamanya memperkenalkan cara menggunakan moviepy untuk memisahkan strim audio dan mengurangkan kadar bit.

1. Persediaan

Sebelum anda mula, anda perlu memastikan bahawa Python dan pip telah berjaya dipasang pada komputer anda. Jika tidak, anda boleh melawati artikel ini: Panduan Pemasangan Python Terperinci untuk memasangnya.

(Pilihan 1) Jika anda menggunakan Python untuk analisis data, anda boleh memasang Anaconda secara terus: Anaconda, pembantu yang baik untuk analisis dan perlombongan data Python, mempunyai Python dan pip terbina dalam.

( Pilihan 2) Di samping itu, anda disyorkan agar menggunakan editor VSCode, yang mempunyai banyak kelebihan: Rakan kongsi terbaik untuk pengaturcaraan Python—Panduan Terperinci VSCode.

Sila pilih mana-mana kaedah berikut untuk memasukkan arahan untuk memasang dependensi:

  • Persekitaran Windows Open Cmd (Start-Run-CMD).
  • Persekitaran MacOS Open Terminal (perintah+ruang untuk memasuki Terminal).
  • Jika anda menggunakan editor VSCode atau Pycharm, anda boleh terus menggunakan Terminal di bahagian bawah antara muka.
pip install moviepy

2 Audio split Moviepy

Untuk menggunakan perpustakaan MoviePy memotong mp3/wav yang dimuat naik setiap 30 saat dan mengurangkan kadar kod fail Kita boleh mengikuti langkah di bawah.

  • Import pustaka MoviePy dan pustaka lain yang diperlukan:
import os
from moviepy.editor import *
  • Tentukan fungsi untuk memotong fail audio dan mengurangkan kadar bit:
def split_audio_file(filename, split_duration=30, bitrate=16000):
# 读取音频文件
audio = AudioFileClip(filename)

# 计算文件总时长和切割点
total_duration = audio.duration
split_points = list(range(0, int(total_duration), split_duration))
split_points.append(int(total_duration))
filelist = []
# 切割音频文件并降低码率
for i in range(len(split_points) - 1):
start_time = split_points[i]
end_time = split_points[i+1]
split_audio = audio.subclip(start_time, end_time)
split_audio.write_audiofile(f"{os.path.splitext(filename)[0]}_{i}.wav", fps=bitrate)
filelist.append(f"{os.path.splitext(filename)[0]}_{i}.wav")
audio.close()
return filelist

Fungsi ini menerima tiga parameter: nama fail mewakili nama fail audio yang akan diproses, split_duration mewakili tempoh masa untuk membelah fail (dalam saat), bitrate mewakili kadar bit output yang akan ditetapkan (dalam bit ) Kadar).

Dalam fungsi, kita mula-mula membaca fail audio dan kemudian mengira titik pemotongan. Kemudian, kami menggunakan gelung untuk melintasi setiap titik pemotongan, memotong fail audio kepada fail kecil dan mengurangkan kadar bit, dan akhirnya mengeluarkannya sebagai fail audio baharu.

  • Panggil fungsi untuk memproses fail audio:
filename = "your_audio_file.mp3"# 要处理的音频文件名
split_duration = 30# 按每30秒一个切割文件
bitrate = "64k"# 设置输出码率为64kbps
split_audio_file(filename, split_duration, bitrate)

Apabila memanggil fungsi, hantar nama fail audio yang akan diproses, panjang potongan fail dan kadar bit output sebagai parameter Hanya berikan ia fungsi. Fungsi ini akan mengeluarkan fail audio yang diproses ke direktori semasa.

Kadar bit output 3.Mp3

Sila ambil perhatian bahawa kadar bit output tidak boleh dilaraskan terlalu rendah. Kadar bit output fail MP3 akan menjejaskan kualiti audio dan saiz fail. Lebih tinggi kadar bit output, lebih baik kualiti audio, tetapi saiz fail juga akan lebih besar. Sebaliknya, semakin rendah kadar bit output, kualiti audio akan berkurangan, tetapi saiz fail akan menjadi lebih kecil.

Kadar bit fail MP3 merujuk kepada bilangan bit yang diperlukan sesaat (iaitu kadar bit). Apabila pengekodan, algoritma MP3 akan menentukan jumlah data audio termampat berdasarkan kadar bit yang ditetapkan, sekali gus menjejaskan saiz dan kualiti fail output. Secara amnya, kadar bit yang lebih tinggi menghasilkan kualiti audio yang lebih tinggi, tetapi juga mengambil lebih banyak ruang storan dan lebar jalur.

Jika kadar bit output ditetapkan terlalu rendah, ia akan menyebabkan kehilangan kualiti audio yang ketara dan masalah seperti bunyi audio, herotan dan pemangkasan frekuensi rendah mungkin berlaku. Jika kadar bit output ditetapkan terlalu tinggi, saiz fail akan menjadi sangat besar, yang mungkin menyukarkan pemindahan dan penyimpanan.

Oleh itu, apabila memilih kadar bit output, anda perlu menimbang kualiti audio dan keperluan saiz fail, serta had penghantaran dan storan berdasarkan situasi tertentu. Secara umumnya, 128 kbps ialah kadar bit output MP3 yang biasa digunakan, yang menghasilkan kualiti bunyi yang lebih baik dan saiz fail yang sesuai.

Atas ialah kandungan terperinci Python memotong segmen mp3 kepada satu setiap 30 saat dan mengurangkan kadar bit fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam