散装知识,只是突然对这类知识感兴趣,想简单了解下,找到啥就记录啥,没有深入研究文件内部组成构造和底层实现技术和相关标准,毕竟内容挺多的,我也不是必须得学透,况且我没有chatGPT那样的”大脑"…总而言之,门外汉,满足下自己浅浅的好奇心。
文章目录
- 真-浅浅了解下音视频文件格式和相关概念
- 比较常见视频格式分类及特点
- 比较常见音频格式分类及特点
- 音视频文件常用压缩编解码标准
- 目前网页所能支持使用的视频格式和相关压缩编解码格式
- 视频压缩技术和解码编码技术是否相同?
- 关于流媒体技术
- 在网页中播放flv格式的视频可以采用的方式
1、MP4(MPEG-4 Part 14)
优点:
(1)多媒体格式容器,能够容纳多类型的音频、视频、字幕、静态图像等,可扩展内部数据;
(2)支持多种压缩、编解码技术,例如MPEG-4标准进行压缩,视频编码格式如H.264和音频AAC等,还有其他类型的技术组合,这里就不展开叙述了;
(3)可以用于在线视频、数字广告、移动视频播放和视频点播等;
(4)可以存储多个音频和视频流,并且这些流可以使用不同的编码格式和参数进行编码;
(5)支持高清视频;
缺点:
(1)编码不稳定,由于 MP4 文件格式支持多种编码格式,因此在使用不同的编解码器和参数编码文件时,有时候会出现编码不稳定的情况,导致视频质量下降或播放卡顿;
(2)依赖于软件支持,虽然 MP4 文件格式是一种通用的文件格式,但是不同的软件支持度不同,这可能会导致某些软件无法打开或播放 MP4 文件;
(3)需要要高性能设备,由于 MP4 文件格式支持高清视频,因此需要较高性能的设备来进行播放和编辑,否则可能会出现卡顿、花屏等问题;
=============================================
MPEG4和MP4不是一个东西,它们之间存在一定的区别。
具体而言,MPEG4是一种数字媒体压缩标准,通过基于对象的编码技术可以将多种媒体信息进行高效压缩。而MP4则是一种包含音频、视频等多种媒体信息的文件格式,通常被用于存储和传输数字媒体数据,它可以使用多种编码标准,其中包括MPEG4这个编码标准,也可以使用其他的编码标准进行压缩编码。可以将MP4理解为支持MPEG4编码标准的一种音视频文件格式,而支持MPEG4编码标准的文件格式还有其他种类,如AVI等。
==============================================
2、AVI(Audio Video Interleave),是一种由微软开发的多媒体容器格式,能够容纳各种不同类型的音频和视频数据,支持多种编解码器,文件能够在主流操作系统上播放,但在不同平台和不同软件上的兼容性比较复杂,可能会导致某些软件无法打开或播放AVI文件,此外文件大小较大,且不支持流式输出(即需要下载才能播放),目前很少有浏览器支持该格式视频。
3、MKV(Matroska Video),是一种开放源代码的多媒体封装格式(经常可以在盗版视频网站上看到【doge】)。它可以将不同格式的音视频、字幕保存在一个MKV文件中,同时支持高级的视频和音 频编码方式,比如H.264编码和AC3音频编码,能提供很好的试听效果。MKV还支持菜单、章节、元数据等交互式功能。有较好的兼容性和可扩展性,可以适用于多种平台和设备,且可以通过不断更新版本来支持新的功能和编解码器。
4、MOV(QuickTime Movie),是一种由苹果公司开发的多媒体容器格式,支持多种编解码器和高清视频 。
5、WMV(Windows Media Video),是一种由微软开发的多媒体容器格式,支持多种编解码器和音频、视频格式,但较老旧。
6、FLV (Flash Video), 是一种 Adobe 公司推出的流媒体格式,主要用于在互联网上传输视频和音频文件。采用 FLV 格式封装的文件后缀为 .flv。
(1)封装简单:FLV 封装格式由一个文件头和一系列 TAG 数据组成,文件体积小,封装简单,易于在互联网上传输和存储。
(2)跨平台兼容:FLV 格式的文件可以在各种操作系统和多种网络环境下进行使用,如 Windows、Linux、Mac OS 等
(3)实时流媒体传输:FLV 格式支持实时流媒体传输,可以用于实现直播、在线会议等场景。
(4)支持多种编解码器:FLV 格式支持多种音视频编解码器,如 H.264 视频编码、AAC 音频编码等,可以提供更好的音视频播放效果。
(5)目前(20230331)因为不支持高清视频以及版本更新缓慢等原因,基本过时。
7、WebM:是谷歌公司推出的开源免费的多媒体容器格式,其核心是基于MKV容器格式,可以包含VP8或VP9编码的视频和Vorbis编码的音频。WebM 可以在多种平台和设备上播放,包括 Linux、Windows、Mac 等多个操作系统,同时也支持手机、平板电脑等移动设备。WebM 支持实时流媒体传输,可以适用于直播、视频会议等场景。Chrome和Firefox浏览器支持WebM格式。
8、Ogg:是一种开源的多媒体容器格式,通常用于高品质的数字多媒体处理和流媒体传输。Ogg格式并不受到软件专利的限制,设计用于有效率地流媒体和处理高品质的数字多媒体,可以纳入各式各样自由和开放源代码的编解码器,包含音效、视频、文字(如字幕)和元数据的处理。目前主要由Firefox浏览器支持。Ogg格式有很多种具体实现,最常见的Ogg Vorbis是用于音频压缩的开放源代码编解码器,提供了较高的音频质量和压缩比。此外,Ogg Theora则是用于视频压缩的开放源代码编解码器,支持较高的图像质量和低延迟的流媒体传输。
MP3:是一种非常流行的有损压缩音频格式,拥有广泛的应用和支持。
WAV:是一种无损音频格式,拥有高音质和较大的文件大小,通常用于专业录音和音乐制作。
AAC:是一种先进的有损压缩音频格式,常用于音乐播放器、手机等设备上
FLAC:是一种无损音频格式,文件大小较小,但仍能保持高音质,常用于数字音乐库存储和传输。
WMA:是Windows Media Audio的缩写,是微软公司开发的一种有损压缩格式,通常用于Windows系统上的媒体播放器。
OGG:是一种自由、开源的多媒体容器格式,支持多种编解码器,通常用于互联网上的音视频流传输。
AIFF:是一种无损音频格式,由苹果公司推出,适用于Mac OS平台上的音频处理和编辑。
DSD:是一种高分辨率音频格式,采样率比CD高出数十倍,常用于影音制品和高档音响设备上。
AMR:是一种常用于移动电话的语音压缩格式,可将语音数据压缩到很小的文件大小。
CDA:是一种CD音轨格式,通常只包含了光盘中的音频数据,而不包括任何的兼容性信息和元数据。
(1)H.264/AVC(Advanced Video Coding):是目前应用最为广泛的视频编解码标准之一,拥有高压缩比和高画质的优势,常用于网络流媒体传输、高清电视和蓝光光盘等领域。
百度百科:
国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
而H.264则是由这两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC)的第10 部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264
(2)H.265/HEVC(High Efficiency Video Coding): HEVC采用更加先进的技术和算法,比H.264能够实现更高的压缩率,视频文件更小,同时保持原有的高画质。目前HEVC被广泛应用于4K超高清视频等领域。
(3)VP9:由Google公司开发的一种视频编解码标准,可以提供比H.264更高的压缩率和更好的图像质量。在某管上,VP9是默认的视频编码格式。
(4)AV1(AOMedia Video 1):AV1是由Alliance for Open Media联盟推出的一种新一代的视频编解码标准。其具有更高的压缩效率和更好的图像质量,目前正在逐渐替代H.264和VP9成为新的主流视频编解码标准。
(5)MPEG-4 Part 10/H.264 MVC:是一种用于三维电影和电视广播等应用的高级视频编解码标准,可提供立体视频成像效果,使观众获得更加逼真的立体感受。
有三个,分别是:mp4(并且是H.264压缩编解码方式),ogg,webp
视频压缩技术和解码编码技术不是一个意思。
视频压缩技术是指将原始的视频数据经过一定的算法和处理方式,以减少视频数据的存储和传输成本,并确保在压缩后的视频数据播放时仍然具有较高的图像质量和播放顺畅度。视频压缩技术通常包含两种类型,一种是有损压缩,指在压缩过程中,会将一些不影响整体观看或者听的音视频数据进行合理丢失,以达到比较小的文件大小的目的,常见的有MP3、AAC、WMA、OGG、MPEG等;另外一种是无损压缩,j简单来说就是只压缩每个帧之间的间距以此来达到减小文件大小的目的,常见的有FLAC、ALAC、APE、WAVpack等。
解码编码技术是指将视频信号编码成数字数据后进行压缩和传输,最终在接收端将数字数据解码还原成原始的视频信号的技术。通常来说,数字数据比原始视频信号大得多,因此需要采用压缩算法进行压缩,同时为了使得压缩后的数据能够正确解码还原,也需要对数字数据进行编码和解码操作。
总之,视频压缩技术和解码编码技术都是视频处理技术中的重要部分,但是它们所解决的问题是不同的。
流媒体技术是指一种可以在互联网上传输音频、视频等多媒体数据的技术。
它通过将多媒体数据分成很多小的数据包,经由互联网传输到接收方,并在接收方进行边下载边播放的方式,实现了大规模多媒体数据的在线传输和播放。
广泛应用于在线音视频播放、直播、远程教育等领域。
流媒体技术可以通过使用流媒体协议与相应的流媒体服务器配合来实现,以保证音视频数据的快速传输和稳定播放。
常见的流媒体协议有如下:
1、RTMP(Real-Time Messaging Protocol):由 Adobe 公司开发的一种基于 TCP 的流媒体协议,用于实现音视频数据从流媒体服务器到 Flash 播放器的传输,支持即时传输和动态流量控制等功能。例如,某些直播平台使用 RTMP 协议将用户提交的视频流推送到服务器上,并在客户端使用特定的 Flash 播放器进行播放。
2、HLS(HTTP Live Streaming):苹果公司开发的一种基于 HTTP 的流媒体协议,用于在 iOS 和 macOS 系统上实现音视频内容的发送和播放,支持多种分辨率和自适应码率等功能。例如,某些在线视频网站使用 HLS 协议将视频文件分割为一系列小文件并发布到服务器上,然后当用户请求视频内容时,服务器通过响应 HTTP 请求向客户端发送相应的文件,并使用分段加载和解码等技术实现视频的流畅播放。
3、DASH(Dynamic Adaptive Streaming over HTTP):一种基于 HTTP 的开放式流媒体协议,由 MPEG 标准化组织制定,用于实现音视频内容的适应性码率和分辨率调整,以提高播放的质量和稳定性。例如,某些视频平台使用 DASH 协议将视频数据按照不同的码率和分辨率进行切割,并将其发布到服务器上,然后通过智能的流媒体服务器根据客户端的网络带宽和设备特性等信息选择最优的视频片段并发送给客户端进行播放。
1、使用Flash插件:通过在页面中嵌入Flash插件,并将FLV文件的路径传递给插件来实现播放。这种方式已经逐渐被淘汰,因为Flash插件存在着安全性和可访问性等问题。
2、使用JavaScript库:比如JWPlayer、Flowplayer等。这些库封装了Flash插件或者 HTML5 的 video 标签,能够自动检测设备类型和浏览器支持情况,并选择最佳的播放方式,在不同的客户端上都能良好地展现视频。
3、使用HTML5+JavaScript:使用HTML5中提供的新标签< video>标签,结合JavaScript编写代码来完成。不过需要注意的是,HTML5的< video>标签并不支持FLV等格式,需要先将FLV格式转换成其他格式,如MP4、WebM等。
其他待补充