如何不拔卡调取摄像头监控-回放取流

如何不拔卡调取摄像头监控(TP1Z为例子)

有什么用&怎么用

如何不拔卡调取摄像头监控-回放取流

通过获取摄像头的回放取流地址, 来读取摄像头中的回放数据

背景: 某位调皮的顾客, 非要上来就诬陷我更换了他的Switch电池. 百口莫辩, 实属无奈还得去调阅监控. 上次的方法是直接把卡, 然后找到监控的目录文件(按日期时间命名的), 最后拷贝出多个大的文件, 然后在组合多个此类MP4文件成为完整的全过程监控.

这样做太累人了, 而且导致了监控的中断.

今天尝试使用取流回放流的方式, 成功取到了回放的流; 但是要录制成完整的mp4,需要等量的时间(1.5小时多); 这可真累人啊, 一个命令要执行1.75个小时, 我哪有那个耐心和时间?

于是乎, 想各种其他的方法, 推流到SRS, 让他自己去看SRS上回放的流(网页播发失败).

最后还是使用抽帧最快, 每5秒抽一张照片, 抽出来一共将近1千张截图, 基本可以完全涵盖了整个修复过程(也证明了我没有去动电池)

某某同学: 请移步去网盘看看您设备的修复全过程吧, switchSDadapter20241213.mp4

(因为他已自行觉悟并确认收货, 我不会在发他视频去所谓的自证清白; 终于明白为啥需要法院这样的第三方来沟通矛盾, 有时2个方面直接联系, 根本无效, 累死宝宝)

后话: 这种方式还不完美(目前已经够用, 足以当证据来提交第三方), 不够高效; 后期还需努力把回放的流推流到SRS更高效, 根本只需要参数就OK(限时特定时间段可查阅, 不长期保存)

相关内容

获取摄像头的回放取流URL地址

比如这是我的实例

1. 回放取流url

rtsp://admin:d@172.22.0.26:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_11_19_00&endtime=2024_12_13_12_51_48

说明:

  • playback表示回放
  • channel=number表示通道号
  • subtype=0表示主码流
  • starttime=YYYY_MM_DD_HH_mm_SS表示回放开始时间
  • endtime=YYYY_MM_DD_HH_mm_SS表示回放结束时间

20240705 实测有效,vlc播放成功。这是一个实用的功能

可随时查看回放

2. 录制取流地址内视频

ffmpeg -i "rtsp://地址" -t 录制秒数 文件名.mp4

录制MP4

ffmpeg -i "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00" -t 5568 Switch的SD卡底座修复.mp4

# 关键帧录制
ffmpeg -i  "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48" -vf "select='eq(pict_type,PICT_TYPE_I)'" -t 1:32:48 -vcodec copy -acodec copy 
  -f mp4  Switch的SD卡底座修复.mp4

ffmpeg+加速录制+rtsp流

FLV录制FLV

ffmpeg -i  "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00" -t 1:32:48 -vcodec copy -acodec copy -f flv  Switch的SD卡底座修复.flv
#也是太慢了,要一秒一秒录制, 真的要等待1个半小时

#关键帧录制
ffmpeg -i  "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00" -vf "select='eq(pict_type,PICT_TYPE_I)'" -t 1:32:48 -vcodec copy -acodec copy 
  -f flv Switch的SD卡底座修复2.flv

ffmpeg+加速录制+rtsp流

推流这段回放到SRS服务器上, 让服务器不停循环播放即可

可否把思路转变为: 推流这段回放到SRS服务器上, 让服务器不停循环播放即可

rtsp://*:d@172.22.0.26:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_11_19_00&endtime=2024_12_13_12_51_48

3. 推流回放流到SRS

ffmpeg -re -i “rtsp://*:d@172.22.0.26:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_11_19_00&endtime=2024_12_13_12_51_48” -c copy -f flv -y rtmp://192.168.6.221:1935/live/switchSDadapter

ffmpeg -re -i "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48" -c copy -f flv -y rtmp://192.168.6.116:1935/live/switchSDadapter




  Metadata:
    title           : Media Server
  Duration: 02:30:30.00, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: hevc (Main), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 10 fps, 100 tbr, 90k tbn
  Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp
