xiaopingsun.github.io's People
xiaopingsun.github.io's Issues
iOS 使用 AudioToolBox 编码 MPEG4-AAC - XpSun's Blog
https://pursue.show/2022/05/04/iOS-%E4%BD%BF%E7%94%A8-AudioToolBox-%E7%BC%96%E7%A0%81-MPEG4-AAC/
前言 上一篇使用 Audio Unit 实现了麦克风数据的采集,下一步需要将音频数据送到编码器编码,一般 RTMP 协议使用的音频编码格式是 AAC,而恰好苹果的 Core Audio 下有提供给我们音频格式转换的工具 - AudioConvertRef。 实现思路 AudioConvertRef 接口比较简单,AudioConverterNewSpecific 函数指定编码器类型和输入输出的 A
Hello World - XpSun's Blog
https://pursue.show/2022/03/31/hello-world/
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick
iOS 使用 OpenGLES 实现相机画面镜像 - XpSun's Blog
前言 上一篇 使用 OpenGLES 渲染相机预览画面 实现了自定义相机画面渲染,使用自定义的图层替代了 AVFoundation 默认渲染图层,但还需要考虑的是预览和编码镜像的问题。由于现在图层使用的 Buffer 数据来自 AVCaptureVideoDataOutput ,我们可以通过设置 AVCaptureVideoDataOutput 链接的 AVCaptureConnection 的
Mac环境编译rtmpdump - XpSun's Blog
https://pursue.show/2021/09/16/Mac%E7%8E%AF%E5%A2%83%E7%BC%96%E8%AF%91rtmpdump/
前言最近一直在学习流媒体的 rtmp 协议,想结合 librtmp 的源码看下协议具体实现,但下载后 make 发现各种问题,而且项目里没有 configure 和 cmake,只有一个 Makefile,所以又补习了 Makefile 的常用写法,这个Makefile教程相当不错,可以当做小手册来查。 踩坑开始首先准备 github 环境,将 rtmpdump 工程 clone 到本地 http
iOS 使用 OpenGLES 渲染相机预览画面 - XpSun's Blog
前言 上一篇有提到 使用 AVFoundation 采集相机画面,并渲染到苹果内置的 AVCaptureVideoPreviewLayer 图层上,代码很简单,但使用上有很大局限性。AVCaptureSession 采集到的原始视频帧直接给到了 AVCaptureVideoPreviewLayer 用于渲染,我们没办法在中间环节处理视频帧数据,美颜滤镜也就没办法实现,所以我们需要借助 OpenGL
友链 - XpSun's Blog
SRWebSocket源码分析记录 - XpSun's Blog
https://pursue.show/2022/04/03/SRWebSocket%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E8%AE%B0%E5%BD%95/
前言 今天是 2022 年 4 月 3 日,博客搭建完成后已经大半年没有记录过了,上次是去年 9 月份,接着 10 月初转岗到 SDK 部门,到今年 3 月底离职,刚好半年时间。这半年好像忙的也没有什么时间静下来写写博客,借着疫情居家这段时间,重新搭了下博客页面,打算好好记录一下,学到的技术和日常生活。说到 webSocket,其实背景是七牛的实时音视频 SDK 使用了 SRWebSocket 与
读书笔记之《费曼学习法 - 用输出倒逼输入》 - XpSun's Blog
前言 费曼简介 理查德·菲利普斯·费曼(英语:Richard Phillips Feynman,1918年5月11日-1988年2月15日),美国理论物理学家,以对量子力学的路径积分表述、量子电动力学、过冷液氦的超流性以及粒子物理学中部分子模型的研究闻名于世。因对量子电动力学的贡献,费曼于1965年与朱利安·施温格及朝永振一郎共同获得诺贝尔物理学奖。 以上描述摘自维基百科,费曼作为诺奖得主对量子动
iOS 使用 AudioUnit 采集麦克风音频数据 - XpSun's Blog
前言 提到 iOS 的音频,首先想到的是苹果提供的 Core Audio。Core Audio 其实是一个抽象的概念,它包含平台下所有音频相关的类库,包括 AVFoundation、Audio Queue Services、Audio Unit、OpenAL 等等。我们这次需要实现一个音频采集类,采集麦克风的原始数据给到推流 SDK 的 codec 做编码,可实现的方式有很多种,可以用 AVFou
iOS 使用 VideoToolBox 编码 H.264 - XpSun's Blog
https://pursue.show/2022/05/06/iOS-%E4%BD%BF%E7%94%A8-VideoToolBox-%E7%BC%96%E7%A0%81-H-264/
前言 上一篇使用了 AudioToolBox 将音频数据编码成 AAC,这次的需求是将视频帧编码成 H264。在 iOS 8.0 之前,如果要在 iOS 平台上硬编码 H264 只能使用 AVAssetWriter 的野路子"曲线救国",先利用系统硬编将视频帧写到本地 mp4 文件里,然后需要自己写逻辑去 mp4 的 Box 里读取 sps、pps 和 NALU 数据,会有频繁
iOS 使用 AVAssetWriter 实时写入视频流 - XpSun's Blog
前言 好久没写博客了,这段时间几乎所有的精力都用在适应新工作上了,今天难得有些时间可以把这段时间做的需求整理一下,记一记写一写,加深下记忆吧。这个需求是在渲染引擎里加入录屏功能,将引擎渲染的纹理和麦克风采集的声音写入到本地 mp4 文件。 实现方法 可以将视频、音频分开录制,AVAssetWriter 将底层引擎回调的 RGB 数据写成 mp4 文件,使用 VideoToolBox 录制一路音频
new
test
FLV 协议封装 - XpSun's Blog
https://pursue.show/2022/05/10/FLV-%E5%8D%8F%E8%AE%AE%E5%B0%81%E8%A3%85/
前言 这篇简单记录一下 FLV 的封装过程。 FLV 封装格式简介 FLV(Flash Video)是 Adobe 公司设计开发的一种流行的流媒体格式,由于其视频文件体积轻巧、封装简单等特点,使其很适合在互联网上进行应用。此外,FLV 可以使用 Flash Player 进行播放,而 Flash Player 插件已经安装在全世界绝大部分浏览器上,这使得通过网页播放FLV视频十分容易,FLV封装格
使用 AVFoundation 采集相机画面 - XpSun's Blog
前言 需求是从 iOS 内置相机采集视频画面,在手机屏幕上预览并获取视频原始数据,使用的是苹果自带框架 AVFoundation。 相机权限获取 配置 Info.plist 权限描述 根据苹果官方文档建议,如果 App 需要使用到系统硬件采集,需要在 Info.plist 文件添加相关权限使用的描述: Configure Your App’s Info.plist File iOS requir
使用 RTMP 协议传输 - XpSun's Blog
https://pursue.show/2022/05/12/%E4%BD%BF%E7%94%A8-RTMP-%E5%8D%8F%E8%AE%AE%E4%BC%A0%E8%BE%93/
前言 Adobe 公司的实时消息传输协议 (RTMP) 通过一个可靠地流传输提供了一个双向多通道消息服务,意图在通信端之间传递带有时间信息的视频、音频和数据消息流。RTMP 是建立在 TCP 连接基础上的应用层协议,TCP 连接成功后需要再在应用层做一次握手,握手成功后客户端和服务端就可以开始交换消息了。 librtmp 是依据 RTMP 协议标准实现的开源库,使用起来比较简单。我们依赖的是某互联
Hexo Markdown常用语法总结 - XpSun's Blog
https://pursue.show/2021/09/15/Markdown%E5%B8%B8%E7%94%A8%E8%AF%AD%E6%B3%95/
基础语法字体标题 使用底线的语法 12我是一级标题========= 或 12我是二级标题--------- 注:这种语法只支持两级标题 使用#的语法(推荐) 123456# 我是一级标题## 我是二级标题### 我是三级标题#### 我是四级标题 ##### 我是五级标题###### 我是六级标题 注:这种语法只支持六级标题 粗体和斜体 粗体格式的语法如下1加粗内容(推荐
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.