ios - 如何使视频的音轨在IOS中消失

标签 ios audio video avfoundation

我正在使用AVMutableComposition和AVAssetExportSession之类的东西将音乐与视频合并(输出是mp4)。

整个过程工作正常,但是当我尝试使用音频混合添加衰落效果时,导出将失败

这是在重要时增加衰落效果的代码片段

AVMutableAudioMix* exportAudioMix = nil;
if(CMTimeCompare(videoAsset.duration, CMTimeMakeWithSeconds(2, 25)) == 1) {
    exportAudioMix = [AVMutableAudioMix audioMix];
    AVMutableAudioMixInputParameters *mixParam 
        = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:compositionAudioTrack];
    for(int i = 0; i <= 5; i++) {
        CMTime t = CMTimeMake(i * 5 , 25);
        [mixParam setVolume:0.2 * i atTime:t];
        [mixParam setVolume:0.2 * (5 - i) atTime:CMTimeAdd(videoAsset.duration, t)];
    }
    exportAudioMix.inputParameters = @[mixParam];
}
_assetExport.audioMix = exportAudioMix;//export won't fail if I remove this line

我尝试使用setVolumeRamp ...,但是它不起作用(无法导出),所以我更改为setVolume,其行为相同。因此,我认为问题不应该存在。

最佳答案

好吧,我经过一番努力才想到了这个问题。我的回答是在此情况下,以防其他任何人遇到此错误(尽管此问题似乎只是由愚蠢的错误引起)。

我如何设置混音没有问题。问题是我使用 passthrough 预设初始化了导出 session ,该 session 将按原样使用输入,并且如果存在修改音频轨道的混音会失败。

我将预设更改为AVAssetExportPresetHighestQuality,一切正常。

关于ios - 如何使视频的音轨在IOS中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19266361/

相关文章:

ios - UIImageView 'unrecognized selector sent to instance' 难以捉摸的硬崩溃

html - 如何在html/html5中显示图像和音频?

ios - 音频播放器在后台播放,应该基于硬件静音开关工作

javascript - 暂停多个 HTML5 视频

video - FFmpeg - 请求的输出格式 'mpeg' 不是合适的输出格式

iphone - 为什么这个 View Controller 不能设置下一个 View Controller 的文本字段?

ios - 将数据传递到 segue 目的地,无需 iVar

iphone - 键盘关闭后 UITableView 无法滚动到底部

qt - Qt QAudioOutput StateChnged始终处于ActiveState(Qt 5.1 Windows MinGW)

video - 音频在 ffmpeg 视频转换中不起作用