您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關什么是flv、MP4 視頻播放,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
我們平常籠統說的「視頻格式」其實包含三個部分:視頻編碼、音頻編碼、容器格式。其中「編碼」這個概念其實又包含兩個方面:編碼和解碼。「視頻編碼」作為動詞指的是將動態的圖像信息轉化為二進制數據的過程;其逆過程稱為「視頻解碼」。「視頻編碼」作為名詞則通常指的是某種特定的編碼方式。同樣的概念也適用于「音頻編碼」,只不過它轉化的是聲音信息。大多數「視頻文件」都同時包含視頻和音頻,因此編碼后至少都有兩組二進制數據,并且兩組數據必須按照特定的方式同步起來,否則我們看到的畫面和聽到的聲音將不吻合。為了解決編碼后多組不同類型的的數據的存儲、傳輸問題,需要將他們按照一定的規律組織起來,這種組織方式即是「容器格式」。
我們常見的視頻文件擴展名包括 .avi, .rmvb, .mp4, .mkv 等。其實擴展名都是指的某種容器格式。這些容器里面存放的數據可能采用了多種不同的編碼方式。例如,常見的 avi 文件里面存放的通常是 xvid 或 divx 編碼的視頻和 mp3 編碼的音頻。rmvb 文件里面存放的通常是 RV40 編碼的視頻和 cook 編碼的音頻。mp4 文件里面通常存放的是 H.264 編碼的視頻和 AAC 編碼的音頻。mkv 文件里面存放的則可能包含前面各種。
目前業界主流的封裝是MP4.因為MP4有著良好的特性,并對HTML5友好。mp4新規范實際已經支持無縫拼接,真正流媒體封裝器。封裝格式一般都對應的有很多編碼格式,目前主流的H264編碼器是 開源的x264,完美的平衡了各種因素。
其實flv也是流式文件,比其它格式更簡單,但是apple同樣不支持。android ice cream也已經原生支持 hls.而且 使用ts切片方式 可以很容易實現流加密處理。不過HLS它有一個缺點,那就是Chrome(PC)迄今為止內建不支持HLS(m3u8),但是Android/iOS的瀏覽器支持m3u8.
rtmp和rtsp都要求特殊的服務器,例如rtmp要求FMS/red5, rtsp要求darwin等,hls只要普通的server。
視頻監控和視頻通話。這類流媒體采用HLS明顯是不合適的,一般采用HTTP progressive streaming,Android在4.0開始支持這種流媒體格式。能夠支持HPS的容器必須是流式的,如FLV, MKV, Android將支持WEM(即MKV)容器,攜帶VP8視頻格式。因此選擇流媒體傳輸方式還有一個就是 HPS .
國內的很多視頻網站都支持自動切換的,例如在普通PC瀏覽器上使用傳統的flv播放,在Android/iOS上使用m3u8,在Chrome(PC/Android)上使用mp4,方法就是video里提供多個source.
HTTP Live Streaming技術,Adobe 的 Flash 流媒體服務器的新版本也要支持這個技術。有一個巨大優勢:自適應碼率流播(adaptive streaming)。效果就是客戶端會根據網絡狀況自動選擇不同碼率的視頻流,條件允許的情況下使用高碼率,網絡繁忙的時候使用低碼率,并且自動在二者間隨意切換。這對移動設備網絡狀況不穩定的情況下保障流暢播放非常有幫助。實現方法是服務器端提供多碼率視頻流,并且在列表文件中注明,播放器根據播放進度和下載速度自動調整。
特點是將流媒體切分為若干 TS 片段(比如每10秒一段),然后通過一個擴展的 m3u 列表文件將這些 TS 片段集中起來供客戶端播放器接收。一旦切分完成,之后的分發過程完全不需要額外使用任何專門軟件,普通的網絡服務器即可,大大降低了 CDN 邊緣服務器的配置要求,可以使用任何現成的 CDN。分發使用的協議是最常見 HTTP,代理服務器對這個協議的緩存優化相當成熟,而很少有代理服務器對 RTSP 的進行緩存優化。這對播放(軟)實時視頻有相當大的優勢,因為這樣分發后,對源服務器的負載壓力小得多。同樣的好處也是存在的:如果你要在一段長達一小時的視頻中跳轉,如果使用單個 MP4 格式的視頻文件,并且也是用 HTTP 協議,那么需要代理服務器支持 HTTP range request 以獲取大文件中的一部分。不是所有的代理服務器都對此有良好的支持。而 HTTP Live Streaming 則只需要根據列表文件中的時間軸找出對應的 TS 片段下載即可,不需要 range request,對代理服務器的要求小很多。所有代理服務器都支持小文件的高效緩存。
解決方案:
統一使用主流的H264編碼器。
1、上傳的視頻,用ffmepg檢測編碼,例如:MP4 編碼轉成H264. web端播放轉碼后的 flv\mp4.通過nginx代理,安裝flv\mp4 擴展。nginx中的Flv Stream模塊能實現flv流媒體的功能,而且支持flv視頻進度條拖拽,可以安裝yadmi,yadmi的作用是為flv文件添加關鍵幀,實現拖動播放。另外nignx還可以作為方向代理服務器代理后端基于Flash Media Server或者Red5的RTMP/RTMP流媒體服務器
2、轉碼后的flv\mp4, 生成TS 片段,擴展的 m3u 列表文件, 支持android客戶端和IOS客戶端。
3、Android/iOS的瀏覽器支持m3u8,同時也支持標準的mp4.
看完上述內容,你們對flv、MP4 視頻播放有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。