使用ffmpeg下载合并ts视频为mp4
https://www.gyan.dev/ffmpeg/builds/
2、解压后,window dos 进入相应的bin目录
3、运行ffmpeg合并ts文件
ffmpeg -i "d:\下载.m3u8" -c copy "d:\合并.mp4"
出现下面错误时,可加相应参数解决:
Filename extension of 'd:\下载\crypt.key' is not a common multimedia extension, blocked for security reasons.If you wish to override this adjust allowed_extensions, you can set it to 'ALL' to allow all
ffmpeg -allowed_extensions ALL -i "d:\下载.m3u8" -c copy "d:\合并.mp4"
------------------------
关于 IV(初始化向量):
检查您的 M3U8 文件,#EXT-X-KEY 标签中是否包含了 IV 参数(例如 IV=0x1234567890ABCDEF1234567890ABCDEF)。
如果没有指定 IV,FFmpeg 可能会使用默认值(比如序列号或全零)。如果解密后视频花屏或无法播放,可以尝试在 FFmpeg 命令中手动指定 IV(如果已知):
ffmpeg -allowed_extensions ALL -decryption_iv 1234567890ABCDEF1234567890ABCDEF -i "input.m3u8" -c copy "output.ts"
密钥格式:FFmpeg 期望的密钥通常是二进制文件或十六进制字符串。如果您的密钥是 Base64 编码的,需要先解码。可以使用在线 Base64 解码工具,或者使用 Python/Node.js 等脚本语言进行转换
用虚拟打印机检测打印效果
安装虚拟打印机:DoroPDF Writer、Bullzip PDF Printer
打印时选择虚拟打印,会自动生成pdf文件或图片文件,图片效果即为最终打印效果,不需要用真实纸张打印,快捷方便。
修改DoroPDF的配置文件Doro.ini,可以设置输出文件类型、覆盖提醒、文档转换类型、静默转换等。
Doro PDF Writer 是一款免费的虚拟打印机软件,主要用于将各种文档转换为PDF格式。该软件具有体积小、操作简便的特点,支持多种文件格式的转换,包括Word文档、Excel表格、PowerPoint演示文档、图片、邮件和网页等。
功能特点
体积小巧:Doro PDF Writer的安装包大小仅为8MB左右,不会占用过多系统资源。
操作简单:用户只需像操作真实打印机一样进行设置和打印,即可将各种文件转换为PDF格式。
支持多种文件格式:无论是Word文档、Excel表格、PowerPoint演示文档,还是图片、邮件、网页等,都可以轻松转换为PDF、JPG、PNG。
加密功能:用户可以在打印时设置加密选项,确保PDF文件的安全性。
使用方法
安装软件:下载并安装Doro PDF Writer后,会在“控制面板”中的“打印机和传真”选项中看到新安装的虚拟打印机。
设置默认打印机:右键点击Doro PDF Writer,选择“设置为默认打印机”。
打印文件:打开需要转换的文件,选择“打印”功能,然后在打印机选项中选择Doro PDF Writer进行打印。
设置加密:在打印时,可以在“加密”界面设置密码,确保PDF文件的安全性。
通过注册表编辑器禁用TLS1.0、TLS1.1
定位到注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
- 创建或修改TLS 1.0键值
如果不存在 TLS 1.0 键,右键点击 Protocols → 新建 → 项,命名为 TLS 1.0。 - 在 TLS 1.0 下分别创建 Client 和 Server 子项。
设置禁用参数
Client项:
新建DWORD值:
Enabled → 值设为 0
Server项:
同样新建Enabled → 值设为 0 - 重启服务器
关闭注册表编辑器,重启系统使设置生效。
TLS 1.1 禁用步骤同上。
另外,可下载图形化工具 IIS Crypto 来禁用相关功能,下载地址:https://www.nartac.com/products/IISCrypto/download
我的LODOP打印控件代码备份
<script src="/static/lodop/LodopFuncs.js?v=reg"></script> <script> //定义打印控件 var LODOP = null; //已打印标识 var printFlag = [0,0]; //打印次数、页数 window.onload=function(){LODOP=getLodop();}; function createPage(data){ /** * LODOP基础知识 * 计量单位关系如下(其中px单位与像素类似,但不是一个概念) * 1in = 2.54cm = 25.4mm = 72pt = 96px * 1mm = 2.83465pt = 3.77953px * 1pt = 0.352777mm = 1.333333px * 1px = 0.264583mm = 0.75pt * * 字号默认单位为pt,不设置默认为9pt * 长度单位默认为px(SET_PRINT_PAGESIZE中的PageWidth和PageHeight除外,默认为0.1mm) * * 设置纸张大小(initOrient为1-3时会锁定打印方向,为0时由用户控制) * SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName) * 不调用此函数则由用户在打印设置中自主设置 */ //LODOP.PRINT_INIT('证书打印'); LODOP.PRINT_INITA(0,0,'330mm','240mm','证书打印'); //top,left,width,height,printName,整体打印有偏差时,只需要调整top和left值即可 LODOP.SET_PRINT_MODE('CUSTOM_TASK_NAME', data.name); //打印任务名 LODOP.SET_PRINT_MODE('POS_BASEON_PAPER',true); //true以纸张边缘为基点;false可打区域边缘为基点 LODOP.SET_PRINT_MODE('AUTO_CLOSE_PREWINDOW',1); //打印后自动关闭预览窗口 //LODOP.SET_PRINT_PAGESIZE(0, '240mm','330mm', 'CreateCustomPage'); // 第一个参数:1纵向打印2横向打印3宽度固定高度自适应0用户控制 LODOP.SET_PRINT_PAGESIZE(2,0,0,''); //后三个值无效时只用来设置打印方向 LODOP.SET_PRINT_STYLE('FontSize',13.5); //全局字号,单位pt LODOP.SET_PRINT_STYLE('FontName', '新宋体'); //全局字体(宋体、新宋体设置加粗无效) LODOP.SET_PRINT_STYLE('Bold',1); //全局加粗 LODOP.SET_SHOW_MODE('BKIMG_PRINT',false); //是否打印背景图 //LODOP.SET_PRINT_STYLE('Alignment', 2); //全局水平居中 //LODOP.ADD_PRINT_TEXT(top, left, width, height, textContent); //默认单位px LODOP.ADD_PRINT_TEXT(157,912,234,30, data.name); //LODOP.SET_PRINT_STYLEA(0, 'FontSize', 13.5); //为前面刚添加的项目设置字号、字体、颜色等打印式样 LODOP.ADD_PRINT_TEXT(231,912,234,30, data.gender); LODOP.ADD_PRINT_TEXT(306,912,234,30, data.nationality); LODOP.ADD_PRINT_TEXT(381,912,234,30, data.ethnic_group); LODOP.ADD_PRINT_TEXT(455,946,234,30, data.birth); LODOP.ADD_PRINT_TEXT(338,289,260,30, data.major_name); LODOP.ADD_PRINT_TEXT(418,254,260,30, data.grade); LODOP.ADD_PRINT_TEXT(498,289,260,30, data.certdate); LODOP.ADD_PRINT_TEXT(578,289,260,30, data.certno); LODOP.ADD_PRINT_TEXT(659,275,260,30, data.grade_begin_end); if(data.photo){ LODOP.ADD_PRINT_IMAGE(155,659,'36mm','49mm','<img border="0" src="'+data.photo+'?rnd='+Math.random()+'">'); LODOP.SET_PRINT_STYLEA(0,'Stretch',2);//默认不设置或0为截取模式;1按打印区域尺寸缩放(变形);2按原图比例(不变形)缩放模式 } } //更新打印日志 function update_print_log(row){ row.print=parseInt(row.print)+1; table.updateRow('myTable', {index:row.LAY_INDEX, data:row}, true); $.ajax({ type: 'POST', data: {act:'update_print_log', id:row.id}, success: function(res){ if(res.code)return layer.alert(res.msg); } }); } function batch_print(){ var data=table.checkStatus('myTable').dataCache; if(!data.length)return layer.msg('请选择要打印的记录', {time:2e3}); $.each(data, function(index,row){ createPage(row); LODOP.PRINT(); update_print_log(row) }); } //选择打印机 function print_printer(){ //return layer.alert('请在打印预览界面中点击菜单栏的"设置"选择打印机或打印设置。'); /* var printer_list=[]; for(var i=0; i<LODOP.GET_PRINTER_COUNT(); ++i){ printer_list.push(LODOP.GET_PRINTER_NAME(i)); } console.log(printer_list); return; */ } //打印维护 function print_edit(){ var row=create_data(); if(row===null)return layer.alert('无数据'); createPage(row); LODOP.ADD_PRINT_SETUP_BKIMG('<img border="0" src="/static/images/cert.jpg">'); LODOP.SET_SHOW_MODE('SHOW_SCALEBAR',1); //显示标尺 LODOP.SET_SHOW_MODE("BKIMG_LEFT",0); LODOP.SET_SHOW_MODE("BKIMG_TOP",0); LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_SETUP',true); LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_PREVIEW',true); LODOP.PRINT_SETUP(); } //打印预览 function print_view(){ var row=create_data(); if(row===null)return layer.alert('无数据'); createPage(row); LODOP.ADD_PRINT_SETUP_BKIMG('<img border="0" src="/static/images/cert.jpg">'); LODOP.SET_SHOW_MODE('BKIMG_IN_PREVIEW',1); //打印预览显示背景图 LODOP.SET_SHOW_MODE('SHOW_SCALEBAR',1); //显示标尺 LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD',1); //隐藏打印预览背景进纸版的图案 LODOP.SET_SHOW_MODE("BKIMG_LEFT",0); LODOP.SET_SHOW_MODE("BKIMG_TOP",0); LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_SETUP',true); LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_PREVIEW',true); LODOP.PREVIEW(); } function print_design(){ LODOP.PRINT_INITA(0,0, '330mm','240mm', '打印设计'); LODOP.PRINT_DESIGN(); } //版本检测 function print_version(){ try{ if(LODOP.VERSION) { let str=LODOP.CVERSION ? 'C-Lodop版本:'+LODOP.CVERSION+'<br>Lodop版本:'+LODOP.VERSION : '本机已安装Lodop控件!<br>版本号:'+LODOP.VERSION; layer.alert(str); }; }catch(e){} } //打印预览、打印维护时展示的数据 function create_data(){ var data=table.getData('myTable'); if(!data.length)return null; var checkData=table.checkStatus('myTable').data; return checkData.length ? checkData[0] : data[0]; } </script>
windows更新失败的处理办法
Windows 更新组件损坏:Windows 更新所需的某些文件可能已损坏或丢失。
系统文件损坏:系统文件可能已损坏,导致更新无法正常安装。
临时文件问题:Windows 更新过程中使用的临时文件可能存在问题。
防病毒软件干扰:某些防病毒软件可能会干扰 Windows 更新的安装过程。
解决方法
以下是一些可能的解决方法,您可以逐一尝试:
1. 运行 Windows 更新疑难解答
打开“设置” > “更新和安全” > “疑难解答”。
选择“Windows 更新”并运行疑难解答工具。
按照提示操作,查看是否能自动解决问题。
2. 清理 Windows 更新缓存
按 Win + R 键,输入 services.msc 并回车。
找到“Windows Update”服务,右键点击并选择“停止”。
打开文件资源管理器,导航到 C:\Windows\SoftwareDistribution 文件夹。
删除该文件夹中的所有内容。
返回服务管理器,重新启动“Windows Update”服务。
再次尝试安装更新。
3. 使用 DISM 工具修复系统映像
以管理员身份打开命令提示符。
输入以下命令并回车:
DISM,/Online,/Cleanup-Image,/RestoreHealth
等待命令执行完成,这可能需要一些时间。
完成后,重启计算机并再次尝试安装更新。
4. 使用 SFC 工具修复系统文件
以管理员身份打开命令提示符。
输入以下命令并回车:
sfc /scannow
等待扫描和修复过程完成。
完成后,重启计算机并再次尝试安装更新。
5. 手动下载并安装更新
访问 Microsoft Update Catalog。
搜索 KB5050182(示例,需要根据实际修改),找到适合您系统的更新包。
下载并手动安装更新。
6. 检查磁盘空间
确保系统驱动器(通常是 C:)有足够的可用空间来安装更新。
7. 禁用防病毒软件
暂时禁用防病毒软件,然后尝试安装更新。
如果更新成功安装,请记得重新启用防病毒软件。
8. 检查系统时间和日期
确保系统的日期和时间设置正确,不正确的日期和时间可能会导致更新失败。
如果以上方法都无法解决问题,建议联系 Microsoft 支持或查阅相关技术论坛以获取更多帮助。
WINDOWS11激活
请输入查看密码:lodop打印控件-关于谷歌Chrome浏览器94版跨域问题的解决方案
谷歌浏览器再次迈出激进安全步骤,Win10+Chrome94版阻断http页面访问localhost服务, 这一举动广泛影响了Web模式的设备管理系统,例如路由服务、打印服务等,其中也包括C-Lodop软件。 安全是个美好的托词,真正让谷歌贸然行动的动机是大力推广https协议,而https背后是TLS证书, TLS证书背后是浏览器厂商的年费分成,利益巨大...闲话少说,解决方案如下:
有四种方法,选其一就行:
一、网站改用HTTPS方式(彻底方案)
二、安装最新的C-Lodop6.564及后版本,并更新LodopFuncs.js文件;
三、手动修改客户浏览器安全设置,在Chrome地址栏输入:chrome://flags/#block-insecure-private-network-requests
看到底色泛黄的“Block insecure...”项的 Default 值,改选成 Disabled然后窗口下方会出现蓝底的Relaunch按钮,点它重启浏览器。
四、客户端改用低版本Chrome(94版前)浏览器,简单办法是安装360急速版(Chrome内核)
注:微软的浏览器Edge94版因为采用了Chrome内核,故以上解决方案也适用。
系统存在支持SSL中等强度密码套件(SWEET32)
转自:https://blog.csdn.net/qq_38254635/article/details/128400965
gpedit.msc 》 计算机配置 》管理模板》网络》SSL配置设置》SSL密码套件顺序》启用
TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256
改为:
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
重启系统,即可。
检查方法:
下载安全 nmap-7.93-setup.exe。
安装好之后,Win + R 输入 cmd,假设要检测的域名是 xxx.com
输入:nmap -sV --script ssl-enum-ciphers -p 443 xxx.com
没问题时如下图:
下图是有问题的情况:
服务器安全笔记
请输入查看密码:IIS web.config设置Access-Control-Allow-Origin
来源:https://www.jianshu.com/p/85855a991275
方法一:添加自定义header,缺点是不支持正则,只能设置一个网站,或者*对全部网站开放
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="https://www.domain1.com" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
方法二:使用正则,可添加多个,需要安装微软的URL Rewrite组件
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <outboundRules> <rule name="AddCrossDomain"> <match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> <add input="{HTTP_ORIGIN}" pattern="(https?://((www\.)?domain1\.com|(www\.)?domain2\.cn))" /> </conditions> <action type="Rewrite" value="{C:0}" /> </rule> </outboundRules> </rewrite> </system.webServer> </configuration>