簡體   English   中英

上傳前檢查 MP4 是否為 H264 編碼

[英]Checking if MP4 is H264 encoded before upload

我已經構建了一個應用程序來管理上傳廣告,營銷團隊選擇他們想要圖片還是視頻廣告,並填寫帶有標題、開始時間等的表單。然后這些數據存儲在我的數據庫中。

但是,對於視頻,有一個額外的步驟,它們被上傳到 AWS,並且這種配置方式僅適用於 H264 編碼的視頻。

我想為視頻添加一些客戶端驗證,我發現了一個相關的問題,它檢查瀏覽器是否支持 H264:

如何檢測 HTML5 視頻標簽支持的視頻格式?

這是答案用於檢查支持的代碼

var testEl = document.createElement( "video" ),
    mpeg4, h264;

if ( testEl.canPlayType ) {
    // Check for h264 support
    h264 = "" !== ( testEl.canPlayType( 'video/mp4; codecs="avc1.42E01E"' )
        || testEl.canPlayType( 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' ) );
   );

我檢查了控制台中的視頻,將帶有 H264 編碼的視頻與不帶有 H264 編碼的視頻進行了比較,但在與 H264 相關的屬性中我找不到任何內容。 src 列出 MP4 但沒有別的:

src: data:video/mp4;base648766554654 etc.

您需要一個用於 JavaScript 的 MP4 解析器,例如mp4box.js

在 MP4Box 的情況下,您可以附加緩沖區直到解析moov框,在最壞的情況下,這可能發生在文件末尾。

文檔中的示例:

var MP4Box = require('mp4box').MP4Box;
var mp4box = new MP4Box();
mp4box.onError = function(e) {};
mp4box.onReady = function(info) {};
mp4box.appendBuffer(data);
mp4box.appendBuffer(data);
mp4box.appendBuffer(data);
...
mp4box.flush();

onReady()返回文件信息:

mp4box.onReady = function (info) {
    console.log("Received File Information");
}

在其中,您有帶有相應codec tracks

有關codecs格式的詳細信息,請參閱RFC 6381

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM