ホームページ  >  記事  >  バックエンド開発  >  Python は mp3 セグメントを 30 秒ごとに 1 つに分割し、ファイルのビットレートを削減します

Python は mp3 セグメントを 30 秒ごとに 1 つに分割し、ファイルのビットレートを削減します

PHPz
PHPz転載
2023-04-12 09:28:021403ブラウズ

MoviePy は、ビデオの作成、編集、結合、クリッピング、変換の機能を提供する Python ベースのビデオ編集ライブラリです。 MoviePy の主な機能は次のとおりです:

ビデオ編集: MoviePy はビデオの編集、ビデオとオーディオのストリームの分離、ビデオとオーディオのセグメントの追加と削除などを行うことができます。

ビデオ結合: MoviePy は複数のビデオ ファイルとオーディオ ファイルを 1 つに結合できます。

ビデオのトランスコーディング: MoviePy は、mp4 から avi への変換、H.264 エンコーディングから H.265 エンコーディングへの変換など、ビデオ形式とエンコーディング方法を変換できます。

ビデオ編集: MoviePy はビデオ特殊効果、アニメーション、字幕などを追加して、ビデオをより鮮やかでクリエイティブにすることができます。

ビデオ生成: MoviePy を使用して、スライドショーやアニメーションなどの生成など、カスタマイズされたビデオを作成します。

ビデオ処理: MoviePy は、トリミング、スケーリング、回転、色調整など、ビデオに対していくつかの処理を実行できます。

つまり、MoviePy は Python 開発者に、複雑なビデオ編集ソフトウェアを習得することなくビデオを処理するためのシンプルで使いやすいフレームワークを提供します。ビデオの処理、編集、生成を簡単に処理できるほど強力です。

この記事では主にmoviepyを使って音声ストリームを分割しビットレートを下げる方法を紹介します。

1. 準備

始める前に、Python と pip がコンピュータに正常にインストールされていることを確認する必要があります。そうでない場合は、この記事を参照してください: Super Detailed Python Installation Guideそれ。

(オプション 1) データ分析に Python を使用する場合は、Anaconda を直接インストールできます。Anaconda は Python データ分析とマイニングの優れたヘルパーであり、Python と pip が組み込まれています。

( オプション 2) さらに、多くの利点がある VSCode エディターを使用することをお勧めします。 Python プログラミングのベスト パートナー - VSCode 詳細ガイド。

依存関係をインストールするコマンドを入力するには、次のいずれかの方法を選択してください:

  • Windows 環境 Cmd を開きます (Start-Run-CMD)。
  • MacOS 環境 ターミナルを開きます (コマンドスペースを入力してターミナルに入ります)。
  • VSCode エディターまたは Pycharm を使用している場合は、インターフェイスの下部にあるターミナルを直接使用できます。
pip install moviepy

2. Moviepy 分割オーディオ

MoviePy ライブラリを使用するには アップロードされた mp3/wav を 30 秒ごとにカットし、ファイルのビットレートを下げるには、次の手順に従います。

  • MoviePy ライブラリとその他の必要なライブラリをインポートします:
import os
from moviepy.editor import *
  • オーディオ ファイルをカットしてビットレートを下げる関数を定義します:
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

関数は 3 つのパラメータを受け取ります。 filename は処理されるオーディオ ファイルの名前を表し、split_duration はファイルを分割する時間の長さ (秒単位) を表します。 bitrate は設定される出力コード レート (ビットレート単位) を表します。 )。

関数では、まず音声ファイルを読み込み、次にカットポイントを計算します。次に、ループを使用して各カット ポイントをたどり、オーディオ ファイルを小さなファイルにカットしてビット レートを下げ、最後に新しいオーディオ ファイルとして出力します。

  • オーディオ ファイルを処理する関数を呼び出します:
filename = "your_audio_file.mp3"# 要处理的音频文件名
split_duration = 30# 按每30秒一个切割文件
bitrate = "64k"# 设置输出码率为64kbps
split_audio_file(filename, split_duration, bitrate)

関数を呼び出すときは、処理するオーディオ ファイルの名前、カット ファイルの長さ、および出力ビットレートを関数のパラメータとして指定するだけです。この関数は、処理されたオーディオ ファイルを現在のディレクトリに出力します。

3.Mp3 出力ビット レート

出力ビット レートはあまり低く調整できないことに注意してください。 MP3 ファイルの出力ビットレートは、音質とファイル サイズに影響します。出力ビットレートが高いほどオーディオ品質は向上しますが、ファイルサイズも大きくなります。逆に、出力ビットレートを低くすると、音質は低下しますが、ファイルサイズは小さくなります。

MP3 ファイルのコード レートは、1 秒あたりに必要なビット数 (つまり、ビット レート) を指します。エンコード時、MP3 アルゴリズムは設定されたビット レートに基づいて圧縮オーディオ データの量を決定するため、出力ファイルのサイズと品質に影響します。一般に、ビットレートが高いほどオーディオ品質は高くなりますが、より多くのストレージ容量と帯域幅を消費します。

出力ビット レートの設定が低すぎると、オーディオ品質が大幅に低下し、オーディオ ノイズ、歪み、低周波数の切り詰めなどの問題が発生する可能性があります。出力ビットレートの設定が高すぎると、ファイルサイズが非常に大きくなり、転送や保存が困難になる場合があります。

したがって、出力ビット レートを選択するときは、オーディオ品質とファイル サイズの要件、および特定の状況に応じた送信とストレージの制限を考慮する必要があります。一般に、128 kbps が一般的に使用される MP3 出力ビットレートであり、より良い音質と適切なファイル サイズが生成されます。

以上がPython は mp3 セグメントを 30 秒ごとに 1 つに分割し、ファイルのビットレートを削減しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。