记录一次由于 FX3 断电导致视频文件丢失并成功恢复的实践

今天在给甲方录制视频的时候,中间由于假电池断电,导致机器直接关机,而视频文件没有保存下来。当时我并没有发现,因为 FX3 之前我的印象是即使是录制途中强制关机,也会及时地保存视频文件。直到我回家打开内存卡那一刻我才懵逼了:第一段视频文件不见了! 我立刻开始寻找各种有可能恢复文件的方法,同时去淘宝寻求帮助。不过淘宝给出的价格是 600 元,而且不一定能够恢复。我靠,我一共才赚几个钱,600给你了我还赚啥? 恢复文件 首先就是恢复文件,由于我是使用了索尼 FX3 和索尼的 CFA 卡,所以我的第一反应就是通过查找这两个关键词找到了最靠谱,并且免费的官方恢复软件:Memory Card File Rescue 。你通过输入存储卡对应的信息,它会帮你选择下载对应的恢复软件,真的是太贴心啦哈哈。通过大概8分钟的扫描,我就得到了恢复的文件,它是一个 12.68G 的 DAT 文件。 我查询了很多网站,并没有什么软件可以直接将 DAT 文件直接转换为 MP4 之类的东西。也有博客称 vlc 能干这个事儿,但事实上并不行。于是又开始了大量的搜索。如果你也看到了 B 站某个 UP 主自己写的恢复脚本的话,我可以告诉你,恢复出来的视频是上半部分花屏。我也尝试了使用 ffmpeg 来进行处理,结果当然也是无效的。 处理 DAT 文件 我恢复出来的 DAT 文件与正常的 MP4 文件区别主要是缺少了 moov 数据块, mdat 主要记录的是视频中的帧信息,moov 主要存储的是视频帧信息的读取格式。由于机器是突然断电的,所以来不及写入 moov 数据块,因此核心任务就是恢复 moov数据块。 由于我的第二段视频(第一段中断之后我立刻换电池接上了第二段)和第一段视频的录制规格等等信息是完全一样的,所以第一段的 moov 完全可以抄第二段视频的作业。当然,如果你没有可以抄作业的视频,你可以使用和 DAT 文件一致的规格再随便录几秒视频即可。 untrunc 这个伟大的开源工具帮我解决了恢复 moov数据块这个难题,如果你是 Windows 用户的话,可以阅读 untrunc中文 来学习如何使用。 恢复如旧 通过使用 untrunc ,我成功将 12.68G 的 DAT 文件恢复为了 12.68G 的 MP4。更让我感动的是,恢复之后的视频保留了原有的码率、帧率以及分辨率,画面恢复如新!...

六月 21, 2024 · 1 分钟

初识 WireGuard && 配置备忘录

最近因为想将自己写的音乐下载机器人部署到云上,于是开了一台 Hetnzer ,不得不说,质量是真好速度是真快呀!德意志战车!! ,突然心血来潮,准备配一个本机和 Hetnzer 的 WireGuard 连接。 学习和使用了 WireGuard 这么久,也没有自己正儿八经配一个。之前玩 DN42 的时候更多地是在抄作业,至于原理和细节,就根本没有去深究,不过也潜移默化了解了很多。 首先是服务端的配置(其实可能不太严谨,暂且称为服务端吧。) 还是以 Debian 为例 常规的安装: sudo apt update && apt install wireguard 贴一个我这次使用的服务端的 wg0.conf [Interface] PrivateKey = <服务端私钥> ListenPort = 520 Address = 10.0.0.1/24, fd00::1/64 PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostUp = ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE PostDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <客户端公钥> AllowedIPs = 10....

六月 10, 2024 · 3 分钟

通过 Ollama 使用本地部署 & 私有部署模型来使用 copilot

