本帖最后由 qzhing 于 2022-6-19 11:34 编辑
最近买了个某品牌的家用摄像头,但是数据云存储还要额外花钱
作为一个程序员怎能让它赚这个钱,于是乎拿出了吃灰已久的树莓派,挂了个脚本
使用 FFmpeg 按分钟存储文件,并上传到云服务器
以下展示 FFmpeg 相关的指令
以 ffmpeg 5.0.1 为例
详细文档见官网:https://ffmpeg.org/ffmpeg-all.html
参数示例
ffmpeg -use_wallclock_as_timestamps 1 -rtsp_transport tcp -i rtsp://[username]:[password]@[ip]:[port] -vcodec copy -acodec copy -f segment -reset_timestamps 1 -segment_atclocktime 1 -segment_time 60 -strftime 1 /outdir/%Y%m%d%H%M.mp4
参数格式
ffmpeg [全局设置] {[输入设置] -i 输入路径} ... {[输出设置] 输出路径} ...
部分参数介绍
参数 |
可选值 |
说明 |
-use_wallclock_as_timestamps |
0<br>1 |
如果设置为1,则使用系统时间作为时间戳。<br>默认值为0。 |
-rtsp_transport |
udp<br>tcp<br>udp_multicast<br>http |
设置 rtsp 传输协议<br>可以指定多个较低的传输协议,在这种情况下,它们一次尝试一个(如果一个设置失败,则尝试下一个)。<br>默认值为 udp |
-vcodec |
|
设置视频编解码, copy 代表使用输入源的格式 |
-acodec |
|
设置音频编解码, copy 代表使用输入源的格式 |
-f |
|
强制输入或输出文件格式。 segment 代表分段 |
-reset_timestamps |
0<br>1 |
在每个段的开头重置时间戳,这样每个段将以接近零的时间戳开始。<br>默认为0。 |
-segment_atclocktime |
0<br>1 |
如果设置为“1”,则按从00:00开始的定时时钟间隔分割。<br>在 segment_time 中指定的时间值用于设置每段的长度 |
-segment_time |
|
每段时间的时长,单位:秒 |
-strftime |
0<br>1 |
使用 strftime 函数定义要写入的文件的名称。<br>如果选择此选项,输出段名称必须包含一个strftime函数模板。<br>默认值为0。 |
PS:该文档转载自自己的个人博客,这里就不放个人博客原文链接了 |