Video Audio Compressor

视频音量压缩器,防止耳聋,避免响度战争,懒得写UI了,直接改脚本文件里面的数值吧。

  1. // ==UserScript==
  2. // @name Video Audio Compressor
  3. // @namespace https://github.com/tjxwork
  4. // @version 0.0.1
  5. // @description 视频音量压缩器,防止耳聋,避免响度战争,懒得写UI了,直接改脚本文件里面的数值吧。
  6. // @author tjxwork
  7. // @license CC-BY-NC-SA
  8. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAmVBMVEVHcExEW4EAe/8Jc+Y6ZKBDZ6JDZqFERUQsWqREaKVDY5ZFVGxEaKYFdfBFZaYAfP8AfP9DaKZEaKZEY5xEX48Sa8pDZ6YBdP3sAAQWaL/qAAQOa9U+R05GXItEaKcAbP/kBAYAevtIYZoAfP8Aev+LJiYgNNMAfP8AfP8Aev8AevtEaKdEaKVEaKPsAATpAAQLePAcc9o2bLfeB5giAAAAKHRSTlMAHfowNbXHBAjrZDz0wXGX2afcTaCalpnomeiaDi35mU7ZQ9DZUgKbuVNHxAAAA0xJREFUWMPdV9lyozAQ5BZgm8O3HZskrlqtECJx9v8/bmcQl0CQZFPZh7jKU0iop1staQDDgB/5QvgqnvwAvPFteOJEqRdkIgu8NLp9ehKLbVAUohBClAIuymDvfAZ/88oMUEL0QuEtyAfxpluWFbVQkpSFa37IhHAppOo0Wpi+4ZuLKA2kiGX4Pp7ss4rP3aBgahi0krlxwY+yLPfknUn4boHyvUXVpG0ghuNiYuFiewafotZliE0qA60D8cNlARpcMmfiHvHra6VT4a+urmu4m+1nTAgBn61NlbpTYphrXI1wEm+i/2uTUi0/ZjLXQBGYdGISYJNYXrX8TbguYTXdCfwN8EXoG33W+qprhrBFxE1vogcr7fnN+BF/rckTZeFpTVjAsSnH66/wQ3DwdDkaPN3i/lNAGn644wLPVmMCCSDB5j1+CBs8J2M8dbCf1Ft/TgQJYBLO2MQIDkE6JhyLwLmKyKcDE2gKecOOcCCivzARrOR2bKJXFMVN3XqGtkkdXG4yMIFWHpqq6AkRJuyEYGwi1JHSH3DpRfgw2axu9kzEgkO1/GS4ElhYBjsJ+rESdDRPx9cX+PXC+anZSRQr7thE0CW6uR5fEdYG/B9bEVinxzsJ0opurc8Kvgrn9i5U/WK0CAaW4m7CT8cB/OX8qy1MWHbpgN+J74zfY3vk+qCIQ599ujN2Pzl9Ey4PjDEOf7bzEd5UggEU+f1DNQ7Cb7/Dr6DNedW/8ikxpvih7q8Ya8hWl2YSLT+Gg5a/2QkHljNJxjk/1Hi748dgtyZo5s/zdhxEWw6LodXrj7X8MuxgXC7J4IrvpAUJ501/DleJfv5VeJZDmsGJTGDJriZYM68zVm9czpklb6h4xmdehxQ8BGmi0gXiZl6nBvhcmsgGeWfe6QZ4Lj3Q6tKHAT6XCXS6JpLoxep0fcXE/P+baKl4a8ZES8VbzVZW8j7PmJioOzGRN3ZMyXuaMTFWxcb1cVZ12TMm2gqe18fZOPTxBz10E2DZLt/6ZA+kLWktHkqanl/ihbh3/FVJkw+Wy6PFZP+jP1FOAokXxRtv+C/9wu6cEst6PtnGVDnaVG/8+AD983bnVhI7yoOBqKXzuz/7aJ/xXz/76A/6dv4LijTPhWxnXM0AAAAASUVORK5CYII=
  9. // @match https://*.bilibili.com/*
  10. // @match https://*.youtube.com/*
  11. // @grant GM_registerMenuCommand
  12. // @grant GM_setValue
  13. // @grant GM_getValue
  14. // ==/UserScript==
  15.  
  16. "use strict";
  17.  
  18. function AudioCompressor() {
  19. // 音频元素
  20. const audioElement = document.querySelector("video");
  21.  
  22. // 设置音频上下文
  23. let audioContext = new AudioContext();
  24.  
  25. // 创建 音频来源节点 MediaElementAudioSourceNode,将 音频元素 输入其中
  26. const source = new MediaElementAudioSourceNode(audioContext, {
  27. mediaElement: audioElement,
  28. });
  29.  
  30. // 创建压缩器节点
  31. const compressor = new DynamicsCompressorNode(audioContext, {
  32.  
  33. //----------修改数值处----------
  34.  
  35. // 阈值(dB)
  36. threshold: -24,
  37. // 拐点过渡(dB)
  38. knee: 5,
  39. // 压缩比例
  40. ratio: 18,
  41. // 启动时间(S)
  42. attack: 0,
  43. // 释放时间(S)
  44. release: 0.25,
  45.  
  46. //----------修改数值处----------
  47. });
  48.  
  49. // 音频来源节点 -x-> 音频目标
  50. //source.disconnect(audioContext.destination);
  51. // 音频来源节点 -> 压缩器节点 -> 音频目标
  52. source.connect(compressor);
  53. compressor.connect(audioContext.destination);
  54. }
  55.  
  56. // 页面加载完成后运行脚本
  57. window.addEventListener("load", AudioCompressor);