gpt4 book ai didi

FFMPEG:RTSP 流卡住,但 FFMPEG 继续录制

转载 作者:行者123 更新时间:2023-12-04 22:45:05 61 4
gpt4 key购买 nike

编辑:在撰写本文时,FFMPEG 中没有可以检测/处理 RTP/RTSP 流何时仍处于事件状态但不再提供有效帧的功能。我能找到的唯一解决方案是通过停止录制来定期重置流,然后重新连接并开始新的录制 -f segment不这样做。

我正在使用 FFMPEG 从网络摄像机录制 RTSP 流,并在一段时间后(通常大约一个半小时到两个小时)。我确定这是我正在使用的相机的具体问题,而不是 FFMPEG 或我的系统资源。

具体发生的是视频卡住但摄像头的网络流量仍在继续 - 它似乎没有发送新帧。由于这种行为,FFMPEG 不会断开/继续录制,因为网络连接仍然存在。几分钟后,FFMPEG 输出中总会出现一个警告:More than 1000 frames duplicated但它一直在记录——它只是一遍又一遍的同一帧。

我正在使用的命令是:

ffmpeg -stimeout 1000000 -rtsp_transport udp -fflags discardcorrupt -i rtsp://192.168.1.163/live/0/MAIN -vc libx265 -f segment -segment_time 300 -segment_atclocktime 1 -reset_timestamps 1 -strftime 1  "163-%Y-%m-%d_%H-%M-%S-h265.mp4"

一些注意事项:
  • 超时似乎没有做任何事情,因为网络连接保持不变,相机似乎只是停止发送(有效)帧。
  • 将编解码器更改为复制并不能改善问题
  • 更改 RTSP 传输不会改善问题
  • 我知道有一个过滤器可以检测卡住的帧,但我的 FFMPEG 似乎没有 - 我现在要尝试自己构建 FFMPEG;但更喜欢与捆绑的 FFMPEG 一起使用的解决方案 ~> 4.1.3

  • 在复制> 1000帧后让FFMPEG失败并退出实际上是理想的,因为这样我就可以从脚本中生成FFMPEG,监视进程,并在进程结束时重新启动它。不过,任何解决方案都会很棒。

    最佳答案

    这个人会帮助你:

    11.134 mpdecimate

    丢弃与前一帧差别不大的帧以降低帧速率。

    此过滤器的主要用途是用于非常低比特率的编码(例如,通过拨号调制解调器进行流式传输),但理论上它可以用于修复反向电视转换不正确的电影。

    像这样使用:
    "-vf", "mpdecimate,setpts=N/FRAME_RATE/TB",

    关于FFMPEG:RTSP 流卡住,但 FFMPEG 继续录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57156609/

    61 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com