展开

关键词

「音」iOS采集

前言 前两天给大家介绍了如何在iOS下进行音采集,今天介绍一下在iOS下进行采集。 要了解iOS是怎样进行采集的,首先我们要了解 AVCaptureSession, AVCaptureDevice等几个基本概念及iOS上采集的工作原理。 ? AVCaptureVideoDataOutput AVCaptureVideoDataOutput是录制和访问帧的输出。它继承自 AVCaptureOutput。 根据类型 AVMediaTypeVideo,创建 AVCaptureDevice 对象。(可以创建设备也可以创建音设备)。 小结 我们首先介绍了在iOS进行采集的一些基础概念,然后又通过分析 WebRTC 代码了解了采集的基本步骤(共 12 步)。

52440

--Android采集(Camera1)

camera1.jpg 前言 今天为大家介绍一下使用Camera1进行采集。之前我写过一篇文章介绍的是Camera2进行采集。那么有人会问,为什么有了Camera2还要介绍Camera1呢? 这里最主要的原因是因为Android版本众多,Camera2是Google新推出的采集架构,但很多老的机型还不支持,所以为了兼容性的问题,我们还不能放弃使用Camera1进行的采集。 当有帧到达后,使用OpengGL ES绘制图片。 ...... 参考 渲染之EGL Android采集Camera2 http://www.jianshu.com/p/39a015f2996e ----

