iOS 视频压缩、音视频混合、音频混合

本文详细介绍了如何在iOS平台上进行视频压缩、音视频混合以及音频合成。通过提供的Demo代码,开发者可以学习到如何将苹果原生录制的视频压缩至原来的1/8~1/9大小,并实现音视频的无缝合并及音频文件的合成操作。
摘要由CSDN通过智能技术生成

这里写图片描述

本文将介绍视频、音频处理的方法;方便大家使用

Demo:https://coding.net/u/Xoxo_x/p/VideoAndAudio/git/blob/master/AVFoundation%E9%9F%B3%E8%A7%86%E9%A2%91%E6%B7%B7%E5%90%88%E5%8E%8B%E7%BC%A9.zip

或者:https://coding.net/u/Xoxo_x/p/VideoAndAudio/git/tree/master

首先
音视频处理需要用到AVFoundation下的AVAssetExportSession,通过exportAsynchronouslyWithCompletionHandler回调,得知处理状况。
一、视频压缩

视频压缩实际上是一种视频格式的转换、苹果原生录制的视频通过此方法可以压缩为原来的1/8 ~ 1/9左右。

  • 创建AVURLAsset
        // 视频来源
        let videoInputUrl = NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource("Daid", ofType: "mp4")!)
        // 视频采集
        let videoAsset = AVURLAsset(URL: videoInputUrl, options: nil)

  • 创建输出路径
 // 最终合成输出路径
        let name = currentTimeStamp() + ".mp4"
        let temporaryFile = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent(name)

        print(temporaryFile)
        let outputFileUrl = NSURL(fileURLWithPath: temporaryFile)

其中,currentTimeStamp()为时间戳字符串,防止重复。

//时间戳
func currentTimeStamp()->String {
    let now = NSDate()
    let dformatter = NSDateFormatter()
    dformatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"
    print("当前日期时间:\(dformatter.stringFromDate(now))")
    //当前时间的时间戳
    let timeInterval:NSTimeInterval = now.timeIntervalSince1970
    let timeStamp = Int(timeInterval)

    return String(timeStamp)

}<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值