FFmpeg——使用Canvas录制视频尚存问题的解决方案

news2024/11/25 20:20:10

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展
📃个人状态: 研发工程师,现效力于中国工业软件事业
🚀人生格言: 积跬步至千里,积小流成江海
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js🍒Three.js🍖数据结构与算法体系教程

🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

文章目录

    • 前言
    • FFmpeg
    • FFmpeg的基本使用
    • 总结

前言

大家好,这里是前端杂货铺。

上篇文章 Canvas录制视频 我们讲解了在Canvas 上录制视频的解决方案,但是仍存在几个问题:

  • 通过非浏览器打开视频,无法拖动进度条
  • MediaRecorder 原生支持 webm,不支持 avi、mp4、flv等格式
  • 视频属性信息有丢失,无时长、数据速率和总比特率均为 0kbps,无帧速率

经过一段时间的调研,发现可以使用 FFmpeg 完美的解决该问题

FFmpeg

什么是 FFmpeg ?

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

简单来讲,通过 FFmpeg 我们可以实现不同视频格式的转换,并且不影响视频的属性信息

下载 FFmpeg,我们可以打开 FFmpeg-Builds 进行选择安装(博主安装的是:ffmpeg-master-latest-win64-gpl.zip)

在这里插入图片描述


下载完成后,我们需要对其进行解压,推荐使用 7-zip,不易导致解压 FFmpeg 时数据丢失(其它解压工具应该也没太大问题,可以尝试使用)

7-zip 免费开源,体积 2M 以内,很容易安装 7-zip下载地址,按需选择即可

在这里插入图片描述


FFmpeg 解压后的目录如下:

在这里插入图片描述


FFmpeg 安装完成之后,我们需要配置环境变量 此电脑-属性-高级系统设置-环境变量,找到 path 进行编辑,添加我们安装 FFmpeg 的 bin 目录的地址

在这里插入图片描述


之后我们检查 FFmpeg 是否真正安装并配置成功: win + r 打开命令行,输入 ffmpeg –version,回车,如果显示如下,恭喜你安装配置成功!

在这里插入图片描述


FFmpeg的基本使用

使用我们 Canvas录制视频 的代码录制一段视频到桌面 在这里插入图片描述,它是 .webm 格式的,我们接下来使用 FFmpeg 把 .webm 格式转为 mp4 格式

// 把桌面上的 前端杂货铺0.3069.webm 视频转为 Demo.mp4视频(同时更改了名称和后缀名)
ffmpeg -i C:\Users\Administrator\Desktop\前端杂货铺0.3069.webm Demo.mp4

在这里插入图片描述
如下,则执行成功:

在这里插入图片描述


与此同时,我们的 Demo.mp4 也生成出来了 在这里插入图片描述

打开视频,进度条可以正常的移动和拖动

在这里插入图片描述


右键-属性,我们查看该视频的基本信息,发现时长、帧宽度、帧高度、数据速率、总比特率和帧速率均有正确的信息

在这里插入图片描述

至此,问题解决完毕…


总结

FFmpeg 是非常强大的多媒体视频处理工具,它包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。

为了解决 Canvas录制视频 的问题,本篇文章我们着重介绍了其 视频格式转换功能的使用

当然,其视频格式转换功能并不止于此,比如为视频帧率的帧率设置为 10 输出,以下代码即可实现:

ffmpeg -i C:\Users\Administrator\Desktop\前端杂货铺0.3069.webm -r 10 Demo.mp4

更多 FFmpeg 的功能请自行查阅文档…

好啦,本篇文章到这里就要和大家说再见啦,祝你这篇文章阅读愉快,你下篇文章的阅读愉快留着我下篇文章再祝!


参考资料:

  1. Canvas录制视频【作者:前端杂货铺_CSDN】
  2. 百度百科 · ffmpeg
  3. Windows下安装使用ffmpeg【作者:糖果_知乎】
  4. ffmpeg转码视频【作者:音视频开发老马_CSDN】

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DELPHI安卓开发如何初始化frame 生成create方法

记住名字需要一样create 点击create这时按住ctrlshiftc 弹出以后就就完成frame的初始化create方法

Map和Set(JAVA)

本篇文章建议在了解了哈希表和二叉搜索树后食用更佳。 链接: 二叉搜索树 和 哈希表 (JAVA) Map和Set都是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。 Map接口 Map是一个接口,不能直接实例化对象,如果…

kibana显示时间数据时的时区问题及时间显示格式设置

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

电源纹波示波器测试方法:示波器纹波测试步骤详解

示波器测试电源纹波的步骤 一、准备测试设备 测试之前选择一台示波器和合适的电压探头。探头有无源探头和有源探头两种,综合来讲一般选择衰减比例1:1的无源探头测量输出阻抗及频率较低的电源纹波。 二、连接电源 连接示波器探头和电源输出端,确保连接完好…

