flv

flv

FLASH VIDEO的簡稱
FLV 是FLASH VIDEO的簡稱,FLV流媒體格式是随着Flash MX的推出發展而來的視頻格式。由于它形成的文件極小、加載速度極快,使得網絡觀看視頻文件成為可能,它的出現有效地解決了視頻文件導入Flash後,使導出的SWF文件體積龐大,不能在網絡上很好的使用等問題[1]。網絡寬帶的普及使中國網民數量躍升至全球第一,同時也造就了衆多的網絡神話,GOOGLE斥巨資收購YouTube,似乎将國内外本身已經夠火的Web2.0視頻網站被廣泛關注。随後視頻、播客等網站在國内如雨後春筍般興起,新的網絡戰役一觸即發,這對于FLV視頻格式的普及無疑是一個巨大的推動力。
  • 中文名:流媒體格式
  • 外文名:FlashVideo
  • 别名:
  • 簡稱:FLV
  • 類别:格式
  • 優 點:文件極小、加載速度極快
  • 缺 點:導出的SWF文件體積龐大等
  • 采用的網站:搜狐視頻、新浪播客、哔哩哔哩等
  • 趨 勢:增長最快、最為廣泛

flv發展

FLV是被衆多新一代視頻分享網站所采用,是增長最快、最為廣泛的視頻傳播格式。是在sorenson公司的壓縮算法的基礎上開發出來的。FLV格式不僅可以輕松的導入Flash中,速度極快,并且能起到保護版權的作用,并且可以不通過本地的微軟或者REAL播放器播放視頻。

flv曆史

普及

網絡寬帶的普及使中國網民數量躍升至全球第一,同時也造就了衆多的網絡神話,GOOGLE斥巨資收購YouTube,似乎将國内外本身已經夠火的Web2.0視頻網站被廣泛關注。随後視頻、播客等網站在國内如雨後春筍般興起,新的網絡戰役一觸即發,這對于FLV視頻格式的普及無疑是一個巨大的推動力。

優勢

FLV作為一種新興的網絡視頻格式,能得到衆多的網站支持并非偶然。除了FLV視頻格式本身占有率低、視頻質量良好、體積小等特點适合網絡發展外,豐富、多樣的資源也是FLV視頻格式統一在線播放視頻格式的一個重要因素。從最新的變形金剛到越獄再到各項體育節目,甚至于網友制作的自拍視頻等都可以在網絡中輕而易舉的找到。

在互聯網上提供FLV視頻的有兩類網站,一種是專門的視頻分享網站如美國的YouTube網站、國内的六間房、土豆網等。另一種是門戶網站提供了視頻播客的闆塊,提供了自己的視頻頻道,如新浪視頻播客等,也是使用FLV格式的視頻。此外,百度也推出了關于視頻搜索的功能,裡面搜索出來的視頻基本都是采用了流行的FLV格式。

使用

Web 2.0時代,要說什麼類型網站最火,自然是以國外的Youtube,國内的優酷、土豆網、UUME為代表的視頻分享網站了。這類網站提供的視頻内容可謂各有千秋,但它們無一例外的都使用了Flash作為視頻播放載體,支撐這些視頻網站的技術基礎就是——Flash 視頻(FLV) 。

FLV 是一種全新的流媒體視頻格式,它利用了網頁上廣泛使用的Flash Player 平台,将視頻整合到Flash動畫中。也就是說,網站的訪問者隻要能看Flash動畫,自然也能看FLV格式視頻,而無需再額外安裝其它視頻插件,FLV視頻的使用給視頻傳播帶來了極大便利。

從Flash MX 2004開始,軟件就提供了FLV格式支持,不過筆者建議大家使用最新版本的Flash 8(最新的版本是Flash CC了),這個版本的Flash中有一個獨立的FLV轉換工具:Flash 8 VIdeo Encoder。點擊系統菜單“程序”→“Macromedia”→“Macromedia Flash 8 Video Encoder”進入。

進入程序後,可以看到軟件界面非常簡單。實際上使用這一工具轉換普通視頻為FLV視頻很容易,隻需幾步即可完成。

