百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Node.js服务端使用ffmpeg压缩视频处理技巧

yuyutoo 2025-01-06 16:13 4 浏览 0 评论

在Node.js中,我们可以使用fluent-ffmpeg进行视频的合并、拼接、修改、转码、压缩等操作。网上的资料有很多,但是大部分是英文的,对于普通开发者来说,要轻松地了解使用方法还是很有难度的。

智趣配音Pro小程序是一款语音合成工具,受手机限制想要保存文件到相册,就必须以视频的格式才可以,那么就会需要对音频文件进行转码,并保存成视频文件,然后再下载到手机相册里。转码后的视频文件大小对于用户体验来说是相当重要的,在尽量保证不损失音质的情况下,压缩视频文件大小能显著提升用户下载速度。本文将简单介绍如何对音频进行转码并压缩视频。

生成视频文件步骤

  1. 我们需要准备一张图片和一段音频文件。
  2. 通过addInputs属性将图片和音频拼接。
  3. 通过size属性设置视频文件的大小。
  4. 通过videoBitrate设置视频码率。
  5. 通过videoCodec设置视频格式。
  6. 通过audioBitrate设置音频码率。
  7. 通过fps设置视频帧数。

通过上面步骤生成的文件大小会比较大,我们需要对视频文件大小进一步优化,最基础的办法是把码率数值降低,如果视频文件不需要播放动画只是一张图片的话,可以把FPS数值也降低改成1(默认为25)。

上面没提到的loop属性,需要指出的是这里是采用图片文件和音频文件进行拼接的视频,如果不设置视频长度,合成后的视频文件默认只有1秒,所以需要自行获取音频的长度,然后去循环图片的长度,保证视频长度和音频是一致。

如何进一步优化视频文件?

尝试了上面修改码率的方法后,发现最后码率改得再小,视频文件依然压缩有限,于是在网上搜索了参考了下别人的方案,发现比较靠谱的压缩方案是通过

ffmpeg的pass属性进行二次压缩。

如何实现呢?请接着往下看:

重点在outputOptions参数,通过pass属性对合成的视频进行2次编码,最后得到的文件能够有很大的压缩提升。

有兴趣的朋友可以参考上面的代码自己动手试一试,也可以点击下方小程序卡片访问体验一下。

(此处已添加小程序,请到今日头条客户端查看)

相关推荐

ASP.NET Core EFCore 属性配置与DbContext 详解

...

asp.net常考面试题(aspnet题库)

asp.net常考面试题一,列举ASP.Net页面之间传递值的几种方式?1,使用QueryString,如:......?id=1;response.Redirect()......2,使用Sessi...

在Windows系统搭建.NET Core环境并创建运行ASP.NET网站

微软于6月27日在红帽DevNation峰会上正式发布了.NETCore1.0、ASP.NET1.0和EntityFrameworkCore1.0,其将全部支持Windows、OSX和...

ASP.NET Core 中的最佳 ORM 工具比较:Entity Framework 与 Dapper

...

ASP.NET Core API 编写简单接口,连接数据库

在ASP.NETCore中连接数据库需要以下步骤:...

ASP.NET Core 9.0的7个方面重大更新!

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。随着.Net9发布,ASP.NETCore9.0也迎来重大更新,主要体现在以下7个方面。...

ASP.NET Core 健康监控:从入门到实战

在ASP.NETCore中,...

如何在服务器端使用ASP.NET Core 2创建甘特图?

本教程为您提供有关如何在服务器端使用ASP.NETCore2创建Gantt的分步说明。为了组织与数据库的通信,使用了实体框架核心。该应用程序是在VisualStudio2017的帮助下构建的。...

提高 ASP.NET Web 应用性能的 24 种方法和技巧

在这篇文章中,将介绍一些提高ASP.NETWeb应用性能的方法和技巧。众所周知,解决性能问题是一项繁琐的工作,当出现性能问题,每个人都会归咎于编写代码的开发人员。以下为译文那性能问题到底该如何解...

ASP.NET Core跨平台技术内幕(net core 跨平台)

ASP.NETCore设计初衷是开源跨平台、高性能Web服务器,其中跨平台特性较早期ASP.NET是一个显著的飞跃,.NET现可以理直气壮与JAVA同台竞技,而ASP.NETCore的高性能特性更...

ASP.NET Core Blazor 的部署(asp.net core官方文档)

前言:在部署时踩了不坑,现总结一下,给有需要人避坑,也作为自己的一个笔记,便于以后查阅及参考。摘要:采用ASP.NETCore自托管,Nginx反向代理。一、ASP.NETCoreBlazo...

Windows Forms应用程序中集成一个ASP.NET API服务

在WindowsForms应用程序中集成一个ASP.NETAPI服务可以是一种有效的方式来为桌面应用程序提供网络服务能力。这种方式特别适用于需要在桌面环境中运行的小型服务。我们可以利用HttpLi...

为什么网站服务器会出现500错误代码?该怎么修复?

  网站服务器出现500错误代码是什么原因?怎么解决?在运营网站的过程中,我们难免会遇见各种问题,比如最常见的500InternalServerError内部服务器500错误代码,只要是500或...

使用 Nginx 在 Linux 上托管 ASP.NET Core

先决条件使用具有sudo特权的标准用户帐户访问Ubuntu16.04服务器。...

php语言是asp还是jsp(php用的是什么语言)

PHPPHP,HypertextPreprocessor,最初在95年问世(那时以前叫PersonalHomePage)。PHP最初是制作动态网页的服务器端脚本语言,但现在PHP已经可以作为co...

取消回复欢迎 发表评论: