美文网首页iOS进阶之路
IOS-播放器开发(1)-视频基本原理

IOS-播放器开发(1)-视频基本原理

作者: 康小曹 | 来源:发表于2018-08-08 10:52 被阅读47次
播放器播放视频流程
image.png
流媒体

所谓流媒体是指采用流式传输的方式在Internet/Intranet播放的媒体格式,如音频、视频或多媒体文件。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,在计算机中对数据包进行缓存并使媒体数据正确地输出。流媒体的数据流随时传送随时播放,只是在开始时有些延迟。

流媒体协议

服务器和客户端之间通信遵守的协议,如RTP/RTCP/RTSP/RTMP/MMS/HLS
备注:播放本地视频不需要解协议

封装/解封装(demux/mux)

把视频码流和音频码流按照一定的格式存储在一个文件中
封装格式:mp4、rmvb、avi、flv、mkv等


image.png
视频编码/解码(code/encode)

视频编码是一种压缩标准,主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。


image.png

对比:MPEG4(MPEG-4 && MP4
MPEG4(MPEG-4)是一种编码标准(code),mp4是一种封装格式(mux)

对比:AVC & SVC & H.264
AVC是H.264的别名,advanced video code两者相等。
SVC是AVC的扩展模式,全程为Scalable video code,翻译为可分级编码

可分级编码

H.264 SVC以H.264 AVC视频编解码器标准为基础,利用了AVC编解码器的各种高效算法工具,在编码产生的编码视频时间上(帧率)、空间上(分辨率)可扩展,并且是在视频质 量方面可扩展的,可产生不同帧速率、分辨率或质量等级的解码视频。

H.264 SVC通过在GOP(编码图像组)中设置可丢弃的参考帧实现时间上的可分级。0-16视频帧构成全帧率视频,除T3标志外的所有视频帧构成了半帧率视频,所有 T0标志和T2标志的视频帧构成了1/3帧率视频,所有 只是T0标志的视频帧构成了1/4帧率视频。

SVC 时间可分级、SVC 空间可分级
H.264 SVC通过在在编码码流嵌入具有相关性的多个不同分辨率的子流实现空间上的可分级。上层所有的视频帧构成了高分辨率视频,下层所有的视频帧构成了低分辨率视频,为此,具备H.264 SVC编码的视频会议系统,在保证高效的视频压缩性能的基础上,视频广播端可以通过一次编码产生具有不同帧率、分辨率的视频压缩码流,以适应不同网络带 宽、不同的显示屏幕和终端解码能力的应用需求,从而有效地避免了视频会议系统中MCU上复杂而昂贵的转码。

音频编码

主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。


image.png

相关文章

  • IOS-播放器开发(1)-视频基本原理

    播放器播放视频流程 流媒体 所谓流媒体是指采用流式传输的方式在Internet/Intranet播放的媒体格式,如...

  • iOS-视频播放器的简单封装

    iOS-视频播放器的简单封装 封装视频播放器,首先需要了解视频播放器的实现,iOS9之前可以使用MediaPlay...

  • iOS常见视频之AVPlayer介绍

    1、前言 iOS 开发过程中常见的视频播放器主要有AVPlayer播放器和ijkPlayer播放器。AVPlaye...

  • 【iOS】AVPlayer 播放音视频

    1、常见的音视频播放器 iOS开发中不可避免地会遇到音视频播放方面的需求。 常用的音频播放器有 AVAudioPl...

  • 【iOS】AVPlayer 播放音视频

    1、常见的音视频播放器 iOS开发中不可避免地会遇到音视频播放方面的需求。 常用的音频播放器有 AVAudioPl...

  • iPhone和iPad横竖屏选项设置

    使用场景:开发视频视频播放器时,播放器界面需要旋转设置屏幕 如果选择 Universal,如下图:Universa...

  • iOS 视频之ijkPlayer介绍

    1、前言 ijkPLayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,...

  • Android NDK开发之旅31--音视频基础知识与FFmpe

    Android NDK开发之旅 目录 音视频基础知识 视频播放器原理 一个最简单的视频播放器的过程(不包括视频加密...

  • 生产者消费者模型

    背景 最近在做视频播放器开发,学习了ffmpeg中自带播放器demo,里面的生产者消费者开发模式令我影响深刻,所以...

  • 视频播放器之开篇

    一直想学习如何开发一款视频播放器,做到尽量好用。然而一直没有机会,终于经历大半个月学习了夏曹俊老师的视频播放器开发...

网友评论

    本文标题:IOS-播放器开发(1)-视频基本原理

    本文链接:https://www.haomeiwen.com/subject/twltbftx.html