點擊“增加”按紐,軟件自動調用系統“打開”對話,選擇需要導入的視頻即可。Flash 8 Video Encoder支持轉換的視頻格式相當廣泛,如:AVI、WMV、MPEG、ASF、MOV等常見視頻格式。視頻添加進隊列後,如果你不需要做特殊修改,那麼點擊“開始隊列”按紐,程序即開始視頻轉換。軟件轉換視頻的速度,筆者總的感覺還是較快,當然這與原始視頻大小及設置的視頻數據速率有關。整個轉換過程,主窗口下方都有信息提示,并且還能看到實時的進度預覽。轉換結束後,在轉換視頻同一文件夾下,我們就能得到一個同名的FLV文件。

當然,上述這些隻是按照默認設置進行轉換的情況,實際情況下,我們對于視頻轉換的控制還可以很多,點擊主窗口“設置”按紐進入高級設置對話框。

在視頻編碼設置對話框中,最顯著的就是FLV視頻品質設置,默認是“Flash 8- 中等品質(400kbps)”,軟件内置7種不同的編碼設置組合。我們也可以選擇自定義設置,點擊“顯示高級設置”按紐,軟件将顯示自定義的設置界面。

軟件提供了兩種視頻解碼器供選擇:On2 VP6(用于Flash Player 8,支持Alpha 通道)、Sorenson Spark(用于Flash Player 7,适用于低配置用戶);“調整視頻大小”也頗有用,我們很容易生成制定尺寸的動畫;如果你隻重視視頻效果,那麼你還可以對“音頻編碼”開刀,将默認編碼數率設置低些,那麼輸出的文件還會更小巧。高級設置中的選擇還很多,它甚至還提供了簡單的視頻編輯功能,點擊“裁切和修剪”标簽。

裁切使用很簡單,軟件提供了四個方向的控制,輸入數值以裁切視頻,或者點擊“三角”按紐顯示控制滑塊,拖動滑塊直觀地調整視頻尺寸,視頻預覽區會實時用虛線勾畫裁切範圍。

修剪的使用也不複雜,在視頻預覽區下方可以看到一個藍色的視頻進度指示條,拖動上方的“倒三角”按紐定位視頻播放進度。進度指示條下方有兩個按紐,它們就是“開始點”和“結束點”定位按紐,分别拖動按紐到所需位置,即完成簡單的視頻修剪。

得到了FLV文件,其實我們并不能直接在網頁中使用,我們還需要将它嫁接到Flash動畫中去。如同大家在各種視頻網站中看到的一樣,我們創建的Flash視頻并不是簡單播放就算了,它也是帶播放控制的。

運行Flash 8,創建新的Flash 文檔,點擊菜單“文件”→“導入”→“導入視頻”,進入“導入視頻”對話框。

可以看到,選擇視頻時會有兩種不同的選擇:“在您的計算機上”、“已經部署到”,這兩者是有區别的,不過我們僅需在本地測試動畫,選擇“在您的計算機上”。點擊“浏覽”按紐,通過系統打開對話框,載入我們剛生成的FLV文件,點擊“下一個”按紐繼續。

接下來選擇“部署方式”為:“從Web服務器漸進式下載”,進入“外觀”選項。

Flash 8當前已經為播放FLV視頻内置了數十個播放控制器,它們的外觀各異,控制選項也有區别,你可以根據自己的需要,選擇一個合适的播放控制器,最後點擊“完成”按紐結束。

返回Flash 8主窗口工作區,可以看到我們剛插入的視頻已經布置到位了,此時你可以直接按Ctrl+Enter測試動畫了。

不同方式

本地文件

作為一個獨立的FLV文件。雖然Flash視頻文件通常是交付使用的Flash Player的控制, FLV文件本身是全功能對自己的和可以發揮的或轉換為其他格式,由本地存儲如硬盤或CD上。[引文需要]

嵌入式swf

在一個嵌入式的SWF文件使用Flash創作工具(支持在Flash Player 6和更高版本)。整個檔案必須在移交之後,才可以開始播放。改變影片需要重建的SWF文件。

逐步下載

