行业动态
视频编码标准汇总及比较视音频编解码技术零基础学习方法
2021-03-16

流媒体协议简介(rtp / rtcp / rtsp / rtmp / mms / hls)

视频流协议RTP / RTCP / RTSP / HTTP之间的区别

3.打包格式

封装格式(也称为容器)的主要功能是根据某种格式将视频流和音频流存储在文件中。

常用格式

AVI:Microsoft于1990年代初建立的封装标准是为了与当时的QuickTime格式(mov)对抗而推出的,并且仅支持固定的CBR恒定比特率音频文件。

FLV:h.263系列的格式。

MKV:通用打包程序,具有良好的兼容性,跨平台,错误纠正和外部字幕。

MOV:MOV是Quicktime软件包。

MP4:主要用于mpeg4包装。

RM / RMVB:Real Video,由RealNetworks针对rmvb和rm开发。

TS / PS:PS软件包只能在原始HDDVD中使用。

WMV:微软将其作为市场竞争产品而推出。

ios视频开发_ios开发教程 视频_ios开发培训视频

4.编码标准

视频编码的主要功能是将视频像素数据(RGBios视频开发,YUV等)压缩为视频流,从而减少视频数据量。如果未对视频进行压缩和编码,则其体积通常会很大,一部电影可能需要数百GB的空间。

ios视频开发

视频编码标准的总结和比较

基于零的视频和音频编解码技术学习方法

5.播放模式

实时视频是视频源的实时观看。不允许快进和其他操作。它注重实时性能,并要求较高的网络延迟,这相当于视频广播

视频点播是以前视频源的回放,可以执行诸如快进和快退之类的操作

6. FFmpeg

官方网站介绍

博客地址

FFmpeg的基本概念

多媒体视频处理工具FFmpeg具有非常强大的功能,包括视频捕获,视频格式转换,视频捕获和视频加水印。

ios视频开发_ios开发培训视频_ios开发教程 视频

FFmpeg的基本概念:

容器:这是文件格式。在FFMPEG中,用于提取文件格式的容器是AVFormatContext;

数据流(stream):数据流是我们通常看到的多媒体数据流,它包含几个基本数据流,包括:视频流,音频流,字幕流;根据我的理解,数据流在FFMPEG中,抽象在AVStream中。

解复用器或解复用器:FFMPEG将要处理的多媒体文件视为多媒体数据流,首先将多媒体数据流放入容器(AVFormatContext),然后将数据流发送到解复用器(解复用器)。 FFMPEG中的多路分解器的抽象是AVInputFormat。我更喜欢将demuxer称为分离器,因为demuxer分别识别和处理隔行扫描的基本数据流,并将分离的数据流发送到视频,音频,字幕编解码器处理。

当然,分离的数据流在发送到编解码器进行处理之前,必须先存储在缓冲区中。同时,添加了一些辅助信息,例如时间戳,以供以后处理。那么这个缓冲区空间就是数据包。 由于数据流在时间轴上是交错的,因此所有视频,音频和字幕都被划分为一段数据。从数据流中解析出这些数据段之后,将它们存储在各自的数据包中,然后在这里说明,对于纯视频数据包,视频数据包可以存储视频帧,对于纯音频帧,如果采样率是固定的,一个音频数据包可以存储几个音频帧。如果采样率可变,则数据包中只能存储一个音频帧。

四、 Kxmovie源代码分析简单分析

总体思路是,KxMovieDecoder使用FFmpeg解码视频文件或网络地址,以将视频文件解码为YUV或RGB文件(图像文件)。然后KxMovieGLView呈现YUV或RGB文件。 KxAudioManager执行播放管理,例如播放,暂停等。KxMovieViewController使用上述API构建播放器界面

1. KxMovieDecoder文件

KxMovieDecoder提供了一个解码APIios视频开发,可以将其解码为视频中的YUV或RGB文件。

从公共API开始并进行分析。以下分析仅提取了视频的操作。


393701618