#### 当视频直播可大致分为:
1. 视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。
2. 视频播放端:可以是电脑上的播放器,手机端的native播放器,还有就是h5的video标签等,目前还是已手机端的native播放器为主。
3. 视频服务器端:一般是一台nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。
#### 下面将利用ios上的摄像头,进行音视频的数据采集,主要分为以下几个步骤:
1. 音视频的采集,ios中,利用AVCaptureSession和AVCaptureDevice可以采集到原始的音视频数据流。
2. 对视频进行H264编码,对音频进行AAC编码,在ios中分别有已经封装好的编码库来实现对音视频的编码。
3. 对编码后的音、视频数据进行组装封包;
4. 建立RTMP连接并上推到服务端。
>视频编码:所谓视频编码就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式,我们使用的iphone录制的视频,必须要经过编码,上传,解码,才能真正的在用户端的播放器里播放。
***iOS 音视频采集与编码***:
软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等;
软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。
硬编码:性能高,低码率下通常质量低于软编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。
>编解码标准:视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,其中HLS协议支持H.264格式的编码。具体请移步至[iOS 音视频采集与编码](https://www.jianshu.com/p/11bb9f2a9233)
>音频编码:同视频编码类似,将原始的音频流按照一定的标准进行编码,上传,解码,同时在播放器里播放,当然音频也有许多编码标准,例如PCM编码,WMA编码,AAC编码等等,这里我们HLS协议支持的音频编码方式是AAC编码。
>:由于编码库大多使用c语言编写,需要自己使用时编译,对于ios,可以使用已经编译好的编码库。
>[x264编码](https://github.com/kewlbear/x264-ios)
>[faac编码](https://github.com/fflydev/faac-ios-build)
>[ffmpeg编码](https://github.com/kewlbear/FFmpeg-iOS-build-script)
简所谓推流,就是将我们已经编码好的音视频数据发往视频流服务器中,一般常用的是使用rtmp推流,可以使用第三方库`librtmp-iOS`进行推流,`librtmp`封装了一些核心的api供使用者调用,如果觉得麻烦,可以使用现成的ios视频推流sdk,也是基于`rtmp`的,[戳这里](https://github.com/runner365/LiveVideoCoreSDK)
![音视频采集与编码](https://github.com/PlatoJobs/PJAVedio_Editing/blob/master/PJAVedio_Gather/2301467-fbf45e58e543727c.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
iOS 音视频采集与编码:软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FP.zip (117个子文件)
libcrypto.a 12.9MB
libx264.a 5.09MB
libssl.a 2.3MB
librtmp.a 630KB
libfaac.a 541KB
nginx.conf 3KB
safestack.h 180KB
obj_mac.h 133KB
ssl.h 101KB
evp.h 52KB
asn1.h 51KB
x264.h 45KB
ec.h 45KB
x509.h 44KB
engine.h 40KB
objects.h 36KB
bn.h 35KB
tls1.h 34KB
bio.h 32KB
x509v3.h 32KB
ts.h 30KB
asn1t.h 29KB
ssl3.h 26KB
crypto.h 24KB
ocsp.h 23KB
symhacks.h 23KB
rsa.h 22KB
x509_vfy.h 22KB
pem.h 21KB
cms.h 19KB
asn1_mac.h 19KB
des_old.h 18KB
dso.h 18KB
pkcs7.h 18KB
ui.h 16KB
err.h 15KB
pkcs12.h 12KB
dsa.h 12KB
rtmp.h 11KB
des.h 11KB
ssl2.h 11KB
ecdsa.h 10KB
e_os2.h 10KB
dh.h 10KB
conf.h 10KB
lhash.h 9KB
dtls1.h 8KB
krb5_asn.h 7KB
sha.h 7KB
ossl_typ.h 7KB
opensslconf.h 6KB
srtp.h 6KB
kssl.h 6KB
seed.h 6KB
amf.h 5KB
modes.h 5KB
rand.h 5KB
aes.h 5KB
srp.h 5KB
blowfish.h 5KB
camellia.h 5KB
md5.h 5KB
md4.h 5KB
ecdh.h 5KB
buffer.h 5KB
cast.h 4KB
txt_db.h 4KB
hmac.h 4KB
idea.h 4KB
stack.h 4KB
rc2.h 4KB
ripemd.h 4KB
conf_api.h 4KB
mdc2.h 4KB
rc4.h 4KB
opensslv.h 4KB
ssl23.h 4KB
pqueue.h 3KB
ui_compat.h 3KB
cmac.h 3KB
faaccfg.h 3KB
pem2.h 3KB
faac.h 2KB
log.h 2KB
comp.h 2KB
http.h 2KB
PJRtmpManager.h 2KB
PJAudioManager.h 1KB
whrlpool.h 1019B
PJX264Manager.h 678B
ebcdic.h 540B
AppDelegate.h 280B
ViewController.h 218B
x264_config.h 199B
Contents.json 2KB
Contents.json 62B
PJRtmpManager.m 10KB
PJX264Manager.m 8KB
PJAudioManager.m 7KB
ViewController.m 5KB
共 117 条
- 1
- 2
资源评论
妄北y
- 粉丝: 9670
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功