[flv @ 0x563db2eb0400] Video codec hevc not compatible with flv
  [out#0/flv @ 0x563db2e9f000] Could not write header (incorrect codec parameters ?): Function not implemented
[aost#0:1/copy @ 0x563db2e9bac0] Error initializing output stream: 
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
    Last message repeated 1 times


可以推流成功, 但是无法获取图像, 如何修复?

原来是我的SRS目前版本(5.0)不支持H.265, 导致上面的错误, 临时的解决方案是使用H.264

ffmpeg -re -i "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48" -c copy -vcodec libx264 -f flv -y rtmp://192.168.6.116:1935/live/switchsdcar

这样就是H.264了可是画面经常花屏, 画面有故障.

还是去升级SRS更靠谱

升级后

管理SRS页面:

image-20241217210948894

docker 删除旧的镜像

运行简单的命令

  1. docker images -a

  2. docker image rm

删除未使用的Docker镜像:.

docker image prune

docker image prune -a.

docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
....
Total reclaimed space: 1.034GB

root@Debian11:/www/server/panel/data/compose/srs# docker images -a
REPOSITORY                                    TAG         IMAGE ID       CREATED         SIZE
registry.cn-hangzhou.aliyuncs.com/ossrs/srs   6           298b47d809f9   3 months ago    158MB
jc21/nginx-proxy-manager                      latest      28147ecda659   5 months ago    1.09GB
registry.cn-hangzhou.aliyuncs.com/ossrs/srs   5           5a4b3440626f   6 months ago    156MB
yidadaa/chatgpt-next-web                      latest      0737281804a6   7 months ago    200MB
teddysun/hysteria                             latest      fd9e3fc55d0c   8 months ago    27MB
artalk/artalk-go                              latest      84a28d6e4f57   9 months ago    52.8MB
alpine                                        latest      05455a08881e   10 months ago   7.38MB
mariadb                                       jammy       c74611c2858a   12 months ago   404MB
zmisgod/iptvchecker                           latest      842f43ba9daf   12 months ago   944MB
node                                          latest      b866e35a0dc4   12 months ago   1.1GB
matomo                                        latest      10c0eb643cc0   12 months ago   576MB
metacubex/clash-meta                          Alpha       f2b726e6300e   13 months ago   90.9MB
yourls                                        latest      922ce96efa9b   13 months ago   513MB
ghcr.io/metacubex/metacubexd                  latest      7ef93884b264   13 months ago   51.9MB
snowdreamtech/frps                            latest      ee2878617a63   14 months ago   24.1MB
adams549659584/go-proxy-bingai                latest      0dd1ec40e63b   18 months ago   14.7MB
stilleshan/hideipnetwork-web                  latest      34e0e6b19b99   20 months ago   140MB
searx/searx                                   latest      146813a62a41   20 months ago   172MB
openjdk                                       8u342-jdk   b273004037cc   2 years ago     526MB
yaonew/mmplayer                               latest      05f26aed5bfd   2 years ago     200MB

root@Debian11:/www/server/panel/data/compose/srs# docker image rm 5a4b3440626f
Untagged: registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
Untagged: registry.cn-hangzhou.aliyuncs.com/ossrs/srs@sha256:b429bdb565f0a533e60634856760a500a1b673f8cadce072b2a2eb2674cd7b31
Deleted: sha256:5a4b3440626f0468254ac3c2eb99d9d744b9640d2d6ece0dd269af947b62ebe5
Deleted: sha256:f7762c297912069c267d347427fd4f959650cc2aa0a5b2fbc41527e025a26574
Deleted: sha256:b9a47b202efd2bdddbdcfecd4c111e964f8f6a875f1a8284c683ea666525751d
Deleted: sha256:fd56f7f39f1ebe03640162ad77a1f733d7c3929fc0e35bb6415aaa555300c727
Deleted: sha256:fb4b0d13ce99bc5901e085a3e587b9f9af63ebd5eed3293c779b542eab085c80

root@Debian11:/www/server/panel/data/compose/srs# docker images -a
REPOSITORY                                    TAG         IMAGE ID       CREATED         SIZE
registry.cn-hangzhou.aliyuncs.com/ossrs/srs   6           298b47d809f9   3 months ago    158MB
jc21/nginx-proxy-manager                      latest      28147ecda659   5 months ago    1.09GB
yidadaa/chatgpt-next-web                      latest      0737281804a6   7 months ago    200MB
teddysun/hysteria                             latest      fd9e3fc55d0c   8 months ago    27MB
artalk/artalk-go                              latest      84a28d6e4f57   9 months ago    52.8MB
alpine                                        latest      05455a08881e   10 months ago   7.38MB
mariadb                                       jammy       c74611c2858a   12 months ago   404MB
zmisgod/iptvchecker                           latest      842f43ba9daf   12 months ago   944MB
node                                          latest      b866e35a0dc4   12 months ago   1.1GB
matomo                                        latest      10c0eb643cc0   12 months ago   576MB
metacubex/clash-meta                          Alpha       f2b726e6300e   13 months ago   90.9MB
yourls                                        latest      922ce96efa9b   13 months ago   513MB
ghcr.io/metacubex/metacubexd                  latest      7ef93884b264   13 months ago   51.9MB
snowdreamtech/frps                            latest      ee2878617a63   14 months ago   24.1MB
adams549659584/go-proxy-bingai                latest      0dd1ec40e63b   18 months ago   14.7MB
stilleshan/hideipnetwork-web                  latest      34e0e6b19b99   20 months ago   140MB
searx/searx                                   latest      146813a62a41   20 months ago   172MB
openjdk                                       8u342-jdk   b273004037cc   2 years ago     526MB
yaonew/mmplayer                               latest      05f26aed5bfd   2 years ago     200MB

降低每秒的帧率 -r 1 来推流

ffmpeg -re -i "rtsp://*:*@192.168.6.211:554/cam/playback?chan
nel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48" -r 1   -c copy -f flv -y rtmp://192.168.6.116:1935/live/switchSDadapter  

VLC可以正常流程播放 https://cam1.carlzeng.com:3/live/switchSDadapter.m3u8

可是本地的网页播放器官方的网页播放器都无法正常播放

暂时搞不定, 不管怎么调整ffmpeg的参数, 都是无法成功使用网页播放器来播放回流

我何必需要推流给SRS, 直接外网映射进来; 可直接播发的回放取流地址不就行了?

何必推来推去(因为本身已经是视频的情况下)

如何保护播放‘回放取流地址’的具体地址? 因为它具有最高权限, 这是极其危险的行为.

rtsp://*:password@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48

目前紧急情况, 使用 Yourls缩短以后, 浏览器打开 https://c.carlzeng.com:4443/12131, 会提示:

image-20241217223608783

调用VLC以后, 可以正常播放(在本地播放) ; 配置切换地址后, 也可以网络播放.

使用在线srs播放器拉流

在线SRS播放器播放, 由于RTMP已经被禁用了,请使用HTTP-FLV链接。

– http://ossrs.net/srs.release/trunk/research/players/srs_player.html (官方提供的连接)

如何去除录制的视频中的音频?

-an

似乎 只能用在转化的时候使用, 无法在推流时使用

ffmpeg能不能嵌套呢? 一边转化一边把转化的结果推流

就是视频过滤 filter

ffmpeg 添加水印/字母/OSD

我们需要创建一个滤镜链来添加水印。我们可以使用movie滤镜来加载水印图像,然后使用overlay滤镜将水印添加到视频中。以下是示例命令:

shell
ffmpeg -i input.mp4 -vf "movie=watermark.png[watermark];[in][watermark]overlay=W-w-10:H-h-10[out]" output.mp4

其中,watermark.png是水印图像的文件名,WH分别代表视频的宽度和高度。该命令将在视频的右下角添加一个距离视频右下角10个像素的水印。

在执行命令后,FFmpeg会将视频重新编码,并将添加水印后的视频保存为output.mp4

除了在右下角添加水印,我们还可以控制水印的位置、大小和透明度等。例如,以下命令将在视频左上角添加一个大小为100×100像素,透明度为50%的水印:

shell
ffmpeg -i input.mp4 -vf "movie=watermark.png[watermark];[in][watermark]overlay=10:10:alpha=0.5[out]" output.mp4

需要注意的是,添加水印会增加视频的处理时间和文件大小。如果您对视频质量要求较高,可以使用额外的参数进行优化,如调整视频的帧率、码率等。这些参数可以根据实际情况进行调整。

总的来说,使用FFmpeg命令给视频添加水印是一种简单而有效的方法。

[新思路] 每5秒抽帧

可以对回放的视频(时长1.5小时), 进行时间很短间隔的抽帧, 最后再把照片组合成视频

ffmpeg -i "rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48" -y -f image2 -r 1/5 /Users/carlzeng/Downloads/switchSDadapter/202412131%03d.jpg




Input #0, rtsp, from 'rtsp://*:*@192.168.6.211:554/cam/playback?channel=1&subtype=1&starttime=2024_12_13_10_19_00&endtime=2024_12_13_12_51_48':
  Metadata:
    title           : Media Server
  Duration: 02:30:30.00, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: hevc (Main), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 10 fps, 100 tbr, 90k tbn
  Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> mjpeg (native))
Press [q] to stop, [?] for help
Output #0, image2, to '/Users/carlzeng/Downloads/switchSDadapter/202412131%03d.jpg':
  Metadata:
    title           : Media Server
    encoder         : Lavf60.16.100
  Stream #0:0: Video: mjpeg, yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 0.20 fps, 0.20 tbn
    Metadata:
      encoder         : Lavc60.31.102 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame=  273 fps=0.2 q=5.5 size=N/A time=00:22:40.00 bitrate=N/A dup=0 drop=13305 speed=   1x 

最后再组合成MP4文件

ffmpeg -r 1 -f image2 -i 202412131%03d.jpg switchSDadapter.mp4    

#如果需要每秒0.5张,也就是每张图片2秒钟后切换
ffmpeg -r 0.5 -f image2 -i 202412131%03d.jpg switchSDadapter.mp4    

### -r 调整帧率
#不指定帧率的话,ffmpeg会使用默认的25帧,也就是1秒钟拼接25张图片

灵感来源

本站搜索: 动态公网IP 和 SRS

SRS – H.265直播省一半带宽费用

FFmpeg推流命令总结


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注