FFmpeg之音视频相关概念

音视频参数

码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别
http://blog.csdn.net/xiangjai/article/details/44238005

音视频流程

整体流程
–>解协议(网络流媒体需要,本地不需要):将音视频从网络协议(RTSP/RTMP/HLS)中取出
–>解封装:将音视频从封装格式(MP4/RMVB,这些格式其实就是按照一定的格式放到一起)中取出;例如:FLV解封后取出H.264视频流和ACC音频流
–>解码:将音视频从压缩标准(H.264/ACC等)中解码出来,得到原始非压缩音视频数据如视频(YUV420P/RGB等)音频(PCM)
–>音视频同步


这里写图片描述
常用封装(MKV/MP4)与编码(H.264/ACC)对应表
这里写图片描述

视音频压缩原理(从YUV大文件到H.264小文件)

视频HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2
无损压缩:利用数据冗余(即各像素直接存在着很强的关联性)来进行压缩
有损压缩:利用视觉冗余(人眼对亮度等的辨别阙值)来进行压缩
音频AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3
有损压缩
当声音小于一定值人耳听不到则去掉
当强音信号和弱音信号同时出现,人耳也听不到去掉

本人测试13M的mp4(5s长度)解码为YUV大小是600多M;

网络协议

  • RTSP:rtp、rtcp协议,底层是udp;易丢包适合采用专线(eg:IPTV)
  • RTMP:底层TCP;目前flash都可以支持
  • HLS:苹果产品,基于HTTP底层TCP;采用将视频分成多段(每段几秒),延迟比较长
  • WebRTC
  • P2P

架构

  • 发布端
    • 编解码器H264+ACC
    • 开源软件OBS、Flash Media Live Encoder
  • 播发端
    • PC:VLC、Flash网页
    • 手机h5:rtmp转hls
    • APP:ffmpe
      –> ffmpeg负责编解转码(OPENSL ES/OPENGL ES负责播放音/视频,它们是android底层提供的;此外也可以用SDL)

开源框架

  • SRS(Simple Rtmp Server):支持RTMP
  • CRTMP:支持RTSP/RTMP/HLS;流媒体服务器
  • nginx-rtmp
  • red5
  • FMS(adobe产品 Flash Media Server 收费)

本人的理解,视频原始的YUV等数据,经过压缩打包成H264格式数据,最后再将音视频等排序便是我们熟知的MP4等格式了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值