Kafka反序列化RCE漏洞(CVE-2023-34040)

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块,用于简化在 Spring 应用程序中集成 Apache Kafka 的过程,记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer,当用户将…

PSP - 蛋白质-核酸复合物结构预测 RoseTTAFoldNA 算法框架 (Protein-RNA、Protein-DNA、RNA)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134208615 Paper: Accurate prediction of nucleic acid and protein-nucleic acid complexes using RoseTTAFoldNA GitHub: RoseTTAFold2NA 蛋白…

分享99个工作总结PPT,总有一款适合您

分享99个工作总结PPT,总有一款适合您 PPT下载链接:https://pan.baidu.com/s/1ETaGRUsTRRQq3i5PJUX7tA?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 黑金商务路演工作汇报PPT模板 古韵中国风财务计…

JavaSE java对象的比较

目录 1 问题提出2 元素的比较2.1 基本类型的比较2.2 对象的比较 3 对象的比较3.1 覆写基类的equal3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比 4 集合框架中PriorityQueue的比较方式5 总结 1 问题提出 上节课我们讲了优先级队列,优先级队列在…

汇编-字符串

字符串常量是用单引号或双引号括起来的一个字符序列 当以下面例子中的方式使用时,嵌入引号也是允许的: 正如字符常量以整数形式存放一样,字符串常量在内存中的存储形式为整数字节值的序列。例如, 字符串字面量“ABCD”包含四个字…

SPSS单样本K-S检验

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

第25期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

GEE:GEE中实现简单计算器

作者:CSDN _养乐多_ 本文记录了在 Google Earth Engine(GEE)上实现简单计算器的代码。 APP链接:https://949384116.users.earthengine.app/view/simplecalculator 文章目录 一、完整代码二、代码链接 一、完整代码 // 定义初始…

二十、泛型(1)

本章概要 基本概念 与 C 的比较 简单泛型 一个元组类库一个堆栈类RandomList 基本概念 普通的类和方法只能使用特定的类型:基本数据类型或类类型。如果编写的代码需要应用于多种类型,这种严苛的限制对代码的束缚就会很大。 多态是一种面向对象思想的泛…

预制构建生产管理系统

在建筑施工领域,预制构件的使用越来越广泛,它能够提高工程质量和施工效率,减少施工现场对环境的影响。通过凡尔码的二维码管理平台,系统从:生产过程、生产数据、生产计划、生产管理、成品交付等多个环节、工序和流程进…

mermaid学习第一天/更改主题颜色和边框颜色/《需求解释流程图》

mermaid 在线官网: https://mermaid-js.github.io/ 在线学习文件: https://mermaid.js.org/syntax/quadrantChart.html 1、今天主要是想做需求解释的流程图,又不想自己画,就用了,框框不能直接进行全局配置&#xff0…

如何助力机构单位提升运营效率?有什么靠谱的大数据管理平台?

随着数字化时代的到来,大数据管理平台已成为机构单位提高效率、优化资源配置的关键工具。其中,工单管理系统作为大数据管理平台的重要组成部分,对于机构单位运营的优化和提升具有举足轻重的地位。本文小编将为您介绍一款优秀的工单管理系统—…

Zygote进程通信为什么用Socket而不是Binder?

Zygote进程是Android系统中的一个特殊进程,它在系统启动时被创建,并负责孵化其他应用进程。它的主要作用是预加载和共享应用进程的资源,以提高应用启动的速度。 在Android系统中,常用的进程通信方式有以下几种: Intent…

概率论和数理统计(一)基本概念

前言 生活中对于事件的发生,可以概括为 确定现象:在一定条件下必然发生,如日出随机现象:在个别试验中其结果呈现出不确定性,在大量重复试验中其结果又具有统计规律的现象,称之为随机现象。 随机现象的特点&#xff…

独家分享 | BI零售数据分析模板,可视化,更易懂

“人、货、场”是零售数据分析的三大关键,只要能又快又透彻地掌握这三大关键的数据情况,即可为零售运营决策提供关键的数据支持,提高盈利、降低成本、优化采购库存结构等。奥威BI软件这套BI零售数据分析模板套装围绕“人、货、场”预设了数十…

低代码平台如火如荼,告诉我它具体能做什么?

目录 一、前言 二、低代码平台 三、低代码平台的优劣 四、低代码能解决哪些问题? 五、好用且强大的低代码平台 六、结语 一、前言 目前低代码平台如火如荼。这一新兴技术为企业提供了一种高效、灵活、快速开发应用程序的方法,并在短时间内取得了巨大成功…