关闭

FFmpeg之音视频相关概念

标签: 视频音频android概念
246人阅读 评论(0) 收藏 举报
分类:

音视频参数

码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别
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等格式了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12836次
    • 积分:358
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:1篇
    • 译文:0篇
    • 评论:7条
    最新评论