js-获取flv流文件二进制数据并分析

2024-09-05 11:48

本文主要是介绍js-获取flv流文件二进制数据并分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

js-获取flv流文件二进制数据并分析 目录

文章目录

  • 前言
  • 效果展示
  • 代码实现
    • `index.html`


前言

  • flv流文件,进行16进制转换,并用js解析

效果展示

在这里插入图片描述

代码实现

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Video</title><style>body{max-width: 90%;}#hex{background-color: #acf5ff;width: 40%;float: left;}#string{background-color: #ffcabf;width: 40%;float: right;word-wrap: break-word;}</style>
</head>
<body>
<input type="file" id="file">
<div id="hex">Hex:</div>
<div id="string">String:</div>
</body>
<script>const reader = new FileReader();const fileDom = document.getElementById('file');fileDom.addEventListener('change', event=>{const file = event.target.files[0];// console.log(file);reader.readAsArrayBuffer(file);reader.onload = function () {console.log(reader.result);const view = new DataView(reader.result);let arr = [];if (String.fromCharCode(view.getInt8(0)).toLowerCase() == 'f' &&String.fromCharCode(view.getInt8(1)).toLowerCase() == 'l' &&String.fromCharCode(view.getInt8(2)).toLowerCase() == 'v' ) {console.log(view.getUint8(0).toString(16));for (let i = 0, tmp = ''; i < view.byteLength; i++){let str = view.getInt8(i).toString(16);str = str.length < 2 ? '0x0' + str : '0x' + str;tmp += str + ' ';if (i < 9){if (i == 8) {tmp = 'Header:<br>' + tmp;arr.push(tmp);tmp = '';arr.push('Flv Body: ');}}else if(i >= 9) {if (i%16 == 0){// console.log(view.getInt8(i+6),view.getInt8(i+7),view.getInt8(i+8));arr.push(tmp);tmp = '';}}}}document.getElementById('hex').innerHTML = arr.join("<br />");reader.readAsBinaryString(file);reader.onload = function () {document.getElementById('string').innerHTML = reader.result;}}});
</script>
</html>

这篇关于js-获取flv流文件二进制数据并分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138874

相关文章

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1