本来叫工作中遇到的转码问题,后来发现一个比较牛的三方歪果仁写的(地址 https://github.com/Keemotion/TS2MP4),如题,支持的格式,感觉包含了用到的多数,所以就改了下标题
一、互相转换 (GPAC4iOS + Classes文件共13兆左右) 下载地址https://github.com/YanZeqin/TsToMp4.git
pod 中导入 pod 'GPAC4iOS' pod 'TS2MP4' (TS2MP4依赖的库必须要有)
build phases 中 Link Binary With Libraries入中加UIKit.framework 以及libz.tbd
从demo中拖出Classes文件 拖入工程,在原demo中进行了部分修改,这样用的时候避免了很多坑
在用到的类中导入头文件 #import "KMMedia.h"
附代码简单易懂
注:如果遇到以下问题看解决办法
1、build phases 中 Link Binary With Libraries入加 libc++.tbd库
2、build settings中 other linker flags中加 $(inherited)
二、mp4转ts (FFmpegWrapper还支持什么格式不知道,望知道的留言,互相学习)(FFmpeg + FFmpegWrapper 110多兆)
下载地址 略大(130多兆)包含了ffmpeg https://github.com/YanZeqin/VideoConversion
Podfile中加入FFmpeg
pod 'FFmpegWrapper', '~> 1.0'
这时FFmpeg,FFmpegWrapper这俩文件主要用后者
导入头文件#import "FFmpegWrapper.h"
创建 FFmpegWrapper *wrapper = [[FFmpegWrapper alloc] init];
- (void) convertInputPath:(NSString*)inputPath outputPath:(NSString*)outputPath options:(NSDictionary*)options progressBlock:(FFmpegWrapperProgressBlock)progressBlock completionBlock:(FFmpegWrapperCompletionBlock)completionBlock
使用该方法 inputPath需要转换的mp4文件路径 ,outputPath转换后的路径 options没用到,也没深入研究
第一个回调里会返回文件大小 以及转换的大小
第二个回调里是成功失败
附代码