iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)(三)

最近由于项目需要,接触了一下ffmpeg的编译和使用。

由于之前的版本ffmpeg编译的库比较老,对新设备,5s及5s以后的设备支持不太好,重新编译了ffmpeg静态库。

一,下载并在终端中运行脚本编译ffmpeg

脚本参考git上的:https://github.com/kewlbear/FFmpeg-iOS-build-script;

终端进入刚刚下载后的脚本文件夹下,运行sh:build-ffmpeg.sh 自动编译,有缺少yasm的按照提示操作,安装yasm

编译的是ffmpeg2.5.3版本,Xcode6下iOS8.1。

按照脚本编译完后的静态库目录如下:

其中的.a文件为静态库文件,include文件夹内的是头文件

二,将编译好的ffmpeg文件拖人工程,并设置相应的路径

新建工程,将编译好后包含include和lib文件夹拖进工程

我这里先将FFmpeg-iOS文件夹copy了一分放在工程目录下,并重新命名为ffmpegNew,路径如下图:

到这里要修改工程的Header Search Paths ,要不然会报

include“libavformat/avformat.h” file not found  错误

根据Library Search Paths 中的lib的路径:

复制路径,添加一份到Header Search Paths 中,再将lib改为include

改好如下:

三,导入其他库文件

其中libz.dylib libbz2.dylib libiconv.dylib 貌似是必须要导入的,其他的按照需求配置

个人配置好后的如下供参考:

四,将第三方代码导入工程

根据工程的定制化需求,这里选择了iFrameExtractor,git代码参考:https://github.com/lajos/iFrameExtractor 或者 RTSPPlayer    https://github.com/SutanKasturi/RTSPPlayer

我这里用的后者的demo里面的代码,直接将(AudioStreamer  RTSPPlayer  Utilities)六个文件拖入工程使用

五,实现播放,实现方法可以参考demo中的代码

其中的self.playUrl为视频流的地址本工程用的是RTSP 数据流  示例:

self.playUrl = @"rtsp://xxx.xxx.xxx.xxx/xxx.sdp";

实现播放的代码:

self.videoView = [[RTSPPlayer alloc] initWithVideo:self.playUrl usesTcp:YES];

self.videoView.outputHeight = self.playImage.frame.size.height;

self.videoView.outputWidth  = self.playImage.frame.size.width;

__weak TestViewController *weakself = self;

dispatch_async(dispatch_get_main_queue(), ^{

weakself.playTimer = [NSTimer scheduledTimerWithTimeInterval:1/30.0

target:weakself

selector:@selector(displayNextFrame:)

userInfo:nil

repeats:YES];

});

-(void)displayNextFrame:(NSTimer *)timer {

if (![self.videoView stepFrame]) {

[timer invalidate];

return;

}

if (startframecount < 48) {

startframecount++;

} else {

startframecount++;

[self playVideo];

}

}

-(void)playVideo

{

//    NSLog(@"%p,%d",__FUNCTION__,__LINE__);

//主线程更改视图

//视频源尺寸为352*288

__weak TestViewController *weakself = self;

dispatch_async(dispatch_get_main_queue(), ^{

weakself.playImage.image =  weakself.videoView.currentImage;

//        NSLog(@"%d,%d",self.videoView.sourceWidth,self.videoView.sourceHeight);

});

}

摘自:iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)

时间: 2024-08-06 20:08:40

iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)(三)的相关文章

iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)

最近由于项目需要,接触了一下ffmpeg的编译和使用. 由于之前的版本ffmpeg编译的库比较老,对新设备,5s及5s以后的设备支持不太好,重新编译了ffmpeg静态库. 一,下载并在终端中运行脚本编译ffmpeg 脚本参考git上的:https://github.com/kewlbear/FFmpeg-iOS-build-script: 终端进入刚刚下载后的脚本文件夹下,运行sh:build-ffmpeg.sh 自动编译,有缺少yasm的按照提示操作,安装yasm 编译的是ffmpeg2.5.

只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的

============问题描述============ 前提:上传的APK中以及接入了服务器接入方提供的统一接口调用代码. 本地将游戏打包好APK后,直接上传这个APK.然后服务器端会将第三方SDK自动集成到APK中, 使上传的这个APK自动集成了第三方渠道的SDK. 一般想到的做法是将上传的APK进行反编译成工程,然后将SDK集成到工程中,再进行编译打包签名生成APK. 但是有的接入平台说拿到APK后不用进行反编译就能集成第三方SDK. 百思不得其解他们是如何做到的,到底是什么原理.(排除动

编译FFmpeg的win32平台库

一.目的 FFmpeg是一套可以用来录制.转码音视频,并能将其转化为流的开源流媒体程序.采用LGPL或GPL许可证.它包含了非常先进的音频/视频编解码库,为了保证高可移植性和编解码质量,里面的很多代码都是从头开发的. FFmpeg是在Linux平台下开发的,如果想要编译出在Windows平台下使用的库,一种方法是使用交叉编译.网上有一个人叫zeranoe,他提供了FFmpeg的Windows平台开发SDK(网址:https://ffmpeg.zeranoe.com/builds/),同时他也提供

在Windows下编译ffmpeg完全手册

本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注: 1.       对于compile和build这两个词,本文统一的使用编译这个词,根据上下文读者应能区分语义上的差别. 本文的目的是提供一切与FFmpeg在Windows下的相关帮助.它最初是一个针对用MSys+MinGW系统编译的手把手的教程,现在也增加了如何在你的项目中链接FFmpeg所产

在Windows下编译FFmpeg详细说明

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU For Windows.它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC产生 Windows32 程序. 开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境. 所以

anroid ndk编译ffmpeg 引用librtmp libx264

Ffmpeg 无处不在,自然android系统少不了它,折腾了不少时间完成 ndk编译ffmpeg,生成so库中引用了外部库librtmp,libx264.条条大路通罗马, 也许还有别的更好的方法去完成它,我没有仔细研究.我使用的方法完全可以达到我的预期目的. 一.选择编译环境 可以选择windows下cygwin,也可以选择linux系统,我建议选择后者.花了很多时间在cygwin下编译,configure时总是提示链接需要的so文件找不到.无奈 之下转到linux环境下编译.我用的版本是ub

mingw编译ffmpeg+x265过程记录

mingw编译ffmpeg+x265过程记录 email: [email protected] 工作环境 OS:windows 7 1.相关资源下载 Ffmpeg-2.3     http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2 X265-1.3下载  https://bitbucket.org/multicoreware/x265/wiki/Home http://ffmpeg.zeranoe.com/builds/source/external_

Android中集成第三方库的方法和问题

声明: 1. 本文参考了网上同学们的现有成果,在此表示感谢,参考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决办法.第一,第二部分为参考网上同学们的成果加以整理而成. 3. 欢迎转载,交流,请尊重作者劳动成果:转载请注明出处,谢谢! Android中使用第三方库可能有两种:Java库.jar和原生库.so/.a,如果只是做上层APK开发,这两种库都可以通过Eclipse集成开发环境进行集成,如果是平台级开发,则都可通过源码集成.本文整理这两种集成方式使用步骤,以下假设

windows 下使用 MinGW + msys 编译 ffmpeg

本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但它同样可以在其它操作系统环境中编译运行,本文介绍的就是在windows下编译FFmpeg.一 编译准备    您最好新建一个目录专门用来保存以下下载的文件.1 下载 MinGW 和 MSYS    MinGW(Minimalist GNU on Windows):一个可自由使用和自由发布的Windo