0
私は現在、オーディオファイルからフレームをデコードし、ビデオに書き込まれている新しいストリームに追加するために、FFMpeg AutoGenプロジェクト(もちろんC#で)を使用しています。これはすべて正常に動作しますが、私は2つのAVFrame *オブジェクトを(デコード後に)一緒にミキシングする方法が不思議でした。デコードされた2つのFFmpeg AVFrameオブジェクトからPCMデータを混ぜる
以前はPCMデータを混在させていましたが、FFmpegに組み込みのAPIがあればより効果的ですか?
short* baseFrameBuffer1 = (short*)baseFrame->data_0;
short* baseFrameBuffer2 = (short*)baseFrame->data_1;
short* readFrameBuffer1 = (short*)readFrame->data_0;
short* readFrameBuffer2 = (short*)readFrame->data_1;
for (int frameIndex = 0; frameIndex< 1024; frameIndex++)
{
int dataSample1 = GetInRangeSample(baseFrameBuffer1[frameIndex] + readFrameBuffer1[frameIndex]);
int dataSample2 = GetInRangeSample(baseFrameBuffer2[frameIndex] + readFrameBuffer2[frameIndex]);
baseFrame->data_0[frameIndex] = (byte)dataSample1;
baseFrame->data_1[frameIndex] = (byte)dataSample2;
}
private static int GetInRangeSample(int sample)
{
if (sample > short.MaxValue)
{
sample = short.MaxValue;
}
if (sample < short.MinValue)
{
sample = short.MinValue;
}
return sample;
}
私の以前の質問を使用してhttp://stackoverflow.com/questions/37570129/increase-decrease-audio-volume-using-ffmpegとあなたの答え、私は問題を解決しました。 – williamtroup