视频循环存储的实现[进行中...]

1. 三方工具

建议使用ffmpeg,这个工具多平台可用,命令行和API都有提供,非常便捷。下载的位置:

Download FFmpeg

我工作在debian环境,下载对应的源码后编译:

./configure

make

make install

2. 视频存储的实现

2.1 分段存储 - 比如每15分钟

下面的脚本里 MIN_PER_FILE控制的是每个视频文件的最大尺寸

bash 复制代码
#usage: video_recorder <video_file_path> <min_per_file> <rtsp_path>
RTSP_URL_WITH_PASSWORD='rtsp://admin:xxxx@192.168.0.6:554/Streaming/Channels/101?transportmode=unicast&amp;profile=Profile_1'
MIN_PER_FILE=03
VIDEO_FILE_PATH='/tmp/video/' #include postfix
mkdir -p $VIDEO_FILE_PATH
ffmpeg -rtsp_transport tcp -i $RTSP_URL_WITH_PASSWORD -c:v libx265 -preset fast -crf 28 -t 00:$MIN_PER_FILE:00 $VIDEO_FILE_PATH$(date +"%Y%m%d%H%M%S").mp4

这个命令执行时因为环境的原因,可能会提示错误,我这边的一个纠错参见附录A,正确调用后:

Output #0, mp4, to '/tmp/video/20240807094508.mp4':

Metadata:

title : Media Presentation

encoder : Lavf61.1.100

Stream #0:0: Video: hevc (hev1 / 0x31766568), yuvj420p(pc, bt709, progressive), 1920x1080, q=2-31, 10 fps, 10240 tbn

Metadata:

encoder : Lavc61.3.100 libx265

Side data:

cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A

frame= 1555 fps= 10 q=31.9 size= 12288KiB time=00:02:35.30 bitrate= 648.2kbits/s speed= 1x

估算,最终的视频文件尺寸,单通道.h265大概每15分钟45~50MBytes.

2.2 对齐到15分钟整边界

3.封装

附录A: ffmpeg视频存储,运行时错误处理

1.运行ffmpeg存储视频时

Unrecognized option 'preset'.
Error splitting the argument list: Option not found

1.1 处理

  1. 检查是x265编码器可能没有装
  2. ./configure --enable-libx265 --enable-libx264 --disable-x86asm --enable-gpl --pkg-config="pkg-config --static"
    1. 提示:ERROR: x264 not found using pkg-config
  3. sudo apt install pkg-config
  4. sudo apt install libx264-dev
  5. sudo apt install libx265-dev
  6. ./configure --enable-libx265 --enable-libx264 --disable-x86asm --enable-gpl
  7. make
  8. make install

附录B 服务创建加载以及运行时异常处理

1.service无法enable

Failed to enable unit: Unit file /etc/systemd/system/guide_video_storage_ch05.service is masked.

1.1 处理

在更新.service前,一定记得要先disable。如果出现mask:

sudo systemctl unmask guide_video_storage_ch05

sudo systemctl stop guide_video_storage_ch05

sudo systemctl disable guide_video_storage_ch05

相关推荐
代码山河7 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行7 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
voipmaker8 小时前
GB28181 对接踩坑实录:注册不上、目录不全、流卡顿,一次说清(附 2022 版变更清单)
物联网·音视频·实时音视频·信息与通信·iot·gb28181·国标gb28181
梯度下降者8 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
2601_958352909 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
2601_965448879 小时前
AI视频制作:做系列历史人物视频音色不搭,AI 音色克隆的方法实测
人工智能·音视频
码上观世界9 小时前
多余的一声「嗯」:Fun-CosyVoice3 zero_shot 开头伪影排查实录
音视频
“AI国潮设计-小江”9 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
manyingAi10 小时前
AI漫剧生产系统架构解析:从文本拆解到音视频合成
人工智能·音视频
benchmark_cc10 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash