当前位置: 首页 > article >正文

ffmpeg.js视频播放(转换)

chrome 临时设置SharedArrayBuffer

"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-features=SharedArrayBuffer

引用的js及相关文件

ffmpeg.min.js

ffmpeg.min.js.map

ffmpeg-core.js

ffmpeg-core.wasm

ffmpeg-core.worker.js

以上几个现成的文件可以在以下链接中获取

https://blog.csdn.net/jchsgwbr/article/details/143252044
https://gitee.com/CXBalCai/ffmpeg-template

视频转换速度有点慢(打开注释的两行代码即可),视频播放可以播放大部分mp4视频,少部分mp4只能放音频(应该是代码里Blob指定了mp4格式所致

html文件,tomcat服务启动后,作为webapp运行。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FFmpeg.js Demo</title>
    <script src="ffmpeg.min.js"></script>
</head>
<body>
    <h1>FFmpeg.js 示例</h1>
    <input type="file" id="upload" accept="video/*">
    <!-- <button id="convert">转换视频</button> -->
    <button id="convert">播放视频</button>
    <video id="output" controls></video>

    <script>
        document.getElementById('convert').onclick = async () => {
            const fileInput = document.getElementById('upload');
            const file = fileInput.files[0];
            if (!file) {
                alert('请上传一个视频文件');
                return;
            }

            const reader = new FileReader();
            reader.onload = async (event) => {
                const data = new Uint8Array(event.target.result);
                const result = await FFmpeg.createFFmpeg({ log: true });
                await result.load();
                result.FS('writeFile', 'input.mp4', data);
                //await result.run('-i', 'input.mp4', 'output.mp4');
                //const outputData = result.FS('readFile', 'output.mp4');
                const outputData = result.FS('readFile', 'input.mp4');

                const blob = new Blob([outputData.buffer], { type: 'video/mp4' });
                const url = URL.createObjectURL(blob);
                document.getElementById('output').src = url;
            };
            reader.readAsArrayBuffer(file);
        };
    </script>
</body>
</html>


http://www.kler.cn/a/411243.html

相关文章:

  • .net的winfrom程序 窗体透明打开窗体时出现在屏幕右上角
  • C 语言学习-06【指针】
  • lua除法bug
  • 如何在 Eclipse 中调试ABAP程序
  • 07 初始 Oracle 优化器
  • 递推进阶与入门递归
  • R和Julia免疫细胞映射到组织切片
  • C语言嵌入式编程实战指南(二):高级技术和最佳实践
  • 云原生世界的多面体:K8s、容器云、裸金属与云原生的深度解析
  • 《通俗易懂 · JSqlParser 解析和构造SQL》
  • Java【多线程】(1)进程与线程
  • YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
  • 基于数据融合的智能家居环境监测系统研究与设计(论文+源码)
  • 在Hadoop上实现分布式深度学习
  • 网络安全风险评估
  • ubuntu设置程序开机自启动
  • 互联网视频推拉流EasyDSS视频直播点播平台视频转码有哪些技术特点和应用?
  • w056基于web的教学资源库
  • 一个计算频率的模块
  • 网络安全事件管理
  • TCP IP协议和网络安全
  • 11.26作业
  • 【ONE·基础算法 || 动态规划(二)】
  • 【DL笔记】神经网络轻量化(CV方向)的一些论文记录
  • PyQt6+pyqtgraph折线图绘制显示
  • 计算机毕业设计Python+大模型美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js