オーディオ ファイルを正確に x 秒にしようとしています。
これまでのところatempo
、次の計算を行ってフィルターを使用してみました
Audio length / desired length = atempo.
しかし、これは正確ではなく、テンポを手動で微調整して正確に合わせる必要があります。
この作業を行うための他の解決策はありますか? それとも私はこれを間違ってやっていますか?
元のファイルは wav ファイルで、出力は mp3 です
ここにサンプルコマンドがあります
ffmpeg -i input.wav -codec:a libmp3lame -filter:a "atempo=0.9992323" -b:a 320K output.mp3
アップデート。
オーディオの長さを受け取る方法を変更することで、テンポを正しく計算できました。
現在、実際のファイル サイズとサンプル レートを使用して、現在のオーディオの長さを計算しています。
オーディオの長さ = ファイル サイズ / (サンプル レート * 2)
サンプルレートは 16000 Hz のようなものです。ffprob または ffmpeg を使用して取得できます。
編集 - 解決済み
理解した。テンポを間違って計算していました。
Audio length / desired length = atempo
する必要があります
desired length / Audio length = atempo
テンポが実際に何をするかについて、もう少し読む必要がありました。これが誰かに役立つことを願っています。