亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將視頻編解碼器轉換為 vp9 到 mp4?

將視頻編解碼器轉換為 vp9 到 mp4?

明月笑刀無情 2023-05-11 14:14:16
我正在使用 js 中的 getUserMedia 函數錄制視頻let options = {mimeType: 'video/webm;codecs=vp9'};// here mediaStreamObj is stream returning from the getUserMedialet mediaRecorder = new MediaRecorder(mediaStreamObj, options);我希望編解碼器是 h264 我也嘗試過 video/webm;codecs=h264 在這里它給出 mime 類型作為 video/x-matroskavideo/mp4;codecs=h264 - 不支持拋出錯誤我需要 mimeType 作為 mp4 和編解碼器 h264。因為我正在進行視頻分析(亞馬遜識別)。我想在 php 中使用 startLabelDetection 來檢測視頻中的標簽,而亞馬遜只接受 h264 格式的視頻。https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-rekognition-2016-06-27.html#startlabeldetection有沒有人可以使用 js(首選)或 php 將視頻 mime 類型轉換為 mp4,以便我可以將它與 amazon rekognition 一起用于視頻分析?預期的模仿類型:您可以在此處查看 mime 類型https://www.metadata2go.com/
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

您無法從瀏覽器的MediaRecorder API獲取 MP4 。我相信,您可以使用亞馬遜的 Elastic Transcoder 將 webm 轉換為 mp4。如果您還沒有這樣做,您還應該嘗試將您的 webm / h.264 文件提供給 Rekognition。

正如您所意識到的,您的要求分為兩部分,裝箱和視頻。我們需要一些詞匯來詳細回答您的問題。

拳擊

首先是所謂的“裝箱”或容器格式。webm是一種基于Matroska的格式,又基于可擴展二進制標記語言(EBML)。EBML 是為 Matroska 開發的。它類似于 XML,但占用更少的 RAM 和磁盤空間,因為它幾乎沒有那么冗長。?webm本身是一種開放且免版稅的媒體文件標準。

另一種裝箱格式是MPEG-4的。它幾乎與 Apple 的mov電影文件格式相同,稱為mp4格式。

WebRTC 有自己的適合數據報(而不是數據流)通信的裝箱方案。超出你的問題范圍。

編解碼器

那些 webm 或 mp4 盒子里有什么?音頻和視頻數據。(它們還可以根據需要包含其他時間同步的數據流,如字幕。)

  • h.264也稱為高級視頻編碼、MPEG-4 Part 10 或 AVC。

  • vp8,由谷歌收購的 On2 開發的開源和無專利編解碼器

  • h.265也稱為高效視頻編碼或 HEVC。

  • vp9,谷歌開發的最新開源和無專利編解碼器。

后兩個較新的編解碼器需要更多的計算周期來壓縮。而 h.265 仍然承受著巨大的專利負擔。所以瀏覽器和其他通用軟件通常使用前兩個,h.265 和 vp8。

瀏覽器可以處理什么?

Chromium 瀏覽器(Google Chrome、Edge)和 Firefox 具有MediaRecorder API。他們可以生成包含音頻和/或視頻的 webm-boxed 數據流。它們不能生成 mp4 盒裝數據流。

來自這些瀏覽器的數據流可以(截至 2020 年 10 月)包含 VP8 或 H.264 編碼的視頻。對于視頻數據,可用的 MIME 類型是

  • video/webm; codecs="vp8"(對于 vp8)

  • x-matroska/webm; codecs="avc1.42E01E"video/webm; codecs="avc1.42E01E"H.264。

正式地說,對于使用 H.264 的視頻流,您應該使用x-matroska/video而不是webm/video作為 MIME 類型,即使這兩種 MIME 類型都可以在瀏覽器中使用。webm 標準要求其視頻編解碼器為 vp8 或 vp9,因此video/webm; codecs="avc1.42E01E",從形式上講,不符合該標準。

Javascript 模塊

  • npm ebml可以將數據拆箱和裝箱到 webm 流中。我已經在大規模生產中使用了它的拆箱功能。有用。

  • npm mp4-box-encoding可以將數據打包成 mp4 流。我沒用過這個。


查看完整回答
反對 回復 2023-05-11
  • 1 回答
  • 0 關注
  • 265 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號