首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的...我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量代码,实践证明...这篇文章里,我打算描述一下我对于开发AndroidRTSP播放器的程序框架,和设计思路,有相关需求的,希望能借此扩展下思路。...我在之前的一篇文章里也写了这部分,可以参考一下:"NDK开发Android端RTMP直播推流程序"。1....之前有篇文章里也有简单介绍,可以参考"NDK开发Android端RTMP直播推流程序",具体的语法可以参考官方网站Android Developer。图片写好后,调用ndk-build脚本编译,OK。

2.8K20

Android平台RTSP|RTMP直播播放器技术接入说明

无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以Android平台为例,介绍下如何集成RTSP、RTMP播放模块。...接口调用详解本文以大牛直播SDK Android平台SmartPlayerV2为例,播放之前,设置初始化参数配置(软解还是硬解、buffer time等)和需要播放的RTSP或RTMP URL,点开始播放即可...;import android.util.Log;import android.view.Surface;import android.view.SurfaceView;import android.view.View...平台RTSP、RTMP直播播放模块对接说明,在此之前,我们针对SmartPlayer做过一些技术方面的探讨,从低延迟、音视频同步处理、多实例实现、解码效率、性能占用、解码后数据对接、实时截图、录像、网络抖动处理等各个维度...感兴趣的开发者,可以单独跟我们探讨。

600
您找到你想要的搜索结果了吗?
是的
没有找到

Android平台RTMP|RTSP直播播放器功能进阶探讨

我们需要怎样的直播播放器?很多开发者在跟我聊天的时候,经常问我,为什么一个RTMP或RTSP播放器,你们需要设计那么多的接口,真的有必要吗?...带着这样的疑惑,我们今天聊聊Android平台RTMP、RTSP播放器常规功能,如软硬解码设置、实时音量调节、实时快照、实时录像、视频view翻转和旋转、画面填充模式设定、解码后YUV、RGB数据回调等...:图片延迟延迟延迟RTMP或RTSP直播播放器,特别是在一些交互场景下,对延迟要求近乎苛刻,所以,毫秒级的延迟,是一个直播播放器聊下去的基础,200-400ms的整体时延,是大家比较期望的,是的,你没看错...软硬解码设置Android平台特别是超过1080p的分辨率的流数据,如果设备性能一般,软解效率不一定高,这时候建议硬解码,硬解码我们分两种,一种是设置surface模式的硬解码,这种无法快照和回调yuv...播放器,还需要支持的客制化功能有支持回调H.264/H.265/AAC数据,或回到解码后的YUV或RGB数据,设置播放缓冲、设置快速播放、设置音频输出类型等,一个通用的RTSP、RTMP播放器,延迟是基础

61420

Android NDK开发入门

尽管Java一贯以其良好的跨平台性而著称,但真正的跨平台非C/C++莫属,因为当前世上90%的系统都是基于C/C++编写的。...应用程序框架层 Android平台最常用的组件和服务都在这一层,是每个Android开发者必须熟悉和掌握的一层,是应用开发的基础。...NDK NDK是什么 NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。...通过此工具开发的程序直接在本地运行,而不是虚拟机。 在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。...同时,NDK还集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so文件。

1.6K50

庖丁解牛之-Android平台RTSP|RTMP播放器设计

​ 背景 我们在做Android平台RTSP或者RTMP播放器开发的时候,需要注意的点非常多,以下,以大牛直播SDK(官方)的接口为例,大概介绍下相关接口设计: 接口设计 1....网络状态回调 一个好的播放器,好的状态回调必不可少,比如网络连通状态、快照、录像状态、当前下载速度等实时反馈,可以让上层开发者更好的掌控播放端状态,给用户更好的播放体验。...音频输出类型 音频输出,android平台支持audiotrack模式和opensl es模式,一般来说,考虑到设备通用性,建议采用audiotrack模式。...平台RTSP、RTMP播放器接口设计需要参考的点,对于大多数开发者来说,不一定需要实现上述所有部分,只要按照产品诉求,实现其中的40%就足够满足特定场景使用了。...一个好的播放器,特别是要满足低延迟稳定的播放(毫秒级延迟),需要注意的点远不止如此,感兴趣的开发者,可以参考blog其他文章。 ​

49240

RTSP播放器开发填坑之道