Ollama 使用本地模型来使用 copilot 最近 Mistral AI 开放了一个非常善于写代码的模型 codestral,只有 22B, 而我的 MacBook 可以轻松驾驭它,在运行时内存基本只调用 15G 左右,但是又想把它应用到 VScode,这样就可以替代 Github copilot 来更加安全地编写代码。 首先保证在本机已经已经安装了 Ollama 和模型 codestral ,参考官方的链接即可,非常简单。 想在 VScode 使用 类似于 copilot 的功能,一方面需要已经通过 Ollama 安装了 codestral 和 starcoder2 之后在 VScode 中安装插件 continue 。保证你的 Ollama 已经启动即可,你可以通过访问 localhost:11434 来验证它是否在运行。 之后在 continue 插件里面选择 local model 即可,记住,一定要安装 starcoder2 它是实现你成为 TAB 工程师的关键! Ollama 使用私有部署模型来使用 copilot 但是,并不是所有朋友的设备都具有在本地跑一个 22B 模型的能力,或者移动设备能力不足。这时候,如果你拥有一个性能还不错的主机设备,那么你可以选择将 Ollama 部署到主机上,然后远程访问它。 想访问它的前提是需要设置它运行在 0.0.0.0 上,让其他设备能够访问到这个服务,参考这里 : setting-environment-variables-on-linux Setting environment variables on Linux If Ollama is run as a systemd service, environment variables should be set using systemctl:...

六月 5, 2024 · 2 分钟

在 macOS 上使用 Nix Flakes 作为包管理器 & Yubikey SSH 使用备忘录

Nix Flakes 最近学习了 fernvenue 老师的新文章使用 Nix Flakes 部署應用之后,决定在 Mac 上也全面进入 Nix 时代。彻底摆脱 brew 和 Xcode 。抛弃冗余的大玩意,这样就可以非常轻松方便的下载安装自己需要的东西。 最近趁着自己生日,给自己奖励了一台老 M1 Max ,因为还要依赖 Logic Pro 和 Final Cut Pro,毕竟我无法拒绝 Apple 颜色准确的屏幕。 所以即使 Debian 已经可以替代很多东西,但我依然还是需要使用 macOS 。 macOS 系统本身是不自带 Xcode 的,当你使用 git 这个命令的时候,它就会疯狂弹出让你安装 Xcode 的界面,即使我已经使用 Flakes 安装了 git 。折腾无果后,我就跑去在 MacBook 上安装 Debian 了,回过头来再次进入 macOS 准备解决这个问题的时候,忽然发现它已经成功使用了 git 。所以如果使用 Nix Flake 安装了什么东西但是它当时并不能用的时候: 尝试重启设备,这个时候大概率就可以用了,当然前提是这个包是可以安装在 macOS 上的。 配置 Nix Flakes 在 macOS 配置上与 Debian 是一致的: mkdir ~/.config/nix echo "experimental-features = nix-command flakes" > ~/....

五月 20, 2024 · 2 分钟

在 Mac Mini M1 上安装 Debian gnome

一个在 Mac Mini M1 上安装 Debian gnome 的安装备忘录。 之前就久闻 Asahi Linux 的大名,今日一试,果然不错。之前在按照官方的文档安装过 fedora ,后来发现其实已经有成熟的脚本可以直接安装 Debian ,今天终于鼓起勇气,发起小白的在 Mac 上安装的尝试! 你可以: 可以阅读官方的安装信息 ,这里其实写的非常详细,直接跟着一步一步操作就好。 也可以参考一个 YouTube 博主的安装视频 ,也是非常详细的。 我的环境: _,met$$$$$gg. bdim@debian ,g$$$$$$$$$$$$$$$P. ----------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) aarch64 ,$$P' `$$$. Host: Apple Mac mini (M1, 2020) ',$$P ,ggs. `$$b: Kernel: 6.5.0-asahi-00780-g62806c2c6f29 `d$$' ,$P"' . $$$ Uptime: 1 hour, 8 mins $$P d$' , $$P Packages: 1680 (dpkg), 11 (flatpak), 6 (snap) $$: $$....

五月 12, 2024 · 2 分钟