逐步通過HTTP下載(支持在Flash Player 7和更高版本)。此方法使用的ActionScript ,包括一外部托管的Flash視頻文件的客戶端播放。漸進式下載有幾個優勢,包括緩沖,使用通用的HTTP服務器,并有能力再用一個單一的SWF Player的多重FLASH視頻源。Flash Player 8中包括支持随機存取内部的視頻文件使用部分下載功能的HTTP ,有時這是被稱為流。不過,不同的流使用rtmp ,HTTP的“分流” ,不支持實時廣播。流通過HTTP需要自訂播放器和注射液的具體Flash視頻中繼載有确切的出發位置在字節和時間碼的每一個關鍵幀。使用此特定的信息,自定義的Flash視頻播放器,可要求任何部分的Flash視頻文件,開始在指定的關鍵幀。舉例來說,Google視頻和YouTube支持漸進式下載并可以尋求任何部分的視頻前緩沖完成。服務器端的一部分,這個“ HTTP的僞分流”的方法是相當簡單的執行,例如在PHP中,作為Apache的httpd模塊,或1 lighttpd模塊。豐富的媒體項目提供球員和Flash組件兼容的“HTTP僞分流”的方法。

rtmp方式

流通過rtmp到Flash Player的使用Flash媒體服務器(以前稱為閃光通信服務器),風險投資, electroserver , wowza Pro或開放原始碼red5服務器。截至2008年4月,有4個流錄音機,供本議定書,重新編碼screencast軟件排除在外。

文件生成

生成

通過動畫預覽,我們可以發現,默認的Flash動畫尺寸比播放器寬了不少,我們需要重新設置一下。鼠标在工作區中選擇“播放器控件”,調用“屬性”面闆(Ctrl+F3),修改X、Y軸值為“0.0”,這樣我們就将“播放器控件”這個元件定位到了工作區的左上方頂點處。點擊菜單“修改”→“文檔”,進入“文檔屬性”對話框,選擇“匹配”值為“内容”,點擊“确定”返回,于是Flash文檔的尺寸就與播放器一緻了。

如果大家制作的FLV視頻動畫隻打算在本地計算中播放,那麼就直接輸出SWF文件即可,如果是準備在網絡中調用,那麼還需要做一些事情。

先上傳自己制作的FLV文件到網絡服務器,獲得文件遠程網絡地址:如:http: //www.scxp.net/01.flv。接下來,選擇工作區中的“播放器控件”,調用“參數”面闆,找到“contentPath”字段,修改它的值為“http://www.scxp.net/01.flv”(原始值就是最開始大家設置的本地FLV文件路徑)。

點擊菜單“文件”→“導出”→“導出影片”,例:設置導出影片地址為“D:/”,文件名為“01.swf”。接下來,設置播放器版本為“Flash Player 8”,ActionScript版本為“ActionScript 2.0”,點擊“确定”完成。

進入“D:/”,可以看到,除了剛生成的“01.swf”文件外,還多了個 “SteelOverPlaySeekMute.swf”文件,它也是調用Flash視頻必須的文件,将這兩個文件也上傳到你的服務器中即可。以後你在網上任何地方需要調用Flash視頻時,隻需要插入服務器上的那個“01.swf”動畫的網絡地址即可。

注:設置Flash動畫調用的FLV文件為網上遠程路徑後,本地預覽“01.swf”文件會有安全警告,這是正常的情況,大家不必擔心。

另外,很多的具有視頻功能的MP3也支持flv格式。

公司媒體

chameleogom播放器

MPlayer的(使用ffmpeg )

使用RealPlayer

vlc媒體播放器

xine (用途ffmpeg )

任何播放器,可以使用ffdshow (基于ffmpeg )DirectShow的編解碼器:

媒體播放器的經典

Winamp中

Windows Media Player中

變焦播放器

任何播放器使用的QuickTime ,安裝後的FLV的組成部分

文件下載

在線觀看的flv視頻文件基本都不提供下載,在此介紹兩種下載方法:

temp下載

該方法對多數視頻适用。

首先,正常觀看視頻,不要關閉浏覽器,其次,等視頻加載完畢,進入C:Documents and Settings你的用戶名Local SettingsTemporary Internet Files

(這隻是默認位置,若無法訪問請打開“Internet選項”(IE中菜單欄内“工具”-->“Internet選項”)單擊“浏覽曆史記錄”中“設置”,“查看文件”(不同版本IE操作可能有所區别))

這個文件夾(有可能要用到文件夾選項中的“顯示全部文件”才可看見),然後,查找擴展名為flv的文件即可,可以按時間排序,很容易找到。也可以按大小,視頻文件一般都比較大,排在頂部本方法适合任何flv視頻網站。

專業工具

還有一種(推薦, 非常輕松地下載)可借助flv視頻下載軟件,例如:流行的有狂雷視頻下載、維棠下載、碩鼠等,都是比較成熟的軟件,可提供播放、下載、轉換等功能。狂雷界面簡單易用,知名度高,其本身是一個flv資源平台,提供的flv資源自然豐富,狂雷視頻下載像迅雷一樣,功能豐富,而且下載速度是同類所有下載軟件中最快的,支持優酷分段視頻的自動合并,還具有強大的視頻轉換功能,可根據手機型号來轉換FLV視頻到您手機支持的視頻格式。維棠像FLASHGET一樣,操作比較複雜,隻有下載,沒有搜索功能。還有像其他的flv小軟件,比如xmlbar之類的,不過功能有點簡單,易操作性一般。

另外還可以通過flvcd網站在線解析視頻地址,直接浏覽器另存為下載,無需安裝插件.

制作視頻

FLV流媒體格式是一種新的視頻格式,全稱為Flash Video。Flash MX 2004對其提供了完美的支持,它的出現有效地解決了視頻文件導入Flash後,使導出的SWF文件體積龐大,不能在網絡上很好的使用等缺點。下面我們就來介紹一下如何使用小巧的FLV流媒體文件。

流媒體格式

首先,打開Flash MX 2004,新建一個Flash文檔。将準備好的AVI格式的視頻文件導入到庫中。導入過程會出現向導提示,總共分2步,分别是“編輯”和“編碼”的處理。

按照默認值進行處理,我們選擇“導入整個視頻”,單擊“下一步”按鈕然後“結束”完成導入過程。按下“Ctrl+L”組合鍵打開庫,雙擊剛剛導入的AVI文件圖标,打開“嵌入視頻屬性”界面。

單擊“導出”生成FLV格式文件。

通過以上操作我們成功地将視頻AVI格式轉換成為了FLV格式。這其中發生了什麼變化呢?在默認參數的轉化下。使23MB的AVI文件變成了541KB的FLV文件。讓一個大塊頭“瘦”下來,這就可以輕松的放到網絡中使用了。

使流媒體文件

新建一個Flash文檔,按下“Ctrl+F7”組合鍵打開組件窗口,将Media Componets中的MediaPlayback組件拖入場景中。

用鼠标選中剛拖入的MediaPlayback組件,按下“Alt+F7”組合鍵打開“組件檢查器”界面。組件檢查器中的參數含義如下:定義了播放文件的類型為FLV,也可以播放MP3文件;URL中需要指定FLV文 件的路徑,因為我們将FLV文件和Flash文件放在了同一目錄中,所以這裡隻要指定文件名就可以了;Automatically Play為自動播放;Control Placement和Control Visibility分别為播放面闆的位置和是否可見。

設置完成後,我們可以通過按下“Ctrl+Enter”組合鍵測試效果。視頻圖像和聲音讓你耳目一新!

這樣一個FLV格式的流媒體播放器就完成了。别看它制作簡單,但功能還算齊全,特别是它提供了下載進度的顯示,可以一邊下載一邊播放。這樣我們的網站再也不用愁那些“大塊頭”的視頻文件怎麼放上去了。Flash MX 2004支持很多視頻格式轉化為FLV,自己動手做做,你會發現很多新技巧。不斷的探索,你會成長的很快!

文件結構

FLV是一個二進制文件,由文件頭(FLV header)和很多tag組成。tag又可以分成三類:audio,video,script,分别代表音頻流,視頻流,腳本流(關鍵字或者文件信息之類)。

FLV文件=FLV頭文件+ tag1+tag内容1 + tag2+tag内容2 + ...+... + tagN+tag内容N。

FLV頭文件

一般比較簡單,包括文件類型之類的全局信息

文件類型3bytes 總是FLV(0x46 0x4C 0x56)

版本1byte 一般是0x01,表示FLV version 1

流信息1byte 倒數第一bit是1表示有視頻,倒數第三bit是1表示有音頻,其他都應該是0(有些軟件如flvtool2可能造成倒數第四bit是1,不過也沒發現有什麼不對)

header長度4bytes 整個文件頭的長度,一般是9(3+1+1+4),有時候後面還有些别的信息,就不是9了

FLV頭文件:(9字節)

1-3: 前3個字節是文件格式标識(FLV 0x46 0x4C 0x56).

