我需要设置 VLC 以将 IP 摄像机中的 RTSP 流录制到硬盘。目前我写了两个 bash 脚本。
如果硬盘可用空间小于 10%,第一个脚本将删除最旧的文件。
第二个脚本是无限循环,VLC 使用以下命令运行:
cvlc 'rtsp://ip_camera_stream' --sout "#transcode{}:duplicate{dst=std{access=file,mux=ts,dst={some_file_name}}}" --run-time=360 --stop-time=361 --play-and-exit --rtsp-frame-buffer-size=30000000
看起来不错。录制一段时间后一切正常,但后来文件开始增长得太快,占用了所有可用的 1.5TB。这些文件无法播放,在十六进制编辑器中,它们主要包含零。
当我尝试终止 vlc 进程时 - 什么也没有发生,但重新启动 PC 后一切恢复正常(大部分)。
我使用来自标准 deb repo 的 Ubuntu 16.04 和 VLC,而不是 snap 包。
有人知道如何修复它吗?
答案1
我添加了文件大小检查。如果文件太大,我会将其删除并终止 VLC 进程。奇怪的是,现在 VLC 会对终止消息做出响应,但它确实有效。