wvp-GB28181-pro icon indicating copy to clipboard operation
wvp-GB28181-pro copied to clipboard

[BUG] 调用国标录像-开始历史媒体下载接口下载视频后,由于分段视频同时返回导致文件被覆盖,造成视频缺失

Open xyzj91 opened this issue 1 year ago • 0 comments

环境信息:

    1. 部署方式 wvp-pro docker / zlm(docker)
    1. 部署环境 ubuntu
    1. 端口开放情况 必要的端口全开
    1. 是否是公网部署 是
    1. 是否使用https 否
    1. 方便的话提供下使用的设备品牌或平台 tplink
    1. 你做过哪些尝试
    1. 代码更新时间 最新

描述错误 调用国标录像-开始历史媒体下载接口下载视频后,视频可能会分几段返回,由于是同一个stream流,且触达时间偶尔会相同,zlm的文件命名规则是"时分秒.mp4",这样会导致如果是同一秒内触达的,文件名其实是同一个,这样有一定几率文件被覆盖,导致视频下载失败或视频不完整!

如何复现 重复调用几次视频下载就能复现,基本10次里面能复现两三次

截图
微信图片_20230527094235 微信图片_20230527094243

抓包文件

日志

2023-05-27 09:29:11.961 I [MediaServer] [15-event poller 7] Rtsp.cpp:393 getPortPair | got port from pool:30062-30063
2023-05-27 09:29:11.961 I [MediaServer] [15-event poller 7] TcpServer.cpp:213 start_l | TCP server listening on [::]: 30062
2023-05-27 09:29:14.133 I [MediaServer] [15-event poller 7] RtpProcess.cpp:263 operator() | 4257154F(113.247.69.160:55514) 允许RTP推流
2023-05-27 09:29:14.166 I [MediaServer] [15-event poller 7] GB28181Process.cpp:178 onRtpDecode | 4257154F judged to be PS
2023-05-27 09:29:14.166 I [MediaServer] [15-event poller 7] Decoder.cpp:240 onTrack | got track: H265
2023-05-27 09:29:14.166 I [MediaServer] [15-event poller 7] Decoder.cpp:240 onTrack | got track: PCMA
2023-05-27 09:29:14.166 I [MediaServer] [15-event poller 7] Decoder.cpp:159 onStream | add track finished
2023-05-27 09:29:14.236 D [MediaServer] [15-event poller 7] MediaSink.cpp:150 emitAllTrackReady | All track ready use 70ms
2023-05-27 09:29:14.236 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注册:fmp4://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.236 I [MediaServer] [15-event poller 7] MultiMediaSourceMuxer.cpp:385 onAllTrackReady | stream: rtp://__defaultVhost__/rtp/4257154F , codec info: PCMA[8000/1/16] H265[2880/1620/15] 
2023-05-27 09:29:14.237 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注册:rtmp://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.237 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注册:rtsp://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.237 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注册:ts://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.287 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注册:hls://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.833 I [MediaServer] [15-event poller 7] TcpServer.cpp:49 ~TcpServer | Close tcp server [::]: 30062
2023-05-27 09:29:14.833 W [MediaServer] [15-event poller 7] RtpSession.cpp:63 onError | 86-57(113.247.69.160:55514) 4257154F 255(Server shutdown)
2023-05-27 09:29:14.833 W [MediaServer] [15-event poller 7] RtpProcess.cpp:62 ~RtpProcess | 4257154F(113.247.69.160:55514) RTP推流器(__defaultVhost__/rtp/4257154F)断开,耗时(s):0
2023-05-27 09:29:14.833 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注销:hls://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.834 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注销:ts://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.834 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注销:rtsp://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.834 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注销:rtmp://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.834 I [MediaServer] [15-event poller 7] MediaSource.cpp:523 emitEvent | 媒体注销:fmp4://__defaultVhost__/rtp/4257154F
2023-05-27 09:29:14.834 I [MediaServer] [15-event poller 7] Rtsp.cpp:402 operator() | return port to pool:30062-30063
2023-05-27 09:29:15.050 D [MediaServer] [15-event poller 7] WebHook.cpp:201 operator() | hook http://127.0.0.1:18081/api/record/on_record_mp4 553ms,success:{
        "app" : "rtp",
        "file_name" : "09-29-14.mp4",
        "file_path" : "/opt/media/www/record/rtp/4257154F/2023-05-27/09-29-14.mp4",
        "file_size" : 999959,
        "folder" : "/opt/media/www/record/rtp/4257154F/",
        "mediaServerId" : "8UZ6lIz0SDMjsnJ7",
        "start_time" : 1685150954,
        "stream" : "4257154F",
        "time_len" : 10.618000030517578,
        "url" : "record/rtp/4257154F/2023-05-27/09-29-14.mp4",
        "vhost" : "__defaultVhost__"
}

