ffmpeg rtsp 记录段和文件夹-文件名

标签 ffmpeg camera ip rtsp

我正在尝试记录来自网络摄像机的 rtsp 流。
简化格式的记录将按预期启动和工作。
但是,此时使用参数扩展我失败了。
理论上,文档说我们可以使用 strftime_mkdir 参数创建文件夹/文件名 - 但没有成功。
命令:

F_LOG="-y -loglevel verbose -hide_banner -rtsp_transport tcp"
F_PAR1="-c copy -map 0 -map -0:a -f segment -segment_time 300 -segment_format mp4"
F_PAR2="-stimeout 8000 -strftime 1 -strftime_mkdir 1"
#--------------------
CAM1_NAME="CAM1"
CAM1_LINK="rtsp://123:123@192.168.1.5:554/Streaming/Channels/101/"

ffmpeg $F_LOG -i $CAM1_LINK $F_PAR1 $F_PAR2 '%Y/%m/%d/file-%Y%m%d-%s.mp4'
输出:
[tcp @ 0x55b6302edcc0] Starting connection attempt to 192.168.1.5 port 554
[tcp @ 0x55b6302edcc0] Successfully connected to 192.168.1.5 port 554
[rtsp @ 0x55b6302eba00] SDP:
v=0
o=StreamingServer 3331435948 1116907222000 IN IP4 192.168.1.5
s=h264.mp4
c=IN IP4 0.0.0.0
t=0 0
a=control:*
m=video 0 RTP/AVP 96
a=control:trackID=0
a=rtpmap:96 H265/90000
a=videoinfo:2560*1440*20*4096
m=audio 0 RTP/AVP 0
a=control:trackID=1
a=rtpmap:0 PCMU/8000
a=ptime:20


[rtsp @ 0x55b6302eba00] setting jitter buffer size to 0
    Last message repeated 1 times
[rtsp @ 0x55b6302eba00] max_analyze_duration 5000000 reached at 5034444 microseconds st:0
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://123:123@192.168.1.5:554/Streaming/Channels/101/':
  Metadata:
    title           : h264.mp4
  Duration: N/A, start: 0.066667, bitrate: N/A
    Stream #0:0: Video: hevc (Main), 1 reference frame, yuv420p(tv), 2560x1440, 30 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
[segment @ 0x55b6302f2b80] Selected stream id:0 type:video
[mp4 @ 0x55b630302280] Invalid segment filename template '%Y/%m/%d/file-%Y%m%d-%s.mp4'
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
    Last message repeated 1 times
Press any key to continue...
我的意图是以结构化格式记录摄像机流,有一个单独的 5 分钟文件。就是这样-高度赞赏任何提示。
提前感谢您的任何建议,修复,改进。

最佳答案

我用过这个:ffmpeg -i rtsp://admin:[passwd]@[IP]:554/Streaming/Channels/101 -c copy -map 0 -segment_time 00:15:00 -f segment -strftime 1 -reset_timestamps 1 "TEST_%Y%m%d_%H%M%S.mp4"只需将“00:15:00”更改为“00:05:00”即可。

关于ffmpeg rtsp 记录段和文件夹-文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65880080/

相关文章:

gcc - 为什么 FFmpeg 没有经过编译器优化?

ffmpeg:来自正常速度视频的流畅、稳定的延时视频

android - MediaStore.EXTRA_DURATION_LIMIT Nexus 设备不工作?

c - IP作为数字没有通常的功能?

amazon-web-services - 为外部客户端连接设置 Cassandra listen_address 时如何避免将弹性 IP 转换为私有(private) IP?

android - 将元数据嵌入到 H.264 编码文件

linux - ffmpeg 覆盖大小

javascript - 在 React Native 移动应用程序中检测相机的高度和宽度

Android 相机横向到纵向方向问题

c - 使用 TCP 应用程序发送超过 65536 字节