gpt4 book ai didi

关闭相机时 FFMPEG 录制出错

转载 作者:行者123 更新时间:2023-12-04 23:23:30 26 4
gpt4 key购买 nike

我有一个使用 ffmpeg 的视频录制服务。
当相机关闭时,我没有收到错误并且服务卡住。
请帮助我如何配置录制以使该服务因错误而崩溃? (我将使用主管)。
也许我需要插入一些标志?

ffmpeg -rtsp_transport tcp -i 'rtsp://...' -reconnect 1 -c:v copy -c:a copy -flags -global_header -hls_time 5 -hls_list_size 0 -strftime 1 -hls_segment_filename '%Y%m%d%H%M%S.ts' archive.m3u8 -nostats

日志
ffmpeg started on 2019-11-28 at 10:23:14 Report written to "ffmpeg-20191128-102314.log" Command line: "C:\\ffmpeg\\bin\\ffmpeg.exe" -report -rtsp_transport tcp -i "rtsp://..." -reconnect 1 -c:v copy -c:a copy -flags -global_header
-hls_time 5 -hls_list_size 0 -strftime 1 -hls_segment_filename "%Y%m%d%H%M%S.ts" archive.m3u8 ffmpeg version N-94150-g231d0c819f Copyright (c) 2000-2019 the FFmpeg developers built with gcc 9.1.1 (GCC) 20190621 configuration: --enable-gpl --enable-version3
--enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt libavutil 56. 30.100 / 56. 30.100 libavcodec 58. 53.101 /
58. 53.101 libavformat 58. 28.101 / 58. 28.101 libavdevice 58. 7.100 / 58. 7.100 libavfilter 7. 55.100 / 7. 55.100 libswscale 5. 4.101 / 5. 4.101 libswresample 3. 4.100 /
3. 4.100 libpostproc 55. 4.100 / 55. 4.100 Splitting the commandline. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'. Reading option '-i' ... matched as input url with argument 'rtsp://...'. Reading option '-reconnect' ... matched as AVOption 'reconnect' with argument '1'. Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'. Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'. Reading option '-flags' ... matched as AVOption 'flags' with argument '-global_header'. Reading option '-hls_time' ... matched as AVOption 'hls_time' with argument '5'. Reading option '-hls_list_size' ... matched as AVOption 'hls_list_size' with argument '0'. Reading option '-strftime' ... matched as AVOption 'strftime' with argument '1'. Reading option '-hls_segment_filename' ... matched as AVOption 'hls_segment_filename' with argument '%Y%m%d%H%M%S.ts'. Reading option 'archive.m3u8' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url 'rtsp://...'. Successfully parsed a group of options. Opening an input file: 'rtsp://...'. [tcp @ 0000025972ecd180] No default whitelist set [tcp @ 0000025972ecd180] Original list of addresses: [tcp @ 0000025972ecd180] Address 0.0.0.0 port 999 [tcp @ 0000025972ecd180] Interleaved list of addresses: [tcp @ 0000025972ecd180] Address 0.0.0.0 port 999 [tcp @ 0000025972ecd180] Starting connection attempt to 0.0.0.0 port 999 [tcp @ 0000025972ecd180] Successfully connected to 0.0.0.0 port 999 [rtsp @ 0000025972ecca80] SDP: v=0

o=- 1574936594324879 1574936594324879 IN IP4 10.10.1.65

s=Media Presentation

e=NONE

b=AS:5050

t=0 0

a=control:'rtsp://...'

m=video 0 RTP/AVP 96

c=IN IP4 0.0.0.0

b=AS:5000

a=recvonly

a=x-dimensions:1920,1080

a=control:'rtsp://...'

a=rtpmap:96 H264/90000

a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z00AKZpkA8ARPy4C3AQEBQAAAwPoAADDUOhgAP84AAP80rvLjQwAH+cAAH+aV3lwoA==,aO48gA==

a=Media_header:MEDIAINFO=494D4B48010200000400000100000000000000000000000000000000000000000000000000000000;

a=appversion:1.0


