# stock-script **Repository Path**: stock-learn/stock-script ## Basic Information - **Project Name**: stock-script - **Description**: 音视频处理的 deno 脚本文件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-20 - **Last Updated**: 2023-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音视频处理的 deno 脚本 > 使用脚本前请先安装 [deno] 到系统环境变量下,然后才能使用 deno 执行这里相应的脚本。每个脚本的开头都有相应的使用说明。 > 所有脚本为使用 `.js` 扩展名的 JavaScript 脚本。不使用 `.ts` 的 TypeScript 脚本的原因是因为有一些视频的扩展名是 `.ts`,为了避免混乱。 ## 1. 脚本列表 | SN | 脚本 | 功能 | | --- | ----------------------- | ------------ | | 1-1 | [src/speed-up.js] | 视频加速 | | 1-2 | [src/text-watermark.js] | 视频添加文本水印 | | 1-3 | [src/crop.js] | 视频画面裁剪 | | 1-4 | [src/slice.js] | 视频片段截取 | | 1-5 | [src/convert.js] | 视频格式转换 | | 2-1 | [src/download/cctv.js] | 下载 cctv 网页视频 | > 点击链接打开脚本文件,文件开头有详细参数说明。 [src/speed-up.js]: ./src/speed-up.js [src/text-watermark.js]: ./src/text-watermark.js [src/crop.js]: ./src/crop.js [src/slice.js]: ./src/slice.js [src/convert.js]: ./src/convert.js ## 2. 脚本编写环境 - [vscode]-v1.70+ > 需安装 denoland 官方的 [Deno for VSCode] 扩展。 - [deno]-v1.22+ ## 3. deno 脚本依赖约定 所有脚本统一通过 `import-map.json` 来映射依赖的路径,以方便版本号的统一管理,约定路径映射规则为: 1. 将 `https://` 映射为 `/` 2. 将版本号去除,`/std@0.147.0/` 改为 `/std/` 3. 最终 `https://deno.land/std@0.147.0/` 映射为 `/deno.land/std/` 这样的好处是规则简单,看源码时也知道是导入了哪个标准库或哪个第三方的库。 例: ```js // deno.json {"importMap": "import-map.json"} // import-map.json {"imports": {"/deno.land/std/": "https://deno.land/std@0.147.0/"}} // use.ts import { red } from "/deno.land/std/fmt/colors.ts"; console.log(red("hello world")); ``` ## 4. 脚本文件名约定 所有脚本源文件均统一放在 `src` 子目录下,`src/share` 子目录下的脚本为供其它脚本共用的工具方法合集。\ 文件名称统一使用小写的中横线格式,如 `my-script.js`,不使用 `myScript.js`、`MyScript.js` 和 `my_script.js` 等任何其它格式。 ## 5. 脚本打包说明 如果想将指定的脚本打包成 windows 平台下的 exe 文件脱离这里的源码使用,使用 `deno compile` 命令处理一下即可,以 `src/crop.js` 打包成 `crop.exe` 文件为例,执行如下命令即可: ```shell > deno compile -A --import-map=import-map.json -o temp/crop.exe src/crop.js -i input.mp4 -o output-crop.mp4 ``` 注: 1. `--import-map=import-map.json` 是必须的,`-A` 可以根据脚本的实际情况灵活调整。 2. `src/crop.js` 后面带的参数与 `deno run` 执行此脚本时的参数一致,编译时指定一些参数用于修改默认值而已,实际执行时依然可以继续自定义为其它值。 3. 编译成功后上面的命令就会生成文件 `temp/crop.exe`,名称和位置可以随便自定义。 4. 将 `crop.exe` 复制到任何地方,就可以根据参数执行视频画面裁剪处理了,如: ```shell > crop.exe -i input.mp4 -c 100:200:0:10 -o output.mp4 ``` 5. 如果在其它平台,如 Linux、MacOS 下执行 `deno compile`,就会生成对应平台的可执行文件,实现跨平台打包发布。 [deno]: https://deno.land [Deno for VSCode]: https://github.com/denoland/vscode_deno [vscode]: https://code.visualstudio.com