之前我有和大家介绍过YiNote插件和PotPlayer播放器的视频增量功能,这两款应用都能帮助我们更好的应对视频做笔记的需求,但今天的主角不是它们,如果你想先了解下之前的两款应用的使用,你可以时光回溯去看一看,之前的笔记是属于SuperMemo一个系列的,说不定你看完后又会对我们的SuperMemo产生兴趣呢...
简单总结一下就是: 1.PotPlayer能做本地及部分线上课堂的笔记,打开视频地址使用快捷键 H, P即可. 2.使用YiNote浏览器插件小白操作,即可直接上手.再高级点用法场景,则是自己导出最终markdown用jq命令行小工具按不同需求处理下. 啊~,你的 回溯时光机入口在下面这里:
一只小胖子:实践-SuperMemo-本地|在线视频增量(二)3 赞同 · 13 评论文章
好, 那为啥我们要讲解MPV呢, 因为以上两个软件在部分场景上多少还是有点不太另人如意,至少对于我是这样.那能不能自己做一个课堂笔记功能呢? 使用MPV后你真的可以的! 那下面我们基于MPV进行实践吧.
实现的场景为: 当我们在看视频时,按下快捷键Ctrl+B直接复制当前播放时间/播放文件标题/播放文件链接到剪切板,粘贴后按文本或markdown的形式展示出来.具体看下图最终的效果: 拷贝如下图的链接在终端执行,可快速跳转至做笔记的时间处,支持在线及本地视频(注意:线上视频获取文件名可读性不太好,我后期再考虑优化下.)
一. 获取视频信息插件
原文链接如下,把copy-permalink.lua 放置至~/.config/mpv/scripts/copy-permalink.lua 处即可
mpv user script: copy a command that will resume video at current positiongist.github.com/olejorgenb/a5194d9bc183dbe0bfb02aac18fe37f9
下面贴的代码是我自己调整并修改&注释过的,你用我贴上来的就好,lua文件内容如下,请自己保存至~/.config/mpv/scripts/copy-permalink.lua 中,注意最后一行代码的快捷键按你自己的需求修改,确保不要冲突:
-- Author: Ole Jørgen Brønner (olejorgenb@yahoo.no)-- Requirement: xclip for linux, none for macos-- Installation: -- 'mkdir -p ~/.config/mpv/scripts && cp -i copy-permalink.lua ~/.config/mpv/scripts' -- %q might not be fully robust-- 返回当前播放视频的文件名和路径:(支持markdown格式,截图功能建议自己用Snipaste更加灵活)function copyPermalink() local pos = mp.get_property_number("time-pos") local file_name = mp.get_property('filename') local uri = mp.get_property("path") -- 1.标准|文本) -- local bookmark = string.format("mpv --start=%s %q", pos, uri) -- 2.markdown -- local bookmark = string.format("```bash %s mpv --start=%s %q %s```", " ", pos, uri, " ") local bookmark = string.format("### %s ```bash mpv --start=%s %q ``` %s", file_name, pos, uri, "--- 文本注释: 截图如下: (请自己用Snipaste截图吧!) ") -- 3.调用剪贴板 -- https://gist.github.com/olejorgenb/a5194d9bc183dbe0bfb02aac18fe37f9#gistcomment-3622348 windows -- local pipe = io.popen("xclip -silent -in -selection clipboard", "w") -- linux local pipe = io.popen("pbcopy", "w") -- macos 不用安装pbcopy/pbpaste,可以直接使用 -- 4.生成当前时间点截图 mp.commandv("screenshot") pipe:write(bookmark) pipe:close() mp.osd_message("拷贝至剪切板成功")end-- mp.register_script_message("copy-permalink", copyPermalink)-- 设置快捷键mp.add_key_binding("ctrl+b", "copy-permalink", copyPermalink)
这样用如下命令或直接拖动本地视频或在线视频网页链接至mpv播放器. 打开视频Ctrl+B演示:
mpv "https://www.bilibili.com/video/BV17B4y1A7Fv" # 打开B站mpv "~/super_star.mp4" # 打开本地视频
如下: 粘贴内容至Obsidian或Typora中的展示效果:
另外目录中同时生成了一张图片,我们手动复制粘贴至obsidian或其它笔记软件即可.其实更建议你直接使用Snipaste来截图,更方便灵活.
### BV17B4y1A7Fv ```bash mpv --start=54.843 "https://www.bilibili.com/video/BV17B4y1A7Fv" ```--- 文本注释: 截图如下: (自己用Snipaste截图吧!)
最后:
只要在文本注释和截图如下字样后写上内容,以及粘贴截图,(直接使用SniPaste操作就好,这样可以很方便的控制截图区大小以及图片预处理),这样我们就做好了一处笔记啦!
具体使用:
当我们在看视频时,按下快捷键Ctrl+B直接复制当前播放时间/播放文件标题/播放文件链接到剪切板,粘贴后按文本或markdown的形式展示出来. 最后可以拷贝笔记链接上的 mpv --start * 在终端执行,即可快速跳转至做笔记的时间处,支持在线及本地视频(注意:线上视频获取文件名可读性不太好,我后期再考虑优化下.)
二. 批量截图功能插件
1.配置截图插件
我在源代码的基本上添加了注释,并做了部分修改,所以你直接拷贝此处下面代码使用即可,放置在文件: ~/.config/mpv/scripts/takeSsSequence.js,请按自己的情况设置下代码行末的快捷键,避免冲突或导致不生效.
/** * 实现相等时长截图,可指定%5开始,98%结束,共截多少张 * * 源码路径如下 * https://github.com/Arieleg/mpv-takeSsSequence/blob/f1d107660b765fdf80b4996c7a94869b4ddce114/takeSsSequence.js * * (我做了部分修改,所以你直接拷贝此处下面代码使用即可): * * ======配置截图相关参数(mpv.conf):======== * 参考: https://mpv.io/manual/master/#screenshot * * --截图模板,指定文件名称,默认为(mpv-shot%n) * --screenshot-template=mpv-shot%f%P * * --指定保存格式(默认为jpg) * --screenshot-format=jpg * * --截图保存目录(默认在脚本运行目录) * --screenshot-directory=~/mpv-www-gen * */function sleep(){ var actTime = mp.get_time(); while (mp.get_time() - actTime < 0.05){ }}function takeSsS() { var N = 12; /**截多少张图 */ var start = 5; /** 开始: %5的播放进度 */ var end = 95; /** 结束: %95的播放进度 */ var step = (end - start)/(N); /**步长 */ var percent = start; var P_NUM = 0 /**截图成功数 */ while (percent < end) { mp.commandv("seek", percent, "absolute-percent"); sleep(); mp.commandv("screenshot"); percent+=step; P_NUM = P_NUM + 1 mp.osd_message("截图" + P_NUM + "成功") } }/**绑定快捷键Ctrl+Alt+d,避免快捷键冲突: * * mpv播放器系统截图功能: Ctrl+s * SnipPaste : Ctrl+Alt+s * copy-permalink.lua: Ctrl+b * ... */mp.add_key_binding("Ctrl+Alt+d", "takeSsSequence", takeSsS);
2.配置图片保存的目录/格式/名称等
这一步也可忽略,不设置的话会使用mpv默认值,比如保存目录默认为当前脚本执行所在的目录,具体参数和用法,请参考官网文档链接:
mpv.iompv.io/manual/master/#screenshot
## 打开~/.config/mpv/mpv.conf ,在文件末尾添加如下的内容: ############ # 我的配置 # ############ # 配置截图相关参数,参考:https://mpv.io/manual/master/#screenshot # 截图模板,指定文件名称,默认为(mpv-shot%n) screenshot-template=mpv-shot-%f-%P # 指定保存格式(默认为jpg) # screenshot-format=jpg # 截图保存目录(默认在脚本运行目录) screenshot-directory=~/mpv-www-gen
具体使用:
如上一步的操作一样,在播放视频时,我们按下自己设置的快捷键,我这里是Ctrl+Alt+d, 来执行批量截图:
最终在mpv-www-gen目录中,我们看到了当前视频每隔一段时间处生成的快照图片,这样我们就可以自己复制图片粘贴至笔记软件中做笔记了:
至此,本文结束...
我是一只热爱学习的小胖子,如果你也热爱学习,并且对SuperMemo感兴趣,欢迎转发和评论!
网友评论