Flash Video

Flash Video（簡稱FLV），是一種網絡視頻格式，用作串流媒體格式，它的出現有效地解決了視頻文件導入Flash後，使導出的SWF文件體積龐大，不能在網絡上有效使用等缺點。
一般FLV文件包在SWF PLAYER的殼裡，並且FLV可以很好的保護原始地址，不易下載，從而起到保護版權的作用。但還是有些視頻格式轉換軟件將FLV轉成一般的視頻格式，如中國的軟件格式工廠。隨著視頻網站的豐富，在2008年時這個格式已經非常普及，包括YouTube、NICONICO動畫、Google Video、Yahoo! Video、MySpace，以及中國的優酷、酷6、BiliBili等大部分視頻分享網站均採用這個格式。
然而，Flash存在著包括大量耗電以及資訊安全等若干問題，隨著移動設備與流動應用程式的發展與普及而日益嚴重，2010年喬布斯曾公開抨擊。2011年11月9日，Adobe公司宣佈停止開發個人電腦平臺以外的Flash Player，而專注於開發非專利標示語言HTML5。
2016年，Youtube已經改採用HTML5技術，Google公司表示flash廣告會自動轉檔為HTML5形式。2015年6月，Google宣佈公司旗下的Chrome瀏覽器停止了Flash外掛的自啟動。2015年9月1日起，Chrome瀏覽器預設不支援這些外掛程式，並且Amazon公司旗下電子商務和廣告平臺也停止使用Flash技術。
中國視頻網站嗶哩嗶哩為了減少遷移至HTML5成本而開發了flv.js，可以通過瀏覽器支持的Media Source Extension播放FLV文件格式中的H.264和AAC編碼內容，所以如今Chrome、Edge等瀏覽器仍然可以收看來自BiliBili的影片。
2020年12月31日，Chrome作為最後一個宣佈將不再支援使用Flash的應用程式瀏覽器，flv影片均無法透過Google Chrome收看，除開BiliBili、優酷等視頻網站以外的影片網站均停止使用flv作為影片格式。

**F4V**
FLV在H.264的視頻規格或是AAC的音源規格都達到功能極限，為了克服這個格式上的限制，F4V於是誕生。F4V是基於ISO base media file format制定出來的容器格式（Container format）。至少於Flash Player 12.0 update 3以上版本才能播放。F4V支援的視頻類型為H.264，影像類型為GIF、PNG以及JPEG，音頻類型為AAC以及MP3。

**FLV文件構成**
FLV文件=FLV頭文件+ tag1+tag內容1 + tag2+tag內容2 + ...+... + tagN+tag內容N

**FLV頭文件**
FLV頭文件：（9字節）
*1-3：前3個字節是文件格式標識（FLV 0x46 0x4C 0x56）。
*4-4：第4個字節是版本（0x01）
*5-5：第5個字節的前5個bit是保留的必須是0.
**第5個字節的第6個bit音頻類型標誌（TypeFlagsAudio）
**第5個字節的第7個bit也是保留的必須是0
**第5個字節的第8個bit視頻類型標誌（TypeFlagsVideo）
*6-9:    第6-9的四個字節還是保留的。其數據為00000009 .
*整個文件頭的長度，一般是9（3+1+1+4）

**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

**flv文件元信息（metadata）**
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播放程式**

**桌面軟體**
這些播放程式包括：- Adobe Media Player- BitComet FLV Player- ExtraPlayer- GOM Player- K-Multimedia Player- MPlayer- Perian- PotPlayer- Real Player 11- VLC media player- FLV Player by Martijn de Visser- Quick Time 10- 任何基於FFmpeg的播放程序- 任何利用DirectShow配合ffdshow的播放程式
** Media Player Classic
** MPC-HC
** MPC-BE
** Windows Media Player
** Windows Media Center（需要改動註冊表）
** 暴風影音
** PowerDVD

**桌面軟體與網頁端播放程式**
 JW FLV Player（授權方式：CC by-nc-sa）-  Moyea Web Playerdate=20090607091605 （免費使用。可裝上插件進行功能上的擴展，所見即所得圖形界面軟件。）

**網頁端播放程式**
 Dreamsocket Media Player（授權方式：CC by-nc-sa）- FV H.264 FLV Ads Player免費軟體- Sonettic Cinema FLV Player免費與商業版軟體均有- Hitasoft Free RIPE FLVPlayer- FLV / H.264 Video Player I, II and III by FlashXpert

**註釋及參考來源**

**外部連結**
  Flash Developer Center - Flash Video Articlesdate=20070407231356 -  Adobe Flash (SWF) and Flash Video (FLV) File Format Specification Licensing Page（adobe.com）-  Adobe Flash FLV Video File Formatdate=20070425195533 （Library of Congress）