https://github.com/tanersener/mobile-ffmpeg/releases/tag/v4.4
项目集成
pod 'mobile-ffmpeg-full-gpl', '~> 4.4'
import mobileffmpeg
func outVideo(path1:String,outPath:String) {
try? FileManager.default.removeItem(atPath: outPath)
// let ex = "-f image2 -i \(path1)/*.jpg -vcodec libx264 -r 7 \(outPath)"
let ex = "-r 0.5 -pattern_type glob -i '\(path1)/*.jpg' -c:v libx264 \(outPath)"
// -r 25 -pattern_type glob -i 'renguang_results/*.png' -c:v libx264
print("ex \(ex)")
let rc = MobileFFmpeg.execute(ex)
switch rc {
case RETURN_CODE_SUCCESS:
print("-=-=-=-成功")
if UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(outPath){
UISaveVideoAtPathToSavedPhotosAlbum(outPath, self, #selector(self.video(videoPath:didFinishSavingWithError:contextInfo:)), nil)
}
break
case RETURN_CODE_CANCEL:
print("-=-=-=-取消")
break
default:
print("-=-=-=-失败")
UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(outPath)
break
}
}
///将下载的网络视频保存到相册
@objc func video(videoPath: String, didFinishSavingWithError error: NSError, contextInfo info: AnyObject) {
if error.code != 0{
print("保存失败")
print(error)
}else{
print("保存成功")
}
}
func outBJMusic(path1:String,outPath:String) {
let ex = " -i \(path1) -af pan=\"stereo|c0=c0|c1=-1*c1\" -ac 1 \(outPath)"
print("ex \(ex)")
let rc = MobileFFmpeg.execute(ex)
switch rc {
case RETURN_CODE_SUCCESS:
print("-=-=-=-成功")
break
case RETURN_CODE_CANCEL:
print("-=-=-=-取消")
break
default:
print("-=-=-=-失败")
break
}
}