音视频开发
文章平均质量分 80
ReyZhang
专注移动ios平台的软件开发,多年的一线研发经验,实战经验丰富,只为你呈现有价值的信息。据说关注我的人,都薪资翻倍了[笑脸]
展开
-
iOS 视频边下边播(缓存,预加载)
背景在有多个视频链接需要连续切换播放时,视频播放之前要等待视频资源加载完成,切换视频时需要等待很久,已经播放过的视频也需要重新加载才能再次播放,影响用户体验。优化点边下边播:视频播放时,不受网络状况限制,播放流畅缓存:已经播放过的视频,将视频资源缓存在本地,再次播放时直接读取缓存预加载:切换视频时,无缝衔接,视频秒播实现方案本地代理服务器在iOS本地开启Local Server服务,然后使用播放控件请求本地Local Server服务,本地的服务再不断请求视频地址获取视频流,本地服务请求转载 2022-04-13 10:57:01 · 5754 阅读 · 0 评论 -
iOS 直播流程概述
写在前面本文目的在于带大家了解一场直播背后,需要经历哪些阶段,以及每个阶段都做了哪些工作,才能够把主播的声音画面送到观众的面前。我们把直播的流程划分为以下六个阶段:采集处理编码封装网络传输播放下面来一一介绍。1.采集采集又分为视频采集、音频采集。一般来说,我们会借助系统 api 来实现这一部分的工作。以 iOS 为例,需要用到 AVFoundation框架来获取手机摄像头拍到的视频数据,或者使用 ReplayKit 录制屏幕,以及麦克风收集到的音频数据。视频采集:摄像头核心类.转载 2022-03-09 16:41:15 · 1379 阅读 · 0 评论 -
WebRTC Native 源码导读 - API 概览
第一次看到 WebRTC 这个词是 15 年在一期 Android Weekly 中,但当时完全看不懂它在讲什么,也就没有深究。两年后,我开始搞起 WebRTC,并整理出了一套开箱即用的 WebRTC 开发环境,距今又过了一年多。按常理,这篇文章要介绍的内容本应最先呈现,但我搞 WebRTC 的路线略微反常,由于没有实际使用的需求,所以我先是研究了不少模块的实现原理。但随着接触到更多内容,我越来越意识到,如果没有一个清晰的全局观,那效率将会越来越低,因此也就有了这篇文章。鉴于目前我对 WebRTC 的了转载 2022-03-08 11:26:26 · 855 阅读 · 0 评论 -
WebRTC Native 源码导读 - iOS 相机采集实现分析
说明WebRTC的相机采集主要涉及到以下几个类:AVCaptureSessionRTCCameraVideoCapturerRTCVideoFrameAVCaptureSession 是 iOS 和 macOS 系统提供的采集管理类,位于 AVFoundation.framework 中,在 RTCCameraVideoCapturer 中完成了对 AVCaptureSession 的使用,RTCVideoFrame 则是对视频数据的封装。本文的分析基于 WebRTC 的 #23295 提交转载 2022-01-11 17:31:13 · 716 阅读 · 0 评论 -
使用 GPUImage 实现一个简单相机
本文介绍了如何使用 GPUImage 来实现一个简单的相机。具体功能包括拍照、录制视频、多段视频合成、实时美颜、自定义滤镜实现等。前言AVFoundation是苹果提供的用于处理基于时间的媒体数据的一个框架。我们想要实现一个相机,需要从手机摄像头采集数据,离不开这个框架的支持。GPUImage 对 AVFoundation 做了一些封装,使我们的采集工作变得十分简单。另外,GPUImage 的核心魅力还在于,它封装了一个链路结构的图像数据处理流程,简称滤镜链。滤镜链的结构使得多层滤镜的叠加功能变得很.转载 2022-01-09 21:03:19 · 817 阅读 · 0 评论 -
VLCKit实现仿网易云音乐播放音乐
iOS仿网易云音乐iOS-VLCKit实现仿网易云音乐播放音乐(一)iOS-VLCKit实现仿网易云音乐播放音乐(二)iOS-VLCKit实现仿网易云音乐播放音乐(三)前言最近做项目遇到需要播放音频的功能,通过查找资料,最终选择了VLCKit来实现。VLC - 一款功能强大的全平台播放器,几乎支持所有格式的音频、视频文件的播放集成方式1、 按照wiki的说明去自己编译:[https://wiki.videolan.org/iOSCompile]2、cocoapods方式通过pos se转载 2021-12-27 17:47:08 · 703 阅读 · 0 评论 -
如何快速的开发一个完整的iOS直播app
目录【如何快速的开发一个完整的iOS直播app】(原理篇)【如何快速的开发一个完整的iOS直播app】(播放篇)【如何快速的开发一个完整的iOS直播app】(采集篇)【如何快速的开发一个完整的iOS直播app】(美颜篇)【如何快速的开发一个完整的iOS直播app】(推流篇)【如何快速的开发一个完整的iOS直播app】(礼物篇)【如何快速的开发一个完整的iOS直播app】(点赞篇)前言大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了转载 2021-12-26 22:44:09 · 1062 阅读 · 0 评论 -
iOS视频拖动预览及裁剪
前言想做一个微信朋友圈上传视频时视频裁剪编辑类似的功能,拖动视频和拖动裁剪范围,本来以为做起来很简单,但是实际操作中在优化上面还有很多改进。一、视频封面截取进入界面之后,首先要生成区域2的视频的缩略图//截图- (UIImage*)getVideoPreViewImageFromVideoPath:(NSString*)videoPath withAtTime:(float)atTime { if (!videoPath) { return nil; }转载 2021-12-23 10:57:25 · 1142 阅读 · 0 评论 -
WebRTC多人音视频聊天架构及实战
三种模式简单介绍一下基于 WebRTC 的多人通信的几种架构模式。1.Mesh 架构我们之前写过几个 1 v 1 的栗子,它们的连接模式如下:这是典型的端到端对等连接,所以当我们要实现多人视频(实际上也就是多端通信)的时候,我们会很自然的想到在 1 v 1 的基础上扩充,给每个客户端创建多个 1 v 1的对等连接:这就是所谓的 Mesh模式,不需要额外的服务器处理媒体数据(当然,信令服务器是不可少的),仅仅是基于 WebRTC 自身的点对点连接进行通信,本期的实例也是采用这种模式。但是转载 2021-12-21 16:29:41 · 3549 阅读 · 0 评论 -
iOS端 使用WebRTC实现1对1音视频实时通话
前言之前,我已经写过 Android 端实现1对1音视频实时通话 的文章。在那篇文章中,我向大家介绍了在 Android 端是如何使用 WebRTC 进行音视频通话的。今天,我们再来看看 iOS 端1对1音视频实时通话的具体实现。iOS 端的实现逻辑与 Android 端基本相同,最大的区别可能是语言方面的差异啦!所以,下面我基本上还是按照介绍 Android 端一样的过程来介绍 iOS 端的实现。具体步骤如下:权限申请引入 WebRTC 库采集并显示本地视频信令驱动创建音视频数据通道媒体转载 2021-12-09 17:19:53 · 4119 阅读 · 0 评论 -
WebRTC SDP和Candidate消息格式
SDP 和candidate消息生成代码1- ICE消息生成及发送ICE消息触发是由 webrtc 原生API RTCPeerConnection 中onicecandidate事件传出,在经过rtcpeerconnection做了一定的记录处理,然后触发’ice’事件将ice内容传到Peer 对象中,Peer对象再调用信令服务器接口将candidate消息发送出去。 而onicecandidate事件触发来自 icecandidate事件,而icecandidate 是由RTCPeerConnecti转载 2021-12-10 16:15:42 · 1556 阅读 · 0 评论 -
iOS 基于WebRTC的音视频通信 总结篇(2020年最新)
前言公司要用webrtc进行音视频通信, 参考了国内外众多博客和demo, 总结一下经验:webrtc官网webrtc对iOS使用的说明另外一个帮助大家很好理解webrtc的单独实例demo: https://github.com/Xianlau/WebRTC_Demo先展示demo效果图WEBRTC结构完整的WebRTC框架,分为 Server端、Client端两大部分。Server端:Stun服务器 : 服务器用于获取设备的外部网络地址Turn服务器 : 服务器是在点对点失败后用转载 2021-12-03 14:29:46 · 3031 阅读 · 0 评论 -
直播App架构及思维导图
转载 2021-11-23 14:06:57 · 1366 阅读 · 0 评论 -
流媒体知识核心概念- 思维导图
转载 2021-11-22 14:23:47 · 227 阅读 · 0 评论