问题
工作原因遇到音视频相关开源库,例如:live555
,ffmpeg
,ijkplayer
,vlc
等等。现在把其中的经验记录如下。
方案
方案1集成源码
其中live555
客户端源码较少可以直接把源码文件copy进工程,直接调试即可。
方案2自己编译而后打断点
包括ffmpeg
以及vlc
.ijkplayer
是基于ffmpeg
开发的,ijk
原生部分代码可以直接调试,ijk
依赖的ffmpeg
也需要用到方案2.
案例1ijkplayer
参照iOS 版FFMPEG调试
安装好之后,直接打断点即可,例如找到调用的ffmpeg
解码函数avcodec_decode_video2
,单步跟进
案例2MobileVLCKit
参照iOS编译MobileVLCKit客户端打开Demo工程
先在player.m
打断点
- (void)playMedia {
[_player play];
}
需要注意的点
- 因为是多线程的,调试
步进
到某一部分就已经进不去了。因为在别的线程执行了,这就需要自己对源码的基本框架有所了解了 - 这种打断点弊端一,无
index
关键字不变色,无法跳转进去对应的类以及方法。 - 弊端二,我想知道
videotoolbox.m
相关调用,因为没有videotoolbox.h
对应代码是动态条用的,只能通过对源码的了解猜测才能步进
到videotoolbox.m
这个文件,只有找到至少 一个能进入videotoolbox.m
的地方,才能给videotoolbox.m
打断点。