鍍金池/ 問(wèn)答/HTML5  HTML/ 前端如何在上傳之前對(duì)視頻文件進(jìn)行壓縮?

前端如何在上傳之前對(duì)視頻文件進(jìn)行壓縮?

最近做了一個(gè)vue項(xiàng)目-的視頻上傳的功能,
需求是這樣的:用戶打開(kāi)頁(yè)面 ,會(huì)有一個(gè)打開(kāi)攝像頭的按鈕,當(dāng)用戶點(diǎn)擊按鈕時(shí),會(huì)打開(kāi)手機(jī)攝像頭對(duì)用戶進(jìn)行攝像。
問(wèn)題:攝像完之后,iOS上傳沒(méi)有問(wèn)題,安卓的一直在轉(zhuǎn)圈,無(wú)法傳成功。
之后檢查 發(fā)現(xiàn)安卓前置攝像頭錄制10秒 文件就有20多M。而iOS只有幾兆

想知道前端能不能壓縮音頻文件 有什么處理方法 對(duì)視頻文件上傳之前進(jìn)行壓縮?
網(wǎng)上搜索了很多方法 都沒(méi)有用

視頻上傳方法:

<a href="javascript:;" class="a-upload">
  <input type="file" class="videoBtn" id="video"  @change="onUpload" accept="video/*" capture="user">
  開(kāi)始錄制視頻
  </a>
 onUpload(event){
    var _this = this;
    let orderid = this.$route.query.orderid;
    console.log(event)
    var reader = new FileReader();
    var video = event.target.files[0];
    reader.readAsDataURL(video);
    reader.onloadend = function () {
        console.log(reader.result);
        _this.upLoadVideo(reader.result, orderid)
    }
},
回答
編輯回答
祈歡

前端壓縮多半是不行的,只有服務(wù)器端程序才對(duì)視頻處理,視頻分片上傳是一種解決思路

2017年7月17日 06:29
編輯回答
離殤

圖片壓縮你可以看https://zhuanlan.zhihu.com/p/... 視頻壓縮還是建議通過(guò)后端服務(wù)接口做,上傳后通過(guò)ffmpeg就可以。

2017年8月26日 18:06
編輯回答
你的瞳

提一點(diǎn),不要使用 readAsDataURL 用 readAsBinaryString. DataURL 是base64編碼,編碼后會(huì)暴漲 1/3 !或者用 formData 直接 append 這個(gè) file 。

2018年1月13日 21:17
編輯回答
久礙你

視頻壓縮應(yīng)該是不可能了,要不換成分塊上傳?

2017年12月8日 05:03
編輯回答
孤慣

跟樓主一樣的問(wèn)題 請(qǐng)問(wèn)樓主解決了嗎

2017年1月22日 10:41
編輯回答
離人歸

這個(gè)問(wèn)題已經(jīng)解決了,一直忘了提交答案。
查詢了很多資料,發(fā)現(xiàn)前端對(duì)視頻進(jìn)行壓縮目前是做不到的。
想要在移動(dòng)端把大內(nèi)存視頻傳到服務(wù)端,目前我所知道的解決方式有兩種:
1、前端對(duì)視頻進(jìn)行分塊上傳;
2、前端對(duì)視頻進(jìn)行轉(zhuǎn)碼后上傳(不推薦);

最終我所選的就是用的七牛云存儲(chǔ),前端把視頻上傳到七牛云上。
七牛云的做法就是把前端的視頻分塊上傳到服務(wù)端保存

大于 4M 時(shí)可分塊上傳,小于 4M 時(shí)直傳
分塊上傳時(shí),支持?jǐn)帱c(diǎn)續(xù)傳
圖片描述
參考七牛云鏈接
七牛云JavaScript SDK

2017年10月9日 17:06