使用 VLC 进行流媒体录制

使用 VLC 进行流媒体录制

我需要设置 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 会对终止消息做出响应,但它确实有效。

相关内容