当前位置:首页 » 《关注互联网》 » 正文

纯前端 利用ffmpeg.js将图片帧合成为视频

9 人参与  2024年04月01日 13:50  分类 : 《关注互联网》  评论

点击全文阅读


安装ffmpeg.js

npm install ffmpeg.js

gitHub

https://github.com/Kagami/ffmpeg.js/blob/master/README.md#files

 

代码

渲染图片,拿到图片帧:

// 渲染+合成视频async renderToVideo() {for(var i=0;i<this.frameNum;++i){this.render_video()}this.imgToVideo()},// 渲染+合成视频async render_video() {// console.log('渲染,存图')this.picNum++; // 图片数量        // 渲染相关if (this.mixer) {this.mixer.update(1.0/24.0) // // 更新混合器相关的时间}this.renderer.render(this.scene, this.camera) //执行渲染操作var img = this.renderer.domElement.toDataURL() //拿到图片 // 默认为'image/png'格式var imgArrayBuffer = this.Base64toArrayBuffer(img)this.imgArrayBufferData.push({ name: `${this.picNum}.png`, data: imgArrayBuffer})},// 将base64编码的图片转换为arraybufferBase64toArrayBuffer(base64Data) {var base64 = base64Data.replace(/^data:image\/\w+;base64,/, "");const rawData = window.atob(base64);const outputArray = new Uint8Array(rawData.length);for (let i = 0; i < rawData.length; ++i) {outputArray[i] = rawData.charCodeAt(i);}return outputArray;},

合成视频:

async imgToVideo() {const ffmpeg = require("ffmpeg.js/ffmpeg-mp4.js");var time = this.videoTime.toString()let stdout = "";let stderr = "";console.log("test1");const result = ffmpeg({MEMFS: this.imgArrayBufferData,arguments: ['-f', 'image2', '-i', '%d.png', "-r","24",'-t', time,"-pix_fmt","yuv420p", "-preset","ultrafast",'video.mp4'],print: function(data) { stdout += data + "\n"; },printErr: function(data) { stderr += data + "\n"; },onExit: function(code) {    // console.log("Process exited with code " + code);    // console.log(stdout);    // console.log(stderr);  }});console.log(result);// console.log(result.MEMFS[0].data);// 网页下载视频this.videoUrl = URL.createObjectURL(new Blob([result.MEMFS[0].data], {type: 'video/mp4'}))const element = document.getElementById('container')const link = document.createElement('a')link.href = this.videoUrllink.setAttribute('download', `${new Date().getTime()}.mp4`)link.click()element.appendChild(link)// 小程序中下载视频//this.videoArr = result.MEMFS[0].data//jWeixin.miniProgram.navigateTo({//url: '/pages/downloadVideo/downloadVideo?videoArr=' + this.videoArr//})},

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/88962.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • (番外)+(全书)他站在回忆尽头:全书+后续+结局(乔若兮沈辞安)_(他站在回忆尽头:全书+后续+结局)列表_笔趣阁(乔若兮沈辞安)
  • (番外)+(全书)且行且珍惜:全书+后续+结局(陆晨苏雅婷程岩)_且行且珍惜:全书+后续+结局免费_笔趣阁(陆晨苏雅婷程岩)
  • 「恋爱三年男友将我当作替身,可我说分手后他却疯了」后续更新+番外_[陈思遥白月光瑶瑶]精彩章节免费试读
  • 自当生如星辰耀眼:+后续+结局(沈念之苏沐阳)_自当生如星辰耀眼:+后续+结局
  • 极品们跪下!真千金回来杀疯了:结局+番外(沈映星沈嘉齐),极品们跪下!真千金回来杀疯了:结局+番外
  • 全网独家(心机表姑娘:全书+后续)心机表姑娘:全书+后续_林知羡谢添列表_笔趣阁(心机表姑娘:全书+后续)
  • (番外)+(全书)《半阙情书迟:全书+后续+结局》(孟挽歌孟予淮)免费在线_《半阙情书迟:全书+后续+结局》孟挽歌孟予淮全文
  • 她落黄泉无归期:结局+番外(沈漾顾祈深:结局+番外)完结_(沈漾顾祈深)列表_笔趣阁(她落黄泉无归期:结局+番外)
  • 她落黄泉无归期:结局+番外沈漾顾祈深:全书+后续+结局免费_(她落黄泉无归期:结局+番外)沈漾顾祈深列表_笔趣阁(沈漾顾祈深)
  • 清明祭祖,女友坟前羞辱我穷限时免费章节抢先看_王晓燕晓燕弟弟小说节选试读
  • 爱如烟花,转瞬即逝:完结+结局+番外(顾鸢沈景初)_(顾鸢沈景初)爱如烟花,转瞬即逝:完结+结局+番外列表_笔趣阁(顾鸢沈景初)
  • (番外)+(全书)此番离去永相别:全书+后续+结局(裴宁璇谢鸣修)_此番离去永相别:全书+后续+结局列表_笔趣阁(此番离去永相别:全书+后续+结局)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1