好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTSP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1....低延迟:大多数RTSP的播放都面向直播场景,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异(大牛直播SDK...支持多实例:大牛直播SDK提供的RTSP直播播放SDK支持在设备性能允许的情况下,支持多实例播放RTSP流数据,大多开源播放器对多实例支持不太友好; 4....支持解码后audio/video数据输出:大牛直播SDK接触到好多开发者,希望能在播放的同时,获取到YUV或RGB数据,进行人脸匹配等算法分析,开源播放器不具备此功能; 8....总结 基于上述因素,想做好一个RTSP或者RTMP播放器,需要考虑的点实在太多了,特别是细节问题,开源的表面看省了前80%的经历,但是因为大多开源播放器系统比较庞大,适用于点播播放,却对直播播放支持很差

2.2K40

Android NDK开发初试(基础)

首先,什么是NDK开发,听到这个词,我的第一感觉是高大上的,其实倒也没错,NDKAndroid开发中属于偏底层的,需要与C++等进行联系,它没有像应用层开发那么灵活,但是作为开发者,我们必须了解其简单的使用...NDKAndroid所提供的一个工具集合,通过NDK可以在Android中更加方便的通过JNI来访问本地代码,比如C或者C++。...NDK还提供了 交叉编译器(在一种平台上编译,编译出来的程序,是放到别的平台上运行即编译的环境,和运行的环境不一样,属于交叉的,此所谓cross。)...,开发人员只需要简单修改 mk 文件就可以生成特定cpu 平台的动态库。使用ndk有以下好处: 提高代码的安全性。...(so包很难反编译) 可以很方便的使用目已有的C/C++开源库 (比如音视频开发使用ffmpeg) 便于平台之间的移植。

66520

Windows平台RTSP播放器、RTMP播放器几点设计细节讨论

我们在实现Windows平台RTSP播放器或RTMP播放器的时候,需要考虑的点很多,比如多实例设计、多绘制模式兼容、软硬解码支持、快照、RTSP下TCP-UDP自动切换等,以下就其中几个方面,做个大概的探讨...视频绘制模式 我们在实现Windows平台播放的时候,一般首选D3D,D3D不支持的情况下,考虑数据回上来,采用GDI模式,一般实现如下,先做D3D检测,以大牛直播SDK播放端为例(Github),调用...视频view旋转 好多现场的开发人员有这样的困惑,有些设备,在安装时,可能没调整好角度,导致拍出来的角度倒立等,看着很不方便,这时候,如果现场设备比较多的话,不可能每台设备都到现场重新安装,实时view...实时快照 实时快照功能不表,是一个好的RTSP播放器和RTMP播放器必备的功能,实时快照是把解码后的yuv数据重新编码成png,所以有一定的CPU消耗,不建议过于频繁操作,具体实现如下:...和RTMP播放器设计过程中的其他点,做更进一步的探讨,谢谢大家的关注。

1.5K00

推荐一个基于C++11的高性能运营级流媒体服务框架

branch=master)] 项目特点 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代码清晰简洁。...支持linux、macos、ios、android、windows平台 支持画面秒开(GOP缓存)、极低延时(500毫秒内,最低可达100毫秒) 支持websocket-flv直播 ZLMediaKit...网络编程二次开发SDK。 功能清单 RTSP RTSP 服务器,支持RTMP/MP4转RTSP。...android-ndk-r14b 编译 编译(Windows) 我的编译环境 windows 10 visual studio 2017 cmake-gui 编译 1 进入ZLMediaKit目录执行...IOS rtmp/rtsp播放器,视频推流器 支持linux、windows、mac的rtmp/rtsp播放器 上述工程可能在最新的代码的情况下编译不过,请手动修改 授权协议 本项目自有代码使用宽松的

2.9K10

AndroidNDK开发Crash分析

---- 【AndroidNDK开发Crash问题 手机user版本还是userdebug或是eng版本:adb shell getprop ro.build.type 因为使用的user版本的手机.../aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line 其中NDK_HOME表示...ndk-stack Android NDK自从版本r6开始,提供了一个工具ndk-stack。这个工具能自动分析tombstone文件,能将崩溃时的调用内存地址和C++代码一行一行对应起来。...ndk-stack工具同样也位于NDK包中,它的路径如下所示: $NDK_HOME/ndk-stack ndk-stack的使用说明如下所示: Usage: ndk-stack -sym PATH [...objdump也是ndk自带的一个工具,通常与addr2line在同一目录: $NDK_HOME/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86

1.2K40

Android NDK开发完全剖析

之前的两篇文章主要介绍了音视频SDK中的线程设计和消息队列,其实对那些想从Android转向音视频开发的同学来说,NDK方面的知识是不得不提的“前置条件”,因为音视频开发的主要是C/C++开发,也许有些同学会反驳...这些工具我们应该学会怎么使用,但是它并不能支持我们深入学习音视频技术,很多跨平台和使用广泛的库都是C/C++的,所以NDK开发是音视频技术学习的“门槛”,本文的目的就是带你从0开始开始学习NDK相关的知识点...对于没有做过嵌入式开发的人来说,也许很陌生,一些Android开发,如果没有过多涉及JNI方面,也不太清楚什么是交叉编译,通俗来讲,交叉编译就是在一个平台上生成另外一个平台可以执行的代码。...现在的CMake结构整体看上去还是比较简单一些,降低了NDK开发的门槛。 CMake 是一个开源、跨平台的工具系列,旨在构建、测试和打包软件。...本文篇幅比较长,但也只是介绍了NDK开发的基本知识,NDK开发还有很多疑难的点,我们留到后面吧。

1.8K10

AndroidNDK开发初体验

个人博客地址 http://dandanlove.com/ 记得前年开始自己在项目中使用第三方so库的时候就接触NDK编程开发了,只不过哪个时候自己是输出了"Hello Wrold~!"。...NDK NDK是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。...它集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。...对于我们Android开发者来说,我们的app需要能在大多数手机上运行。所以要么我们所有arm类型都兼容,要么只兼容armeabi。...android-ndk-env-config.jpg 以上是下边使用Android studio 进行NDK开发的基础,下边我们进入真正的开发环节。

1.3K40
领券