iOS视频到音频文件的转换

瓦莱

我设法使用NSUrlConnection下载youtube视频并将其保存到设备中。现在,我想将此文件(我想是.mp4)转换为.mp3音频文件。有人知道这个问题的解决方案吗?也许有一种方法只能从视频中下载音频?这样可以节省大量时间。

节奏拳头

首先,您不想转换任何东西,那很慢。相反,您想从mp4文件中提取音频流。您可以通过创建一个AVMutableComposition仅包含原始文件音轨的,然后使用导出构图来做到这一点AVAssetExportSession目前这是以m4a为中心的。如果要同时处理m4a和mp3输出,请检查音轨类型,确保设置正确的文件扩展名,然后在导出会话之间AVFileTypeMPEGLayer3AVFileTypeAppleM4A在导出会话中进行选择。

    NSURL*      dstURL = [NSURL fileURLWithPath:dstPath];
    [[NSFileManager defaultManager] removeItemAtURL:dstURL error:nil];

    AVMutableComposition*   newAudioAsset = [AVMutableComposition composition];

    AVMutableCompositionTrack*  dstCompositionTrack;
    dstCompositionTrack = [newAudioAsset addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];


    AVAsset*    srcAsset = [AVURLAsset URLAssetWithURL:srcURL options:nil];
    AVAssetTrack*   srcTrack = [[srcAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];


    CMTimeRange timeRange = srcTrack.timeRange;

    NSError*    error;

    if(NO == [dstCompositionTrack insertTimeRange:timeRange ofTrack:srcTrack atTime:kCMTimeZero error:&error]) {
        NSLog(@"track insert failed: %@\n", error);
        return;
    }


    AVAssetExportSession*   exportSesh = [[AVAssetExportSession alloc] initWithAsset:newAudioAsset presetName:AVAssetExportPresetPassthrough];

    exportSesh.outputFileType = AVFileTypeAppleM4A;
    exportSesh.outputURL = dstURL;

    [exportSesh exportAsynchronouslyWithCompletionHandler:^{
        AVAssetExportSessionStatus  status = exportSesh.status;
        NSLog(@"exportAsynchronouslyWithCompletionHandler: %i\n", status);

        if(AVAssetExportSessionStatusFailed == status) {
            NSLog(@"FAILURE: %@\n", exportSesh.error);
        } else if(AVAssetExportSessionStatusCompleted == status) {
            NSLog(@"SUCCESS!\n");
        }
    }];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS视频到音频文件的转换

来自分类Dev

视频到音频文件转换并通过FFMPEG保存在节点js中

来自分类Dev

在iOS中将录制的音频文件转换为.wav格式

来自分类Dev

在iOS中将录制的音频文件转换为.wav格式

来自分类Dev

如何转换音频文件中的录制视频或现有视频?

来自分类Dev

ffmpeg:concat视频和音频文件

来自分类Dev

将音频文件附加到视频

来自分类Dev

增加视频/音频文件的平均音量

来自分类Dev

音频到视频快速转换

来自分类Dev

iOS中音频文件的幅度频谱

来自分类Dev

iOS-如何下载音频文件

来自分类Dev

使用ffmpeg连接多个视频和音频文件

来自分类Dev

使用ffmpeg连接多个视频和音频文件

来自分类Dev

从Wikipedia文章中提取视频或音频文件的数量

来自分类Dev

允许用户仅通过密码下载视频/音频文件

来自分类Dev

向和mkv视频添加音频文件

来自分类Dev

在Rails中混合视频和音频文件

来自分类Dev

Facebook 无需上传视频或音频文件即可管理版权

来自分类Dev

如何在Android中将视频/音频文件转换为字节数组,反之亦然?

来自分类Dev

使用ffmpeg javascript将wav音频文件转换为pcm音频文件

来自分类Dev

使用ffmpeg javascript将wav音频文件转换为pcm音频文件

来自分类Dev

ffmpeg如果音频文件中的音频较长,则将音频剪切为视频长度

来自分类Dev

从音频文件创建视频文件,并从音频添加可视化效果

来自分类Dev

验证音频文件

来自分类Dev

提供音频文件

来自分类Dev

连接音频文件

来自分类Dev

识别音频文件

来自分类Dev

ios - 将视频的音频转换为 AAC

来自分类Dev

在Pydub和Librosa之间转换音频文件