目录

[Original] 2023年1月15日 随笔

目录

一早惦记着修光驱的事,吃完早餐没有背单词就迫不及待拆了机箱把光驱取出来。上一次修光驱应该还是自己在中关村的时候,一晃也快二十年了。

电脑上的光驱似乎和自己当年拆修的有些不同,翻了一圈居然没看到一颗螺丝。似乎面板是唯一的突破口,弄出托盘之后逐个把面板在金属壳上的卡扣一个一个顶出来,费了些力气终于把面板拆下来。原想连托盘面板一并拆了,捣鼓几下发现卡扣很紧就作罢了。

金属壳没有找到明显的卡扣,只看到底部几个螺丝孔周围的金属小舌似乎卡着底板,试着撬了几下都有些轻微变形了依然纹丝不动。冷静下来想想应该还有别的途径才对,找了好一会儿才发现底板可以平移出来,结构还挺精巧。

机芯里完全没有自己想象的脏污,因为使用频率不高后来又一直没有接线,内部还处在接近崭新的状态完全没有可以清理的机会。检查了一圈除了重新拔插一下排线没有任何可以着手的地方,但重新拔插排线似乎完全没有解决问题的意思。

看着高度集成的机芯觉得自己已经没有当年的热情和能力进一步拆解排查,只好草草复原当作没有发生过,除了被自己撬得轻微变形的外壳。

忽然发现家里另一台旧电脑上居然也有一台光驱,赶紧接上电源、显示器和键盘,进入系统之后试了光驱能够正常读盘。非常开心将这台光驱拆下来换到现在用的机器上,又把刚拆修过的坏光驱装到这台机器上。

自己先试着播放了一张光盘,看得过程中想到还是本地文件化更方便后续查看管理。于是赶快找合适的DVD转MP4软件,查了一圈下载了好几款名气比较大的,不是限制只能转几分钟就是要加水印,对于这种原本都是免费开源领域的功能自己是接受不了付费的。于是又查了FFMPEG转DVD的说明,大体将光盘目录下的多个视频文件一次转码就可以,命令也不算复杂。

于是开始逐张转码,同时在转码过程中优化转码命令。在转码等待的过程中查阅命令行脚本的优化方式,一点点完善了脚本代码,最终终于完成包括自动识别目录文件和自动命名的简单处理脚本。

这里得提一下 ChatGPT,自己搜了很多解决具体问题的文章,要么对自己的问题帮助不大,要么还要登录注册才能查看,想起很久没用的 ChatGPT 应该可以帮忙。参考之前看过的其他文章中提到的向 ChatGPT 提问解决开发代码问题的方式,把问题描述清楚之后果然给出详细的代码和具体说明。但其中有一处代码照样执行之后结果怎么都不对,反复问过多次也给出不同的解决方式但就是不行,最后自己发现答案中使用的大括号语法存在问题,换成小括号之后终于解决。虽然有这样的小问题,但 ChatGPT 在很多问题上已经超出国内知识文章不少了,非常有帮助。

上了自动脚本之后效率高了不少,重复工作也能做得心旷神怡。一天工夫已经转好超过二十张光盘,比预期进度快了不少。下面是这次的最终代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
$source_path = "F:\VIDEO_TS"
# $list = get-childitem -path $source_path\* -include vts_01*.vob -name
# 源路径后需加‘\*’,include过滤内容,name仅输出文件名

$list = get-childitem -path $source_path\* -include vts_01*.vob | Select-Object -ExpandProperty FullName
# 源路径后需加‘\*’,include过滤内容,Select-Object -ExpandProperty FullName 输出完整路径

$list_row = $list -join("|") # 将数组拼接为以‘|’分隔的字符串
$output_path = "E:\Temp\temp"

# 获取目录中数字最大的文件
$maxFile = (Get-ChildItem $output_path | Where-Object {$_.Name -match '\d+'} | Sort-Object {[int]($_.Name -replace '\D','')} -Descending)[0]

# 新文件名比最大文件数字加一
$newFileName = $maxFile.Name -replace '\d{2,}', ([int]$matches[0] + 1)

# 拼接路径
$newFilePath = Join-Path $output_path $newFileName
ffmpeg -i concat:"$list_row" $newFilePath # ffmpeg 转码命令

Stop-Computer # 执行后关闭电脑

本来代码还有些瑕疵,存成脚本文件执行会报错,后来修改完善了文件名的绝对路径之后终于能正常使用了。其中不同的变量命名风格是因为一部分我写的习惯下划线分段,但 ChatGPT 生成的都是驼峰格式。

观看父亲的视频有一种奇怪的穿越感,父亲视频里除了极少数和我在一起时拍摄的内容之外基本都是父亲各处行程的记录,有时是火车上、有时是汽车公交上、有时是步行在不同地方,几乎所有都是父亲独自一人用各种方式尝试填充自己的落寞,自己仿佛在父亲身边旁观着父亲的行程,从画面中自己又不断感受到父亲深深的难以言喻的孤独。