瑜艾

路漫漫其修远兮

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等格式了。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoru5127/article/details/51545301
个人分类: 音视频
上一篇FFmpeg之零概述(待续)
下一篇Android:View体系①----事件传递
想对作者说点什么? 我来说一句

瀑布流加载

2018年03月13日 118KB 下载

网络精英出版系统 v2.0 For ASP.NET

2003年01月13日 1.33MB 下载

ffmpeg合并视频

2015年05月14日 28.32MB 下载

利用ffmpeg视频进行分割

2016年07月25日 12.38MB 下载

ffmpeg合成视频

2017年10月13日 51.2MB 下载

ffmpeg视频处理下载

2018年04月17日 50.07MB 下载

ffmpeg实现的视频分割

2017年09月04日 14.2MB 下载

没有更多推荐了,返回首页

关闭
关闭