79640
  • 广告
    关闭

    9.9元体验视频云点播

    云点播为您提供媒资管理+短视频SDK+小程序插件+超级播放器等丰富的产品能力,快速构建长短视频一体化方案,9.9元体验一站式视频上传、转码、AI、及分发播放服务,还免费赠送基础版短视频License SDK 28天使用权

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

    --画中画

    前言 大家好,今天我为大家介绍一下如何在Android系统下实现实时直互动中的多展示功能。 我们现在都清楚实时直互动中多路的展示是目前比较流行的趋势,因为大家都想看到更多画面的需求,是非常符合人类的习惯的。 它们的区别大家可以看我的另一篇文章 的渲染与展示 一文的介绍。我们今天这个例子是通过 SurfaceView来给大家演示的。 当然它同时带来的缺是,与其它View相比开发变得比较复杂。 实现 在资源文件中定义两个 SurfaceView <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android

    46710

    (5)-iOS ffmpeg+SDL

    ; goto __FAIL; } //找到流 videoStream = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_VIDEO 报错 error for object 0x9: pointer being freed was not allocated,找不到原因 没研究怎么切换横竖屏 五、参考 FFmpeg+SDL2实现

    62020

    --渲染之EGL

    前言 我们在Andriod系统下做渲染时要使用 OpengGL ES, 而使用 OpengGL ES 就不得不提到 EGL。那么EGL是什么呢?它又在渲染时起到什么作用呢? 下图展示了 EGL 在渲染中的作用: ? Display(EGLDisplay) 是对实际显示设备的抽象。 这些信息包括可用颜色数,与配置相关的额外缓冲区(如深度和模板缓冲),Surface的类型和众多的其他特。 例如,它包含引用到顶和片段着色器的数组数据。在OpenGL ES 2可以绘制之前,需要先创建好EGLContext。

    32630

    --Android采集(Camera2)

    Camera2 介绍 今天为大家介绍一下如何在 Android 上进行采集。在 Android 系统下有两套 API 可以进行采集,它们是 Camera 和 Camera2 。 我今天主要给大家介绍一下如何使用 Camera2 进行的采集。原码可以在这里获取 Camera2 整体工作结构 ? 创建一个预览view,它可以是GLSurfaceView或TextureView(这两个View的区别我也会再写一篇文章来介绍),用于采集时观看采集到的结果。 通过以上的步骤,就可以从Camera设备中获取到了。我们还可以通过Android的MediaRecorder类将获取到的录制下来进行回看。 采用这种模式的优是可以大大提高APP的工作效率,缺是不那么直观,增加了一些学习和开发成本。

    57420

    --架构

    前言 今天和大家讲一下音架构。 之前的关注主要放在客户端如何采集音数据上,经过这两天的思考,我觉得应该先给大家讲一下音架构,这样更容易从整体上理解是如何运转的,之后再逐步的介绍每一个主题。 简单的音架构 ? 直架构 这种架构非常的简单,利用已经有的CDN网络如阿里,帝联,蓝讯等,自己再搭建一个信令服务器,这样就将服务层搭建好了。 接收端向信令服务器发指令,获取共享者共享的流名称,然后通过流名称从CDN网络拉取音流,再经过解码后渲染在屏幕上。 实时交互的音架构 ? 小结 实时互动直是未来的直趋势,大看可以看一下我另一篇文章音漫谈中的介绍。有了这个架构我们后面就可以逐步的给大家讲解每个主题。

    1.2K41

    漫谈

    前言 今天的给大家简单的介绍一下音主要应用于哪些产品, 以及这些产品都涉及到哪些,并简单讲一下每种的难,最后我想谈一谈音的未来。 这一已经在上面一节提到过了。 所以说,实时互动直泛娱乐化直门槛高了好几个级别。 漫谈 下面我们来讲一下音都用到了哪些。 说到音,我们最先想到的是音。 其实音它们的大体处理流程都是差不多的。一般都分为五大步: 数据采集,编码,传输,解码和渲染。 桌面共享,桌面共享可以用实现,也可以用VNC实现,相较而言,VNC优势更大。文档共享,比较简单的方式是将各种文档都转成jpg格式,更好的可以转成矢量图,这样图片进行放大,缩小时不会失真。 可以在用户接入设计上要考虑多接口,而在下发时要做限流控制,同时在客户端也要限制用户发消息的率。 桌面共享 桌面共享可以使用也可以使用VNC,相较而言VNC更占优势。

    37530

    「音」Android下H264编码

    前言 今天为大家介绍一下音中的编码。在移动端通过Camera采集到数据后,我们不会直接将它发送出去。 拿手机屏幕来说,1K屏与2K屏对于人眼来说是看不出来它们之间的区别的,也是同样的道理。基于以上理论,就有了的压缩编码,通过对的有损压缩来达到减少数据大小的目的。 目前缩码最常用的是 H264。其它的还有 H265,VP8, VP9等,但用的人还比较少,以后可以专门写一篇文章对他们做些介绍和对比。 编码结构与方式 下图是编码的结构,结构很清楚。 ? 缺是Android机型比较多,坑也比较多。软编正好与硬编相反,它的优是无论什么机型都一样处理。缺则是占用大量CPU资源。我们今天介绍的是硬件编码。 编码 编码就更简单了,就是一个死循环不断的从编码器中查询编码状态。如果编码状态大于0, 则说明现在已经有编好的数据了。 ? ......

    68220

    --YUV格式详解

    什么是YUV YUV(也称YCbCr)是电系统所采用的一种颜色编码方法。 YUV与RGB信号相比,最大的优在于只需占用极少的带宽,YUV只需要占用RGB一半的带宽。 对非压缩的8比特量化的来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。 对于planar格式,先连续存储所有像素的Y分量,紧接着存储所有像素的U分量,最后是所有像素的V分量。对于packed格式,每个像素的 Y、U、V 分量是连续交叉存储的。 YUV格式是做音的一个基本知识,所以这也是我音系列文章中的一节,希望大家喜欢,如有不足也请指正。 后面我还会有更多精彩的文章,也希望大家关注我的头条号。

    50830

    (4)-SDL放PCM

    SDL 是一套跨平台的音放框架,对齐了底层硬件的差异,开发者可以专注于音的处理,本文记录在iOS上使用SDL放pcm音裸数据的实现过程。pcm是音的裸数据。 image.png 代码编写,代码不多,100行左右即可实现,核心代码实现如下 执行流程: 初始化SDL --> 打开pcm文件-->调用SDL放-->SDL回调里取每一帧的放数据--> 当前线程等待pcm放完,然后再去取下一个缓存的数据 #import "AudioPlayerSDL2.h" static Uint32 audio_len; static Uint8 *audio_pos ); return 0; } 使用ffmpeg从mp4中提取pcm文件 提取:ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

    37520

    --的渲染与展示

    movive.jpg 前言 今天给大家介绍一下在Android系统下如何渲染与展示。 我们都知道一个直客户端对音的处理主要由以下几大部分组成:1. 数据采集; 2. 编码; 3. Andorid系统提供了几种不同的View用于的展示,它们分别是 SurfaceView, GLSurfaceView 和 TextureView。 Surface是个啥? 由于UI线程是主线程,如果的绘制也与UI放在一个线程中,那么它将严重影响主线程工作。所以Android又提供了其它View,这些View可以通过其它线程进行渲染。 这对于一些游戏、等性能相关的应用非常有益,因为它不会影响主线程对事件的响应。 像直中经常用到的美颜,水印等都可以通过它来处理。

    38430

    浅谈开发实时平台的

    前言 现在大大小小的公司,甚至个人开发者,都想开发自己的直网站或App,本文会帮你理清,开发平台,你需要注意哪些。 开源WebRTC能做实时吗? 跟现在动辄上十万的直相比,是不是弱爆了。 所以,别迷信 WebRTC,WebRTC只适合小范围(8人以内)音会议,不适合做直。 开发实时需要哪些? 面对这样的想法,只有一句话:少年,谦虚。 ? 如果你天赋异禀,一个人解决了以上问题。那么,你还需要解决传输问题。传输好坏,也就是是否延迟、卡顿,取决于网络条件好坏。 既然是手机直,插着电源和充电器实在说不过去吧。还有,CPU发烫会降,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,编解码还关联成本计算和网络对抗。 小结 以上的小结,确实能说明开发一个能用于生产环境的实时平台确非易事,跟IM里传统的实时音一样,这样的都是音编解码+网络传输的综合应用体,没有一定的积累,确实有很多坎需要迈过去

    1.1K20

    p2p有哪些优势?

    P2p有哪些优​‌‌已成为网络资源的主流趋势,放实现边下边完善用户体验,是一件十分重要的事情! p2p边下边在手机模式下,是完全和PC一样的,这个是已经被小编用自己的产品证实过(从PC到安卓和iOS手机都可以) p2p追求的是更好的用户体验,可以实现如下性能: 1、节省服务器带宽 ,降低成本 2、支持边下边 3、断续传 4、支持多源下载,下载极速体验 6、天然防盗链,比http安全太多 7、封装简单,容易集成到自己的项目

    1.4K00

    「音」Android下H264解码

    它用于打开MP4等媒体文件,并从中抽取出音数据。 打开媒体文件 MediaExtractor,音数据分离器。 每种媒体文件如MP4, FLV, MOOV等都是一种容器,里边存放了音数据和数据。MediaExtractor的作用就是根据容器协议打开容器,并读取其中的音数据。 在容器文件(MP4)中,音数据与数据是以轨道(�track)的概念存放的。取的是两条轨道永远不相交的意思,也就指明音数据与数据是分别存储的。 通过上面的步骤我们就选好了要处理的轨。下面我们来创建解码器。 如果是直系统,则是直接从网上获取数据。 在循环中不停的向解码器喂数据,并从解码器中取出解码后的数据。 参考 H264编码 ----

    79620

    HLS&直初探

    前端可选的协议大致只有两种: RTMP(Real Time Messaging Protocol) HLS(HTTP Live Streaming) 其中RTMP是Adobe开发的协议,无法在iPhone HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直。原理上是将流分片成一系列HTTP下载文件。 前端放HLS Native支持 Android 3.0+ iOS 3.0+ flash支持 Flowplayer(GPL ×) GrindPlayer(MIT) video-js-swf(Apache License 2.0) MediaElement.js(MIT) clappr(BSD IE10+ ×) 最后,由于MediaElement已经纳入WordPress的核心库,以及其良好的兼容性 mediaelement-and-player.js"></script> <script> var player = new MediaElementPlayer('#player1', { // 禁止击暂停

    1.6K50

    HLS&直初探

    本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载 前端可选的协议大致只有两种: RTMP(Real Time Messaging Protocol) HLS HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直。原理上是将流分片成一系列HTTP下载文件。 前端放HLS Native支持 Android 3.0+ iOS 3.0+ flash支持 Flowplayer(GPL ×) GrindPlayer(MIT) video-js-swf(Apache License 2.0) MediaElement.js(MIT) clappr(BSD IE10+ ×) 最后,由于MediaElement已经纳入WordPress的核心库,以及其良好的兼容性 mediaelement-and-player.js"></script> <script> var player = new MediaElementPlayer('#player1', { // 禁止击暂停

    59520

    相关产品

    • 播放器 SDK

      播放器 SDK

      播放器 SDK 基于腾讯云强大的后台能力与 AI 技术,提供视频点播和直播的强大播放载体。流畅稳定的播放性能,集广告植入、数据监测等功能于一身。覆盖多类应用场景,满足客户多样需求,让客户轻松聚焦于业务发展本身,畅享极速高清播放新体验。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券