2023-05-27 09:29:21.368 D [MediaServer] [15-event poller 0] WebHook.cpp:201 operator() | hook http://127.0.0.1:18081/api/record/on_record_mp4 6604ms,success:{
        "app" : "rtp",
        "file_name" : "09-29-14.mp4",
        "file_path" : "/opt/media/www/record/rtp/4257154F/2023-05-27/09-29-14.mp4",
        "file_size" : 165536,
        "folder" : "/opt/media/www/record/rtp/4257154F/",
        "mediaServerId" : "8UZ6lIz0SDMjsnJ7",
        "start_time" : 1685150954,
        "stream" : "4257154F",
        "time_len" : 10.61400032043457,
        "url" : "record/rtp/4257154F/2023-05-27/09-29-14.mp4",
        "vhost" : "__defaultVhost__"
}

2023-05-27 09:29:44.461 I [MediaServer] [15-event poller 0] Rtsp.cpp:393 getPortPair | got port from pool:30064-30065
2023-05-27 09:29:44.462 I [MediaServer] [15-event poller 0] TcpServer.cpp:213 start_l | TCP server listening on [::]: 30064
2023-05-27 09:29:46.635 I [MediaServer] [15-event poller 0] RtpProcess.cpp:263 operator() | 42572F4A(113.247.69.160:55544) 允许RTP推流
2023-05-27 09:29:46.682 I [MediaServer] [15-event poller 0] GB28181Process.cpp:178 onRtpDecode | 42572F4A judged to be PS
2023-05-27 09:29:46.682 I [MediaServer] [15-event poller 0] Decoder.cpp:240 onTrack | got track: H265
2023-05-27 09:29:46.682 I [MediaServer] [15-event poller 0] Decoder.cpp:240 onTrack | got track: PCMA
2023-05-27 09:29:46.682 I [MediaServer] [15-event poller 0] Decoder.cpp:159 onStream | add track finished
2023-05-27 09:29:46.755 D [MediaServer] [15-event poller 0] MediaSink.cpp:150 emitAllTrackReady | All track ready use 74ms
2023-05-27 09:29:46.756 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注册:fmp4://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:46.756 I [MediaServer] [15-event poller 0] MultiMediaSourceMuxer.cpp:385 onAllTrackReady | stream: rtp://__defaultVhost__/rtp/42572F4A , codec info: PCMA[8000/1/16] H265[2880/1620/15] 
2023-05-27 09:29:46.756 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注册:rtmp://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:46.757 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注册:rtsp://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:46.757 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注册:ts://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:46.816 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注册:hls://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.333 I [MediaServer] [15-event poller 0] TcpServer.cpp:49 ~TcpServer | Close tcp server [::]: 30064
2023-05-27 09:29:47.333 W [MediaServer] [15-event poller 0] RtpSession.cpp:63 onError | 88-57(113.247.69.160:55544) 42572F4A 255(Server shutdown)
2023-05-27 09:29:47.333 W [MediaServer] [15-event poller 0] RtpProcess.cpp:62 ~RtpProcess | 42572F4A(113.247.69.160:55544) RTP推流器(__defaultVhost__/rtp/42572F4A)断开,耗时(s):0
2023-05-27 09:29:47.333 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注销:hls://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.333 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注销:ts://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.333 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注销:rtsp://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.334 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注销:rtmp://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.334 I [MediaServer] [15-event poller 0] MediaSource.cpp:523 emitEvent | 媒体注销:fmp4://__defaultVhost__/rtp/42572F4A
2023-05-27 09:29:47.334 I [MediaServer] [15-event poller 0] Rtsp.cpp:402 operator() | return port to pool:30064-30065
2023-05-27 09:29:47.590 D [MediaServer] [15-event poller 1] WebHook.cpp:201 operator() | hook http://127.0.0.1:18081/api/record/on_record_mp4 559ms,success:{
        "app" : "rtp",
        "file_name" : "09-29-46.mp4",
        "file_path" : "/opt/media/www/record/rtp/42572F4A/2023-05-27/09-29-46.mp4",
        "file_size" : 999887,
        "folder" : "/opt/media/www/record/rtp/42572F4A/",
        "mediaServerId" : "8UZ6lIz0SDMjsnJ7",
        "start_time" : 1685150986,
        "stream" : "42572F4A",
        "time_len" : 10.616999626159668,
        "url" : "record/rtp/42572F4A/2023-05-27/09-29-46.mp4",
        "vhost" : "__defaultVhost__"
}

2023-05-27 09:29:47.850 D [MediaServer] [15-event poller 1] WebHook.cpp:201 operator() | hook http://127.0.0.1:18081/api/record/on_record_mp4 558ms,success:{
        "app" : "rtp",
        "file_name" : "09-29-47.mp4",
        "file_path" : "/opt/media/www/record/rtp/42572F4A/2023-05-27/09-29-47.mp4",
        "file_size" : 1036528,
        "folder" : "/opt/media/www/record/rtp/42572F4A/",
        "mediaServerId" : "8UZ6lIz0SDMjsnJ7",
        "start_time" : 1685150987,
        "stream" : "42572F4A",
        "time_len" : 10.61400032043457,
        "url" : "record/rtp/42572F4A/2023-05-27/09-29-47.mp4",
        "vhost" : "__defaultVhost__"
}

xyzj91 avatar May 27 '23 01:05 xyzj91