网站深度测评
Bison的技术博客是什么网站?
Bison的技术博客(allluckly.cn)是一个面向 iOS 开发者的中文技术博客,定位在“自学 iOS 开发进阶”,内容以 iOS 开发技术、疑难问题和第三方开源框架分享为主。
内容与用途
- 覆盖 iOS 开发,关键词包括 Swift、OC、iOS 开发技巧、开源框架。
- 文章偏实战记录,例如 FFmpeg 相关主题:获取摄像头麦克风、推流器封装、H.264 解码。
- 适合谁:正在自学 iOS、想找具体问题解法或开源框架参考的开发者。
- 什么场景用:遇到编译、音视频、推流解码等具体问题时按主题检索。
和同类站点比
它更像个人实战笔记,而不是系统课程或问答社区。想系统学基础可以配合 Apple Developer 官方文档;遇到报错想找多人讨论,可以配合 Stack Overflow。Bison 博客的侧重点是作者自己在 iOS、FFmpeg 等方向踩坑后的整理。
下一步
先看文章列表里是否有你当前的技术栈(如 FFmpeg、Swift),有就直接按主题读;没有就把它当作补充参考,不必当作完整教程。
在iOS上如何用FFmpeg获取摄像头和麦克风?
在 iOS 上用 FFmpeg 获取摄像头和麦克风,核心是先把音视频采集交给 AVFoundation,再把采集到的原始帧通过 FFmpeg 的 AVFormatContext / AVCodecContext 封装或编码。Bison的技术博客 里有一篇《FFmpeg-iOS获取摄像头麦克风》,讲的就是这个流程,作者提到“代码很少”,后面再补充 iOS 端的采集细节。
具体做法
- 视频:用
AVCaptureSession配置AVCaptureDevice(前置/后置摄像头),通过AVCaptureVideoDataOutput拿到CMSampleBuffer,再转成AVFrame喂给 FFmpeg。 - 音频:用
AVCaptureAudioDataOutput或AVAudioEngine采集麦克风,同样把 PCM 数据填进AVFrame。 - FFmpeg 侧:初始化
AVFormatContext,用avformat_alloc_output_context2创建输出上下文,注册对应的编码器(如 H.264/AAC),把AVFrame送去编码或直接封装。
适合谁
- 正在做 iOS 推流、直播、录制的开发者。
- 已经会 AVFoundation 基础采集,但想把数据接入 FFmpeg 做编码/推流的人。
- 跟着 Bison 博客里 FFmpeg-iOS 系列(获取摄像头麦克风、推流器封装、H.264 解码)一起看,能串起采集到推流的完整链路。
下一步
先跑通“采集 → 拿到 CMSampleBuffer → 转 AVFrame”这一步,再对照博客里的推流器封装把编码和输出接上。如果只是本地录制,也可以先用 AVAssetWriter 验证采集是否正常,再换 FFmpeg 做更灵活的封装。
FFmpeg-iOS推流器怎么进行简单封装?
该站把 FFmpeg-iOS 推流封装拆成三篇递进内容:先取摄像头/麦克风,再做推流器简单封装,最后讲 H.264 解码。封装思路是围绕“采集 → 编码 → 推流”分层,把 FFmpeg 的 C 接口包成 Objective-C/Swift 可调用的类。
典型使用场景
- 你在做 iOS 直播或录屏推流,需要自己控制采集和编码参数,而不是直接用现成 SDK。
- 你已经能在 iOS 上编译出 FFmpeg 库,但不想在业务代码里到处写
av_register_all、avformat_alloc_output_context2这类调用。 - 你想先跑通一个最小推流链路,再逐步加美颜、水印、重连。
封装可以怎么分层
- 采集层:单独一个类负责 AVCaptureSession,输出音视频原始数据。
- 编码层:把 H.264/AAC 编码参数、时间戳、关键帧判断收在一起。
- 推流层:封装 RTMP 连接、
av_interleaved_write_frame、断线重连和错误码。 - 对外只暴露 start/stop/push 这类方法,FFmpeg 结构体留在实现文件里。
选择条件
- 如果你的目标是快速上线,优先评估成熟推流 SDK;自封装更适合需要深度定制、可控成本或学习目的。
- 如果只做本地文件封装,不必引入 RTMP 推流封装,直接用
avformat写文件即可。 - 参考该站时注意文章时间较早(2017 年),FFmpeg API 与新版有差异,接口名和注册函数需要按当前版本调整。
下一步动作 先看该站“FFmpeg-iOS获取摄像头麦克风”把采集跑通,再对照“FFmpeg-iOS推流器的简单封装”看它的类划分,最后用“FFmpeg-iOS的H.264解码”理解解码侧,形成完整闭环。若想补充 FFmpeg 通用用法,可参考 FFmpeg 官方文档;iOS 采集细节可查 Apple Developer。
iOS中FFmpeg的H.264解码如何实现?
该网站有直接相关的实操文章:Bison的技术博客 的「FFmpeg-iOS的H.264解码」,同系列还有「FFmpeg-iOS获取摄像头麦克风」和「FFmpeg-iOS推流器的简单封装」。这三篇连起来正好覆盖采集→解码→推流的完整链路。
在这套资料里能拿到什么
- 主题:iOS 平台上用 FFmpeg 做 H.264 解码,属于该博客 FFmpeg 分类下的内容。
- 前置条件:作者先写了「Mac编译ffmpeg获取FFmpeg-iOS」,说明解码是建立在自行编译出的 FFmpeg-iOS 库之上的。
- 配套内容:采集(摄像头/麦克风)和推流器封装,说明解码不是孤立环节,而是推流方案的一环。
适合谁、什么情况下用
如果你正在做 iOS 端的 RTMP/RTSP 推流或播放器,需要把 H.264 裸流还原成图像,这类文章属于“边做边查”的参考:先按编译篇把库跑起来,再对照解码篇的代码结构接入自己的工程。
具体建议
- 先看编译篇,确认 FFmpeg-iOS 的静态库/头文件在 Xcode 工程里链接正常,否则解码代码无法编译。
- 再看 H.264 解码篇,重点看它如何组织 AVCodecContext、AVPacket 到 AVFrame 的流程。
- 最后对照推流器封装篇,理解解码后的帧如何进入渲染或编码环节。
同类参考
- 官方文档 FFmpeg:查
avcodec_send_packet/avcodec_receive_frame等 API 的权威定义,博客文章通常不会覆盖所有参数分支。 - GitHub:搜 iOS + FFmpeg 的开源播放器或推流 demo,用可运行工程对照博客里的片段代码。
Mac上如何编译适用于iOS的FFmpeg?
Bison的技术博客里有专门讲 Mac 编译 FFmpeg 获取 FFmpeg-iOS 的文章,适合按它的步骤在 Mac 上编译出适用于 iOS 的库。
具体能参考什么
该博客的 iOS 开发分类下,FFmpeg 相关文章包括:
- Mac编译ffmpeg获取FFmpeg-iOS
- FFmpeg-iOS获取摄像头麦克风
- FFmpeg-iOS的H.264解码
- FFmpeg-iOS推流器的简单封装
如果你要的是“编译出 iOS 可用的 FFmpeg 库”,优先看第一篇;后续几篇适合编译完成后继续做采集、解码和推流。
适合谁在什么情况下用
- 正在自学 iOS 开发,想跑通 FFmpeg 在 iOS 上的编译流程。
- 需要做音视频采集、H.264 解码或推流,准备先拿到 FFmpeg-iOS。
- 已经会 OC/Swift 基础,但没在 Mac 上编译过 FFmpeg。
下一步
打开 Bison的技术博客,在 FFmpeg 分类或站内搜索“Mac编译ffmpeg获取FFmpeg-iOS”,按文章步骤操作。编译成功后,再接着看它的摄像头麦克风、H.264 解码和推流封装文章。
iOS开发进阶应该学习哪些内容?
iOS开发进阶,核心是从“会用 UIKit 搭界面”转向“理解底层机制、能处理音视频/性能/架构问题”。Bison的技术博客的内容也偏这个方向:除常规 iOS 技术外,站内就有一组 FFmpeg-iOS 文章,涉及获取摄像头麦克风、H.264 解码和推流器封装。
建议覆盖的学习内容
- 语言与运行时:Swift 进阶(泛型、协议、并发)、Objective-C 运行时、内存管理(ARC、循环引用、weak/unowned)。
- 框架原理:UIKit 与 SwiftUI 的渲染流程、响应链、RunLoop、多线程(GCD、Operation、Swift Concurrency)。
- 性能与稳定性:启动优化、卡顿与掉帧分析、内存泄漏排查、崩溃符号化、Instruments 使用。
- 架构与工程化:MVVM、分层与模块化、依赖注入、组件化、CI/CD、单元测试与 UI 测试。
- 专项方向:音视频、图形渲染、网络底层、安全加固等,按目标岗位选一到两个深入。
什么情况下优先学哪块
| 你的目标 | 优先补 |
|---|---|
| 进中大厂做业务开发 | 运行时、内存、性能优化、架构 |
| 做音视频/直播 | FFmpeg、编解码、推流、Metal/OpenGL |
| 做基础架构/组件化 | 模块化、依赖管理、编译构建、CI |
怎么用这类博客
以 Bison的技术博客 为例,它的 FFmpeg-iOS 系列适合已有 iOS 基础、想切入音视频的人:先跟着做“获取摄像头麦克风”,再理解“H.264 解码”,最后看“推流器封装”,形成一条从采集到传输的链路。同类可搭配 Apple Developer 官方文档打底,GitHub 上找对应开源项目对照源码。
下一步动作:先选一个专项(如音视频),用两周把采集、解码、推流各跑通一个最小 Demo,再回头补运行时和性能这些通用底层。
用户评价(0)