首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移动端音频视频入门 原

移动端音频视频入门 原

作者头像
晓歌
发布2018-08-15 14:31:22
发布2018-08-15 14:31:22
1.2K00
代码可运行
举报
文章被收录于专栏:破晓之歌破晓之歌
运行总次数:0
代码可运行

课程地址:https://www.imooc.com/learn/959

一、万人直播架构与CDN网络

1.直播分类

与固话互联,要求延迟不超过400毫秒

2.泛娱乐化直播架构

cdn最重要

3.实时互动直播架构

tcp协议是可靠的流式传输协议——A向B发送数据,必须收到且是有序的

发送,确认,超时,重发

可以重发三次,每次等待超时的时间都是成倍增长。如果网络不好的话,等待时间就会很长

tcp不可能达到实时传输效果

使用UDP来传输,一直发包,至于是否收到,不管

基于音视频数据是有实时有效性的,所以选择UDP来达到实时互动效果

udp没有现成网络,要自己创建

服务端多节点,一旦一个节点出现问题,可以快速切换到另一个节点,每个节点负载均衡

每个节点都要定时向控制中心报告数据

内总线-保证数据安全

通过内部总线传到媒体服务器上,cdn网络使用rtmp协议,媒体服务器起到转换作用,从rtp到rtmp

用户获得cnd的流,直接观看

4、CDN网络介绍

CDN:为了解决用户访问网络资源慢而出现的

链路过长,运营商各自利益

用户访问资源流程

电信用户通过DNS或者http先找到就近边缘节点,如果数据没有,直接到主干节点,看资源是在哪提供的服务,如果是在联通上,就会到联通的主干节点上访问,如果数据没有,就会到联通的源节点上,如果找到数据,再通过原节点返回。如果是第一个用户,就会走很长时间,如果其他用户也访问此数据,那么数据就会缓存到边缘节点上,可以直接从边缘节点上直接访问,加快速度

传统的cdn网络会追求一些热点,将一些热点放到缓存里

对于直播的cnd网络,一般会通过源直接push到主干节点,让数据都存在,与推拉是相结合的

5.亲手搭建一套简单的直播系统

ffmpeg-常见音视频格式转化库,音视频抽取(eg:小咖秀),视频上打水印,去水印,倍速播放,音视频剪辑

ffplay-播放器,命令行的。基于ffmpeg做的二次开发

flashplayer-播放rtmp流的,可以对rtmp协议做分析

安装时间会长一些,nginx服务默认不包括rtmp服务

工作处理器个数:1

事件里的连接数:1024

配置文件增加rtmp的配置项

端口:1935

音视频传输,每个块大小:4000字节

指定一个特殊应用:live

应用打开,关闭录制,允许任何人向我发起请求

wq!退出

代码语言:javascript
代码运行次数:0
运行
复制
nginx -s reload

重启服务

代码语言:javascript
代码运行次数:0
运行
复制
nginx

如果是第一次,直接启动就可以

查看是否有1935端口

代码语言:javascript
代码运行次数:0
运行
复制
netstat -an |grep 1935

使用tcp协议,使用ipv4

-i是输入

(1)通过ffmpeg方法

讲一个直播地址上的音视频流推送到本地上

http://bbs.chinaffmpeg.com/1.swf

输入所要拉流的服务器地址

播放

(2)通过ffplay播放

代码语言:javascript
代码运行次数:0
运行
复制
ffplay rtmp://localhost:1935/live/room

(3)通过手机推流

通过手机推送到了mac本上,通过ffplay再从流媒体上抓取音视频流

有两个终端观看

二、音频入门

1.声音三要素

越接近正弦波,声音一般越好听,畸形或产生噪波

音频压缩,就可以采集到很多数据,砍掉人类听不见的,减少数据存储量

2,音频的量化与编码

低频20hz,在44.1k采样频率里,每秒采样2k次

高频20000hz,在44.1k采样频率里,每秒采样2次

3.音频压缩

发声之前的50毫秒如果有个声音特别小,就会被遮盖掉

发生后的100毫秒也会被遮盖

4.音频编码jiema器选型

实时互动系统可以用opus

泛娱乐化直播一般使用AAC,opus一般不支持,推广上有些困难

两个系统融合,需要将opus与AAC互转

speex:回音消除,降噪模块等可实现

G.711:有些会与固话相联系,固话用的就是G.711,或者G.722

绿色:开源且不收费

蓝色:不开源不收费

红色:不开源收费

5.AAC讲解

(1)为什么重点介绍AAC

应用范围广,直播系统90%以上使用

传输协议,像cdn,支持rtmp,但是不支持opus

AAC的音频编解码可以保持高保真

(2)AAC出现的原因

SBR:降低低频的采样率,提高对高频的采样率,降低大小,提高音质

ps:把立体声保存,一个声道完整保存,另一个声道只存差异部分

AAC HE:码率64k

AAC HE V2:,码率32k

rtmp和flv中都有adts的格式

三、视频入门

1.视频基础知识

一般视频文件在30帧左右,比较高级的要求较高的在60帧

压缩,B帧比率高。缺点:实时互动需要参考后帧,与网络息息相关,如果网络不好就要重传

一般实时互动都不会使用B帧

泛娱乐化可以使用B帧

一个I帧和另一个I帧之间成为一组帧,GOF

在一组帧之前,首先会收到sps和pps,如果没有这两个参数是没法解码的

直播里如果用x265,会占用很好的cpu,一般不用,点播里可以用

openH264支持svc传输,svc技术:如果网络差就发最小的,还可以就发中间的,网络好就都发..移动端不能再使用硬编,只能使用软编,可能会占用资源,发烫

硬编占用网宽,软编考验移动端,这是个取舍问题

google推出的:vp8对应x264,vp9对应x265

2.H264的划分和帧分组

傅里叶变换:将复杂的波形图编程多个正弦波

CABAC压缩:无损压缩

3.视频压缩技术详解

(1)帧内压缩技术

(2)DCT压缩(整数余弦变换)

(3)VLC压缩

4.H264结构与码流

拆包,通过nal层处理

5.NAL单元

6.YUV讲解

比rgb(8:8:8)节省存储空间

pc端:  I420,

ios:   NV12

安卓:NV21

四、课程总结

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、万人直播架构与CDN网络
    • 1.直播分类
    • 2.泛娱乐化直播架构
    • 3.实时互动直播架构
    • 4、CDN网络介绍
      • 用户访问资源流程
    • 5.亲手搭建一套简单的直播系统
      • (1)通过ffmpeg方法
      • (2)通过ffplay播放
      • (3)通过手机推流
  • 二、音频入门
    • 1.声音三要素
    • 2,音频的量化与编码
    • 3.音频压缩
    • 4.音频编码jiema器选型
    • 5.AAC讲解
      • (1)为什么重点介绍AAC
      • (2)AAC出现的原因
  • 三、视频入门
    • 1.视频基础知识
    • 2.H264的划分和帧分组
    • 3.视频压缩技术详解
      • (1)帧内压缩技术
      • (2)DCT压缩(整数余弦变换)
      • (3)VLC压缩
    • 4.H264结构与码流
    • 5.NAL单元
    • 6.YUV讲解
  • 四、课程总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档