1

ビデオファイルとオーディオをスローモーションにしようとしています。私の場合は、「リニアスローモーション」ではなく、放物線のように徐々に減速して加速するランプスローモーションを行う必要があります。

参考:リニアスローモーション:

ここに画像の説明を入力

参照 : 傾斜スローモーション :

ここに画像の説明を入力

私はこれまでに何をしましたか:

最初の 3 つの箇条書きに AVFoundation を使用

  1. ビデオ ファイルから、オーディオとビデオを分離します

  2. AVFoundation api (scaletimeRange) を使用してビデオのスローモーションを行いました。実際には正常に動作しています。

  3. 同じことがaudioでは機能しません。Apple API 自体にバグがあるようです (バグ ID : 14616144)。関連する質問は、scaleTimeRange がオーディオ タイプ AVMutableCompositionTrack に影響しないことです。

  4. だから私はDiracに切り替えました。後で、Dirac のオープン ソース エディションには、Dynamic Time Stretching をサポートしないという制限があることがわかりました。

  5. 最後にOpenALでやろうとしています。

Apple 開発者フォーラムからサンプルの OpenAL プログラムを取得して実行しました。

ここに私の質問があります:

  1. 処理した音声を OpenAl に保存/保存できますか? "OpenAl" で直接保存できない場合、AVFoundation + OpenALで保存できますか?

  2. 非常に重要なことですが、OpenAL でスローモーションを実行したり、タイム スケールをストレッチしたりする方法はありますか? タイム ストレッチを知っていれば、Ramp Slow Motion のロジックを適用できます。

  3. 他に方法はありますか?

4

2 に答える 2

1

1 や 2 とは言えませんが、タイム スケーリング オーディオはリサンプリングと同じくらい簡単です。48 kHz でサンプリングされた RAW/PCM オーディオを半分の速度で再生したい場合は、96 kHz にリサンプリングし、オーディオを 48 kHz で再生します。サンプル数が 2 倍になるため、再生に 2 倍の時間がかかります。一般的:

scaledSampleRate = (orignalSampleRate / playRate);

また

playRate = (originalSampleRate / scaledSampleRate);

これはトラックのピッチに影響を与えますが、「スローモーション」オーディオではその動作がある程度予想されるため、望ましい効果である可能性があります。時間をスケーリングしながらピッチを維持する、より高度なテクニックがあります。オープン ソース ソフトウェアの Audacity は、これらのアルゴリズムを実装しています。そこにインスピレーションを見つけることができます。Web には、ピッチ シフトとタイム ストレッチのトレードオフを説明する多くのリソースがあります。

あなたが考慮していないかもしれない別のオプションは、スローモーション中にオーディオをミュートすることです. これは、ほとんどの AV 再生ユーティリティで採用されている手法のようです。ただし、ユースケースによっては、歪んだオーディオは時間が操作されていることを示しています。

于 2013-08-04T14:11:29.020 に答える