`
javasogo
  • 浏览: 1815877 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

编解码学习笔记(十一):Flash Video系列

阅读更多

  用于在 Flash 中压缩视频。FLV流媒体格式是一种新的视频格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。一般FLV文件包在SWF PLAYER 的壳里,并且FLV可以很好的保护原始地址,不容易被下载到,从而起到保护版权的作用。

  • 文件名: .flv, .f4v, .f4p, .f4a, .f4b
  • 媒体类型:video/x-flv, video/mp4, video/x-m4v, audio/mp4a-latm, video/3gpp, video/quicktime, audio/mp4
  • 厂家:Adobe Systems (originally developed by Macromedia)
  • Type of format: Media container
  • Container for :Audio, video, text, data Extended from
  • 扩展:FLV: SWF ,F4V: MPEG-4 Part 12

Flash介绍

  Flash Video是一个文件容器格式,是Adobe Flash播放器版本6-10用于在互联网上传递视频。Flash视频内容也可以封装在SWF文件。Flash视频有两种不同的文件格式:FLV和F4V。FLV文件中,同SWF文件一样音频和视频数据采用相同方式进行编码。晚出现的F4V,它的格式是基于ISO为基础的媒体文件格式,并在Flash Player 9 update 3中开始得到支持。这些格式Adobe Flash播放器都能支持,并由Adobe公司开发,其中FLV最找石油Macromedia公司开发的。

  Flash视频FLV文件所包含的媒体的编码通常采用Sorenson Spark和VP6视频压缩格式。最新发布的Flash播放器支持H.264视频和HE-AAC音频。所有的这些编解码目前受到专利的限制。

  Sorenson编解码看参考以下两种专用的视频编解码:Sorenson Video或者Sorenson Spark。Sorenson Video也被称为Sorenson Codec,Sorenson Video Quantizer或者SVQ。Sorenson Spark也称为Sorenson H.263。这些编解码都是有Sorenson 媒体公司设计(及以前的Sorenson Vision公司)。Sorenson Video在Apple的QuickTime中使用,Sorenson Spark在Adobe Flash(以前的Macromedia Flash)中使用。

  Flash视频通过广泛使用的Adobe Flash播放器和浏览器的plugin或者其他的第三方程序,使它能在绝大多是的操作系统都可以使用。

通常Flash视频FLV文件包含的视频比特流是一个专有的H.263视频标准的变体,FourCC为FLV1(Sorenson Spark)。Sorenson Spark是一个FLV文件老式编解码,但被广泛应用和兼容,因此它是第一个被Flash Player支持的视频编解码。这是在Flash Player 6和7要求的视频压缩格式。Flash Player 8和更新的版本支持On2 TrueMotion VP6视频比特流回放(FourCC VP6F或者FLV4)。On2 VP6是Flash Player 8或者更高版本优先使用的视频压缩格式。On2 VP6可以提供能够提供比Sorenson Spark更高视觉质量,尤其在低比特流中。另外它的计算更为复杂,因此在某些古老的系统配置中无法很好使用。

  Flash 9 update 3,在2007年12月3日释放,提供了新的Flash视频文件格式F4V,支持H.264视频标准(也即MPEG-4 part 10或者AVC),H.264需要更复杂的技术,但是提供更加卓著质量/比特流比例。具体而言,Flash播放器现在支持H.264视频压缩(MPEG-4 Part 10),AAC音频压缩(MPEG-3 Part 3),F4V,MP4(MPEG-4 Part 14),M4V,3GP和MOV多媒体容器格式,3GPP Timed Text标准(MEPG-4 Part 17)(这是一个标准的的字幕格式,能够部分解析ID3的’ilist’,等同于iTunes使用的metadata存储。不支持MPEG-4 Part 2视频(例如有DivX或者Xvid创建)。Jonathan Gay,一个Flash的主要程序员在接收BBC新闻采访时表示:公司最初想在Flash中使用H.264,但是被每年5百万美金(3.5百万英镑)的专利许可费而却步。

  Flash Video FLV文件格式支持两个成为“screenshare‘(Screen Video)编解码的版本,这是一种用于桌面演示的编码格式。这两种格式都是基于tmap平铺方式,可以通过减少色深进行有损编码,并使用zlib压缩。第二个版本之在Flash播放器8以及更新的版本支持。

  在Flash视频文件中,通常使用MP3作为音频编码然而,在Flash视频FLV文件通过麦克风录音使用专用的Nellymoser Asao编解码(Flash Player 10 在2008年发布,也支持开源的Speex编解码)。FLV文件支持不压缩的音频或ADPCM音频格式。最新的Flahs Player 9 支持AAC(HE-AAC/AAC SBR,AAC Main Profile,和AAC-LC)。

  编码为Flash Video文件有一个编码工具提供,包括Adobe的Flash Professional和Creative Suite产品,On2的Flix编码工具,Sorenson Squeeze,FFmepg和其他第三方工具。

容器

  在2002年发布的Flash Player6增加了对SWF文件格式的支持。在2003年,Flash Player7增加了对FLV文件格式的直接支持。由于FLV文件格式的限制,Adobe System公司在2007年提出下面列出的新的文件格式,是基于ISO基本媒体文件格式(MPEG-4 Part 12)。Flash播放器不检查文件的扩展名,而直接查看文件,检查属于那种格式。

文件扩展名 Mime Type 描述
.f4v video/mp4 Video for Adobe Flash Player
.f4p video/mp4 Protected Video for Adobe Flash Player
.f4a video/mp4 Audio for Adobe Flash Player
.f4b video/mp4 Audio Book for Adobe Flash Player

  在Flash Player6及以后的版本对SWF文件的支持,使得可以与Adobe Flash媒体服务器通过RTMP来进行音频,视频和数据的交互。Flash媒体服务器的数据支持采用FLV文件格式的文件(MIME类型为video/x-flv)。从Flash Player 9 Update 3开始创建的SWF文件,Flash Player可以播发新的F4V文件格式。

媒体格式

  在FLV文件中支持的媒体类型:

  • 视频:On2 VP6,Sorneson Spark(Sorenson H.263),Screen Video,H.264
  • 音频:MP3,ADPCM,Linear PCM,Nellymoser,Speex,AAC,G.711(保留用于互通需求)

  在F4V文件中支持的媒体类型:

  • 视频:H.264
  • 图像(视频数据的静止帧):GIF,PNG,JPEG
  • 音频:AAC,HE-AAC,MP3

在Flash Player和Flash Video中支持的音视频压缩格式

Flash Player version

Released

File format

Video compression formats

Audio compression formats

6

2002

SWF

Sorenson Spark, Screen video

MP3, ADPCM, Nellymoser

7

2003

SWF, FLV

Sorenson Spark, Screen video

MP3, ADPCM, Nellymoser

8

2005

SWF, FLV

On2 VP6, Sorenson Spark, Screen video, Screen video 2

MP3, ADPCM, Nellymoser

9.0.115.0

2007

SWF, FLV

On2 VP6, Sorenson Spark, Screen video, Screen video 2, H.264[*]

MP3, ADPCM, Nellymoser, AAC[*]

SWF, F4V, ISO base media file format

H.264

AAC, MP3

10

2008

SWF, FLV

On2 VP6, Sorenson Spark, Screen video, Screen video 2, H.264[*]

MP3, ADPCM, Nellymoser, Speex, AAC[*]

SWF, F4V, ISO base media file format

H.264

AAC, MP3

[*]在FLV文件格式中使用H.264和AAC压缩有一些限制,Flash Player的作者强烈推荐大家使用新的F4V文件格式。

Flash传递的几种方式

一、作为一个标准的flv文件。

二、嵌入SWF文件,使用Flash认证工具(在Flash Player 6及以后的版本支持)。

三、通过HTTP的渐进流下载(progressive download)。这种方式使用ActionScript,包括客户端侧的一个外部托管Flash Video文件用于播放。然而,和使用RTMP的媒体流不一样,HTTP“流”不支持实时广播。HTTP流要求一个定制的播放器以及包含每个关键帧精确开始字节位置以及时间码的特定Flash Video元数据的加入。使用这些特定的信息,定制Flash Video播放器可以要求在任何指定的关键帧中开始播放。例如,Google Video,Youtube和BitGravity支持渐进流下载,可以在缓存满之前查看视频的任何部分。在服务器侧,这种“假HTTP流“方式实现相当简单,例如可以采用Apache的PHP模块,使用lighttpd。

四、采用RTMP协议的流,可提供的有Flash媒体服务器(以前称为Flash Communication Server),VCS,Electro Server,Helix Universal Serval,Wowza Pro,用于.NET的WebORB,用于Java的WebORB,以及开源的Red5服务器。在2008年4月,这个协议有流录像提供,不需要重新编码的screencast软件。

  RTMP,实时消息协议,Real Time Message Protocol是一个有Adobe System为在互联网的音频,视频和数据流开发的私有协议,运行在Flash播放器和服务器之间。RTMP协议有三个方式:
1、 通过在TCP上,使用1935端口的“纯”协议。
2、 用于在穿越防火墙时,在HTTP请求中封装的RTMPT。
3、 在HTTPS的安全连接中使用的RTPMS。

注:上述材料来源于wiki的整理。

关链接: 我的产业生态链和杂谈文章

分享到:
评论

相关推荐

    视频编解码学习之一:理论基础 - Mr.Rico - 博客园.pdf

    视频编解码是一个涉及数据压缩和解压缩的复杂过程,其目的主要是降低数字视频文件的存储容量以及传输...视频数据的处理与图像处理存在一定的差异,因此在进行视频编解码学习时,还需要对图像和视频的基本概念有所了解。

    多媒体编解码学习资料详细介绍

    8. **Flash Video系列**:Flash Video(FLV)是Adobe Flash Player支持的一种视频格式,曾经非常流行,尤其是在在线视频分享网站中。 9. **其他编解码**:除了以上列举的主流编解码标准外,还有许多其他的编解码...

    哈夫曼课程设计.rar

    哈夫曼编解码器 问题描述:使用哈夫曼编码,实现文本文件的编码和解码,具体要求如下: ① 文本文件 data.txt 中仅包含 ASCII 字符,总字符数不少于 1000。 ② 统计 data.txt 中各种字符的出现次数,并计算各自概率...

    精通Visual c++ 音频视频编解码技术.pdf

    在Visual C++中实现MPEG编解码需要理解和应用一系列复杂的算法,如运动估计、环路滤波等。 2. **H.263/264编解码**:H.263是ITU-T制定的一种适用于低带宽环境的视频编码标准,而H.264(也称为AVC,Advanced Video ...

    深入理解视频编解码技术(基于H.264标准及参考模型)

    《深入理解视频编解码技术:基于H.264标准及参考模型》主要介绍基于H.264标准及参考模型的视频编解码技术。第1章绪论介绍了数字视频的基本概念和视频压缩标准的发展历程;第2章讲解了当前视频编解码标准中基本的编码...

    Speex编解码器手册 1.2Beta3版

    Speex编解码器手册 1.2Beta3版 The Speex Codec Manual Version 1.2 Beta 3 Speex编解码器(http://www.speex.org/)的存在是因为需要一款开源且免软件专利使用费的语音编解码器,这是任何开源软件可用的必要条件。...

    三维TPC编解码器的仿真研究.pdf

    "三维TPC编解码器的仿真研究" 本文研究了三维TPC(Turbo Product Code)编解码器的仿真研究。TPC编码的三个子码都采用(16,11)的扩展汉明码,编码码率约为0.32,码字长度为4096。三维TPC译码采用基于Chase2算法的...

    mpeg2视频编解码的c语言实现

    3.用处:用于mpeg2视频编解码算法编程学习 4.指向人群:本硕博等教研学习使用 5.运行注意事项: 使用matlab2021a或者更高版本测试,运行里面的Runme_.m文件,不要直接运行子函数文件。运行时注意matlab左侧的当前...

    音视频编解码源码

    通过深入学习"音视频编解码源码",我们可以直观地理解这些概念,并掌握如何在实际项目中应用。理解编解码的原理和技术细节,对于开发音视频应用、优化传输效率、提高用户体验等方面都具有重要的实践意义。

    视频编解码技术简介:过去、现在及将来

    视频编解码技术是数字视频处理领域的一个核心部分,它包含了一系列压缩和解压缩视频数据的技术和算法,旨在有效减少视频文件的大小,降低存储和传输所需的数据量,同时尽可能保证视频质量不受到太大损失。编解码技术...

    STM32 F103C8T6学习笔记12:红外遥控-红外解码~~.rar

    总结起来,STM32 F103C8T6学习笔记12的重点在于如何利用微控制器实现红外遥控信号的解码,涉及到了GPIO、中断、定时器、编码协议解析等多个方面的知识。通过学习这一章节,读者将能够掌握在STM32平台上构建红外遥控...

    gsm编解码.

    通过运行和分析这个程序,可以直观地了解GSM编解码的工作原理,并且可能包含源代码,对于学习编程实现GSM编解码的人来说是一份宝贵的教育资源。 总结来说,GSM编解码是移动通信中的核心技术,涉及复杂的信号处理和...

    PCM编解码器.doc

    PCM编解码器 PCM(Pulse Code Modulation,脉冲编码调制)是一种常用的数字信号编码技术,广泛应用于音频、图像和视频处理。PCM编解码器是实现PCM编解码的关键设备,在音频和图像处理系统中扮演着至关重要的角色。 ...

    全志H264硬件编解码

    全志H264硬件编解码是针对嵌入式设备的一种高效视频处理技术,尤其在A10、A20以及A31等全志系列芯片上得到了广泛应用。这些处理器通常用于平板电脑、智能电视盒和其他嵌入式系统,因为它们提供了强大的多媒体处理...

    精通Visual C++视频/音频编解码技术(光盘)完整代码

    《精通Visual C++视频/音频编解码技术》是一本深度探讨如何在Visual C++环境中实现视频和音频处理的专业书籍。其附带的光盘包含了完整的源代码,为读者提供了实践学习的重要资源。通过这些代码,我们可以深入理解并...

    Visual C++ 实现 MPEG-JPEG 编解码技术 pdf

    通过学习《Visual C++ 实现 MPEG-JPEG 编解码技术》,开发者可以深入了解这两种压缩技术的原理,并具备在C++环境中实现它们的能力。这不仅有助于提升编程技能,也有助于解决实际项目中关于图像和视频处理的问题。

    Adobe Flash Video File Format Specification Version 10.1

    ### Adobe Flash Video File Format Specification Version ...通过对这份文档的学习,可以深入了解FLV文件格式的特点、编解码器的选择以及其他相关技术细节,这对于开发人员和多媒体工程师来说是非常有价值的资源。

    c/c++开发音视频编解码

    C/C++开发音视频编解码通常会利用开源库,如FFmpeg,它包含了一系列的编解码器、容器格式、过滤器和工具。"TestFor_AVCodec"可能就是基于FFmpeg库的一个实践项目。FFmpeg中的AVCodec库提供了多种音频和视频编解码器...

    c语言 sbc 音频编解码算法

    SBC(Subband Coding,子带编码)是一种广泛应用于蓝牙音频传输的低复杂度、高效能的音频编解码算法。在C语言中实现SBC编解码算法,可以为各种嵌入式设备和移动平台提供高质量的音频传输解决方案。下面我们将深入...

    点云编解码方法和编解码器.pdf

    2. 机器学习:点云编解码方法和编解码器可以应用于机器学习领域,用于对点云数据进行压缩、编码和解码,以提高机器学习的效率和 accuracy。 3. 自动驾驶:点云编解码方法和编解码器可以应用于自动驾驶领域,用于对...

Global site tag (gtag.js) - Google Analytics