4-4: 第4個字節是版本(0x01)

5-5: 第5個字節的前5個bit是保留的必須是0.

6-9: 第6-9的四個字節還是保留的.其數據為 00000009 .

整個文件頭的長度,一般是9(3+1+1+4)

文件元信息

flv文件中的元信息,是一些描述flv文件各類屬性的信息。這些信息以AMF格式保存在文件的起始部分。adobe官方的标準flv元信息項目如下:

audiochannels

audiocodecid

audiodatarate

audiodevice

audioinputvolume

audiosamplerate

creationdate

duration (media files only)

fmleversion (Flash Media Live Encoder version) (media files only)

framerate

height

lastkeyframetimestamp (media files only)

lasttimestamp (media files only)

presetname

videocodecid

videodatarate

videodevice

videokeyframe_frequency

width

兩個常用的操作metadata的工具是flvtool2和FLVMDI,都是把keyframes作為一個默認的元信息項目。

FLV Body

FLV body就是由很多tag組成的,一個tag包括下列信息:

previoustagsize 4bytes 前一個tag的長度,第一個tag就是0

tag類型1byte

三類:

* 8 -- 音頻tag

* 9 -- 視頻tag

* 18 -- 腳本tag

數據區長度3bytes時間戳3bytes 單位毫秒,如果是腳本tag就是0

擴展時間戳1byte 作為時間戳的高位

streamsID 3bytes 總是0(不知道幹啥用)

數據區

根據不同的tag類型就有不同的數據區

Audio tag 數據區

audio信息1byte前四位bits表示音頻格式:

* 0 -- 未壓縮

* 1 -- ADPCM

* 2 -- MP3

* 5 -- Nellymoser 8kHz momo

* 6 -- Nellymoser

下面兩位bits表示samplerate:

* 0 -- 5.5kHz

* 1 -- 11kHz

* 2 -- 22kHz

* 3 -- 44kHz

下面一位bit表示每個采樣的長度:

* 0 -- snd8Bit

* 1 -- snd16Bit

下面一位bit表示類型:

* 0 -- sndMomo

* 1 -- sndStereo

audio數據區

不定

video tag 數據區

video信息1byte

前四位bits表示類型:

* 1 -- keyframe

* 2 -- inner frame

* 3 -- disposable inner frame (H.263 only)

後四位bits表示編碼器id:

* 2 -- Seronson H.263

* 3 -- Screen video

* 4 -- On2 VP6

* 5 -- On2 VP6 without channel

* 6 -- Screen video version 2

video數據區

不定

ScriptTagData結構(控制幀)

該類型Tag又通常被稱為Metadata Tag,會放一些關于FLV視頻和音頻的參數信息如:duration、width、height等。通常該類型Tag會跟在File Header後面作為第一個Tag出現,而且隻有一個。

前11個字節為Tag Header結構 第一個AMF包(13字節):

第1個字節表示AMF包類型,一般總是0x02,表示字符串

第2-3個字節為UI16類型值,一般總是0x000A(“onMetaData”長度)。 後面字節一般總為“onMetaData”。(6F,6E,4D,65,74,61,44,61,74,61) 第二個AMF包:

第1個字節表示AMF包類型,一般總是0x08,表示數組。 第2-5個字節為UI32類型值,表示數組元素的個數。

後面即為各數組元素的封裝,數組元素為元素名稱和值組成的對。表示方法如下: 第1-2個字節表示元素名稱的長度,假設為L。 後面跟着為長度為L的字符串。 第L+3個字節表示元素值的類型。

後面跟着為對應值,占用字節數取決于值的類型。

tag格式

tag類型信息,固定長度為15字節

1-4: 前一個tag長度(4字節),第一個tag就是0

5-5: tag類型(1字節);0x8音頻;0x9視頻;0x12腳本數據

6-8: tag内容大小(3字節)

9-11: 時間戳(3字節)(毫秒)(第1個tag的時候總是為0,如果是腳本tag就是0)

12-12: 時間戳擴展(1字節)讓時間戳變成4字節(以存儲更長時間的flv時間信息),本字節作為時間戳的最高位.

在flv回放過程中,播放順序是按照tag的時間戳順序播放.任何加入到文件中時間設置數據格式都将被忽略.

13-15: streamID(3字節) 總是0

相關詞條

相關搜索

其它詞條