[rtsp @ 0000025972ecca80] video codec set to: h264 [rtsp @ 0000025972ecca80] RTP Profile IDC: 42 Profile IOP: 0 Level: 29 [rtsp @ 0000025972ecca80] RTP Packetization Mode: 1 [rtsp @ 0000025972ecca80] Extradata set to 0000025972ed0600 (size: 61) [rtsp @ 0000025972ecca80] setting jitter buffer size to 0 [rtsp @ 0000025972ecca80] hello state=0 [h264 @ 0000025972ed0080] nal_unit_type: 7(SPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 8(PPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 7(SPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 8(PPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 7(SPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 8(PPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 5(IDR), nal_ref_idc: 3 [h264 @ 0000025972ed0080] Format yuvj420p chosen by get_format(). [h264 @ 0000025972ed0080] Reinit context to 1920x1088, pix_fmt: yuvj420p [h264 @ 0000025972ed0080] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 7(SPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 8(PPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 5(IDR), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 7(SPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 8(PPS), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 5(IDR), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3 [h264 @ 0000025972ed0080] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3 [rtsp @ 0000025972ecca80] All info found Input #0, rtsp, from 'rtsp://...': Metadata:
title : Media Presentation Duration: N/A, start: 0.240000, bitrate: N/A
Stream #0:0, 28, 1/90000: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Successfully opened the file. Parsing a group of options: output url archive.m3u8. Applying option c:v (codec name) with argument copy. Applying option c:a (codec name) with argument copy. Successfully parsed a group of options. Opening an output file: archive.m3u8. Successfully opened the file. [hls @ 0000025972f977c0] Opening '20191128102316.ts' for writing [file @ 0000025975633ec0] Setting default whitelist 'file,crypto' [mpegts @ 00000259756333c0] muxrate VBR, pcr every 2 pkts, sdt every 2147483647, pat/pmt every 2147483647 pkts Output #0, hls, to 'archive.m3u8': Metadata:
title : Media Presentation
encoder : Lavf58.28.101
Stream #0:0, 0, 1/90000: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Press [q] to stop, [?] for help cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 0, current: -18000; changing to 1. This may result in incorrect timestamps in the output file. [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 1, current: -14400; changing to 2. This may result in incorrect timestamps in the output file. [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 2, current: -10800; changing to 3. This may result in incorrect timestamps in the output file. [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 3, current: -7200; changing to 4. This may result in incorrect timestamps in the output file. [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 4, current: -3600; changing to 5. This may result in incorrect timestamps in the output file. [hls @ 0000025972f977c0] Non-monotonous DTS in output stream 0:0; previous: 5, current: 0; changing to 6. This may result in incorrect timestamps in the output file. frame= 48 fps=0.0 q=-1.0 size=N/A time=00:00:01.68 bitrate=N/A speed=3.13x frame= 61 fps= 58 q=-1.0 size=N/A time=00:00:02.20 bitrate=N/A speed= 2.1x frame= 74 fps= 47 q=-1.0 size=N/A time=00:00:02.72 bitrate=N/A speed=1.74x frame= 87 fps= 41 q=-1.0 size=N/A time=00:00:03.24 bitrate=N/A speed=1.54x frame= 100 fps= 38 q=-1.0 size=N/A time=00:00:03.76 bitrate=N/A speed=1.44x frame= 113 fps= 36 q=-1.0 size=N/A time=00:00:04.27 bitrate=N/A speed=1.37x frame= 125 fps= 34 q=-1.0 size=N/A time=00:00:04.75 bitrate=N/A speed=1.31x frame= 138 fps= 33 q=-1.0 size=N/A time=00:00:05.27 bitrate=N/A speed=1.28x frame= 151 fps= 32 q=-1.0 size=N/A time=00:00:05.79 bitrate=N/A speed=1.24x [AVIOContext @ 0000025972ecbe80] Statistics: 0 seeks, 15 writeouts [hls @ 0000025972f977c0] Opening '20191128102321.ts' for writing [file @ 0000025972f9ef00] Setting default whitelist 'file,crypto' [hls @ 0000025972f977c0] Opening 'archive.m3u8.tmp' for writing [file @ 000002597562ff40] Setting default whitelist 'file,crypto' EXT-X-MEDIA-SEQUENCE:0 [AVIOContext @ 0000025972ecbfc0] Statistics: 0 seeks, 1 writeouts frame= 165 fps= 32 q=-1.0 size=N/A time=00:00:06.35 bitrate=N/A speed=1.22x frame= 178 fps= 31 q=-1.0 size=N/A time=00:00:06.87 bitrate=N/A speed= 1.2x frame= 192 fps= 31 q=-1.0 size=N/A time=00:00:07.43 bitrate=N/A speed=1.18x frame= 204 fps= 30 q=-1.0 size=N/A time=00:00:07.91 bitrate=N/A speed=1.17x frame= 218 fps= 30 q=-1.0 size=N/A time=00:00:08.47 bitrate=N/A speed=1.16x frame= 231 fps= 29 q=-1.0 size=N/A time=00:00:08.99 bitrate=N/A speed=1.15x frame= 244 fps= 29 q=-1.0 size=N/A time=00:00:09.51 bitrate=N/A speed=1.14x frame= 255 fps= 29 q=-1.0 size=N/A time=00:00:09.95 bitrate=N/A speed=1.11x frame= 272 fps= 29 q=-1.0 size=N/A time=00:00:10.63 bitrate=N/A speed=1.12x frame= 285 fps= 28 q=-1.0 size=N/A time=00:00:11.15 bitrate=N/A speed=1.11x frame= 299 fps= 28 q=-1.0 size=N/A time=00:00:11.71 bitrate=N/A speed=1.11x [AVIOContext @ 0000025972ecbe80] Statistics: 0 seeks, 12 writeouts [hls @ 0000025972f977c0] Opening '20191128102327.ts' for writing [file @ 0000025975633ec0] Setting default whitelist 'file,crypto' [hls @ 0000025972f977c0] Opening 'archive.m3u8.tmp' for writing [file @ 0000025975630780] Setting default whitelist 'file,crypto' EXT-X-MEDIA-SEQUENCE:0 [AVIOContext @ 0000025972ecbfc0] Statistics: 0 seeks, 1 writeouts frame= 305 fps= 28 q=-1.0 size=N/A time=00:00:11.95 bitrate=N/A speed=1.08x frame= 325 fps= 28 q=-1.0 size=N/A time=00:00:12.75 bitrate=N/A speed= 1.1x frame= 338 fps= 28 q=-1.0 size=N/A time=00:00:13.27 bitrate=N/A speed=1.09x frame= 351 fps= 28 q=-1.0 size=N/A time=00:00:13.79 bitrate=N/A speed=1.09x frame= 364 fps= 28 q=-1.0 size=N/A time=00:00:14.31 bitrate=N/A speed=1.09x frame= 377 fps= 28 q=-1.0 size=N/A time=00:00:14.83 bitrate=N/A speed=1.08x frame= 390 fps= 27 q=-1.0 size=N/A time=00:00:15.35 bitrate=N/A speed=1.08x frame= 403 fps= 27 q=-1.0 size=N/A time=00:00:15.87 bitrate=N/A speed=1.08x [AVIOContext @ 0000025972ecbe80] Statistics: 0 seeks, 8 writeouts [hls @ 0000025972f977c0] Opening '20191128102331.ts' for writing [file @ 0000025975633ec0] Setting default whitelist 'file,crypto' [hls @ 0000025972f977c0] Opening 'archive.m3u8.tmp' for writing [file @ 0000025975630240] Setting default whitelist 'file,crypto' EXT-X-MEDIA-SEQUENCE:0 [AVIOContext @ 0000025972ecbfc0] Statistics: 0 seeks, 1 writeouts frame= 416 fps= 27 q=-1.0 size=N/A time=00:00:16.39 bitrate=N/A speed=1.08x frame= 428 fps= 27 q=-1.0 size=N/A time=00:00:16.87 bitrate=N/A speed=1.07x frame= 442 fps= 27 q=-1.0 size=N/A time=00:00:17.43 bitrate=N/A speed=1.07x frame= 454 fps= 27 q=-1.0 size=N/A time=00:00:17.91 bitrate=N/A speed=1.07x

最佳答案

RTSP 有两种超时类型的选项:

‘-timeout’

Set maximum timeout (in seconds) to wait for incoming connections.

A value of -1 mean infinite (default). This option implies the
‘rtsp_flags’ set to ‘listen’. ‘reorder_queue_size’

Set number of packets to buffer for handling of reordered packets.

‘-stimeout’

Set socket TCP I/O timeout in micro seconds.


有关详细信息,请参阅 RTSP 协议(protocol)文档:
http://ffmpeg.org/ffmpeg-protocols.html#rtsp

如果 RTSP 服务器/摄像头支持,还要检查 RTP 或 RTCP 超时。

关于关闭相机时 FFMPEG 录制出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59027141/

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